特設:TOPPERS/ASPでマルチタスク!概要オープンソースのリアルタイムOSとしてTOPPERS/ASPをGR-PEACHで動かすことができます。Webコンパイラでの使い方をご紹介します。wikiにサンプルプログラムの説明がありますので、合わせて参照してください。準備GR-PEACH、USBケーブル(マイクロBタイプ)の2つを準備します。サンプル実行までの手順プロジェクト作成WebコンパイラにTOPPERS/ASP用のプロジェクトテンプレートがありますので、それを利用してプロジェクトを作成します。Webコンパイラが初めての方は「Webコンパイラでスケッチ」を参照してください。テンプレートの「GR-PEACH_TOPPERS_ASP_***.zip」(xxxは任意のバージョン)を選択し、適当にプロジェクト名を付けてプロジェクト作成ボタンを押します。スケッチの表示デフォルトの状態ではプロジェクトにあるサンプル「examples/blinky」がビルドされるようになっています。blinkyフォルダにblinky.cppがありますので、ダブルクリックしてファイルを開いてみましょう。ビルドから書き込みビルドボタンを押してください。初回のビルドは全てのソースをコンパイルするため30秒ほど時間がかかります。ビルドが終了すると、プロジェクトツリーにblinky.binが生成されますので、ダウンロードしてGR-PEACHに書き込んでください。赤、緑、青、ユーザーLEDがそれぞれ定めれた時間ごとに点滅を繰り返します。マルチタスクなArduinoスケッチArduinoでは基本的に1回のsetup関数と繰り返し実行されるloop関数からなりますが、loop関数の中で並列に行いたい処理をプログラミングするのは困難です。TOPPERS/ASPによるスケジューラにより、複数のloop関数を並列で動かすサンプルがありますので試してみましょう。ビルドプロジェクトの切り替えビルドするプロジェクトの切り替えをします。プロジェクトツリーにある「build_target」を開いてください。デフォルトでは「./examples/blinky」が記載されています。「./examples/multitask_arduino」に書き換えてください。スケッチの表示プロジェクトツリーのexamples/multitask_arduinoフォルダにあるmultitask_arduino.cppを開いてみてください。loop2の3つのloop関数があることが分かります。ビルドから書き込みビルド実行するとmultitask_arduino.binが生成されますので、GR-PEACHに書き込んでみてください。loopが赤LED、loop1が緑LED、loop2が青LEDをそれぞれ点滅させています。loopの追加loopを追加するには、examples/multitask_arduinoフォルダにある「arduino_app.h」にあるマクロ「ADDITIONAL_LOOP_NUM」の値を増やします。loop5が追加できます。温湿度計測サンプル参考として、以下のプログラムは温湿度センサーHDC1000のシリアル出力、LED制御を独立して行う例です。動作するにはHDC1000のSCL/SDAをWireのピン、RDYをピン2につなげる必要があります。