ESP-WROOM-02(ESP8266)cygwin上でFreeRTOSプログラムのビルド

!!!!!!注意!!!!!!

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

ESP-WROOM-02プログラム

ここから本題

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 単位。

ESP-WROOM-02プログラム

ESP-WROOM-02プログラム

ESP-WROOM-02プログラム

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

arduino環境での問題点



株式会社シーエーへのお問合せはお気軽に