Lチカをやってみる
準備
TWELITE SDKをインストールします。
Visual Stutio Code をインストールします。

TWELITEのプログラムはPICやH8などスタイルからして違います。ソースコードにmain()を書きません。それなので混同しないようにmainは使わないほうがいいかもしれません。
 例えばスイッチを押下を検出するには一定時間ごとにスイッチの入力を検出してノイズを除去します。しかし、TWELITEでは入力が変化すると通知する関数(イベントハンドラーとかコールバック関数)が用意されていてこれで対応します。Windowsでのプログラムでマウスが動いたメッセージに対応するOnMouseMove()に似ています。つまりイベントドリブンな作法でプログラムを作ります。
 Visual Studioではプロジェクトを設定しますが、TWELITEではフォルダがプロジェクトに相当します。このフォルダを複数まとめたファイルWks_TWELITE.code-workspaceがワークスペースになります。ワークスペースはVisual Studioのソリューションに相当します。
どのようにフォルダを構成するか?調べても見当たらないのでサンプルプログラムから調べた結果をひな形として開発していきまさす。

Lチカプログラムを作成することにします。C:\MWSDK\Wks_TWELITEに新規フォルダAppLedをつくります。はフォルダです。フォルダの構成は以下のようになります。
  • C:\MWSDK\Wks_TWELITE
    • AppLed
      • Master
        • version.mk
        • Source
          • Master.c
          • Master.h
        • Build
          • Makefile
      • Common
      • .vscode
        • ipch
        • c_cpp_properties.json
        • tasks.json
Wks_TWELITEにあるプログラムはファイルが多く、行数が1000を超えるファイルもあるので見るのが大変です。そこでLチカプログラムは最低限のファイルで、行数を短くすることによりプログラムの作成方法がよくわかるのではないかと思います。
version.mk
バージョン定義の短いテキストファイル
Master.h
今回は短いコメントがあるだけでい実質は中身なし
Master.c
イベントハンドラーのコードを記載します。
// 自前のイベントハンドラ
static void vMyEventHandler(tsEvent *pEv, teEvent eEvent, uint32 u32evarg)
{
	 // 1 秒周期のシステムタイマ通知
	if (eEvent == E_EVENT_TICK_SECOND) 
	{
		// DO1 の 反転制御
		bPortRead(DO1) ? vPortSetHi(DO1) : vPortSetLo(DO1);
	}
}
次にイベントハンドラー登録とポートの初期化
// コールドスタート時
void cbAppColdStart(bool_t bAfterAhiInit)
{
	if (!bAfterAhiInit) 
	{
	} 
	else 
	{
		// 自前のイベントハンドラを登録
		ToCoNet_Event_Register_State_Machine(vMyEventHandler);
		//出力ポート設定
		vPortAsOutput(DO1);
	}
}
これだけでLチカが完成です。

c_cpp_properties.json
tasks.json
Visual Studio Codeの設定です。

Makefile
ビルドするファイルを記述します。

ビルドの操作

タスクの実行...をクリックすると、

DIPならMasterを選んでください。
ビルドが完了すると、フォルダBuildに拡張子がbinのファイルができます。

App_Led.zip ダウンロード