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

gpio0







ここから本題
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 単位。


ボード


書き込みツール


task実行状況




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


ホーム