!!!!!!注意!!!!!!
!!!!!!注意!!!!!!
!!!!!!注意!!!!!!
ESP-WROOM-02 の GPIO0 は、リセット時に以下の様な変な電圧(-1V~5V)がでます。
考えられる用途は、パイロットランプの駆動だけでしょう。
公開しているサンプルプログラムでは I2C SCL に使用していますが、I2C デバイスが壊れます。

ここから本題
ESP-WROOM-02(ESP8266) FreeRTOS版SDK(esp_iot_rtos_sdk-master)でマルチタスクプログラム開発をcygwin 上で行う。
開発環境構築
マルチタスクサンプルプログラムのビルド
2タスクサンプルコード一式(testcodeディレクトリ)
2タスク+GPIO割り込みサンプルコード一式(testcodeディレクトリ)
ハードウェア
GPIO2 I2C-SDA 2.2KΩ pull up
GPIO0 I2C-SCL 2.2KΩ pull up
GPIO15 LED 1KΩ pull down。LEDアノードを接続(2.2Kオームの制限抵抗、LEDのカソードをGNDに配線)
GPIO5 SW ON で GND にショート
LcdAcm1602ni.c
AE_AQM0802 を使う場合(吸い込み電流が小さいので、pull up抵抗を高くする必要があるかも)
#define TYPE_ST7032 //AE_AQM0802
ACM1602N1_FLW_FBW を使う場合
//#define TYPE_ST7032 //AE_AQM0802
user_main.c について
FreeRTOS SDK の ets_sys.h が、古いバージョンなので、esp_iot_sdk_v1.4.0 の ets_sys.h から必要な物を持ってきた(以下2行)
define ETS_GPIO_INTR_DISABLE(); _xt_isr_mask...
define ETS_GPIO_INTR_ENABLE(); _xt_isr_unmask...
_xt_isr_unmask() は、ライブラリ ./esp_iot_rtos_sdk-master/lib/libmain.a に存在。
initGpioInterrupt() の中で、ETS_GPIO_INTR_DISABLE() を行うとハングアップする。直後に ETS_GPIO_INTR_ENABLE()をやってるのに。
vTaskDelay() は、10msec 単位。



arduino 環境でマルチタスクが可能かどうかを調査した時のプログラム(マルチタスクは駄目っぽい)
arduino 環境での問題点
ホーム