Timer)は、このシリーズの石の目玉となる機能のようで、通常のPWMとして使えるだけでなく、多彩なコントロールの仕方が可能なタイマーらしい。Manualに次のような機能が例としてあげられている。一度設定すれば、CPUからの制御無しに、それ自身で動作を続ける。割り込みを掛けることも可能である。一つの石あたり、32ビットのタイマーが一つ用意されている。2つの16ビットのタイマーとして使うことも出来るようだ。クロックは、内部及び外部からの両方が使用可能。基本的に、up-counterであるが、up/downを交互に行なうモードもあるらしい。SCTには、"state"という概念があって、これで色々制御しているようである。次のイベントが用意されている。direction個々のイベントでは、次のことが制御可能だ。limitとして利用可能。up/downカウンターとして使用している場合、そのdirectionごとにイベント設定が可能。Matchイベントは、特定のイベントが起こるまで止めておくことが可能。それぞれの設定は、次の個数だけ設けることが出来る。statesこのSCTという機能は、多種多彩な制御が出来る一方で、その複雑さ故に設定の方法は難易度が高くなっている。generator"という、GUIによる設定ツールが設けられているので、試してみた。SCT用にCookbookとチュートリアルが用意されているので、それを参考に、基本となるSCT_blinky_irqというサンプルプログラムと同じコードを作成することを試みた。これは、一定周期ごとに割り込みを掛けるためのコードである。Stateの使い方が全く分からなかったが、support.code-red-tech.comで用意されているPDFファイルを元に、試行錯誤で操作してみた。結果として、ソースコードを直接編集することでSCTの使い方をマスターするよりも、このGUIの使い方をマスターする方が速かったように感じる。以下、自分用のメモとして、このツールの使い方をまとめておく。使用したLPCXpressoのバージョンは、6.1.0である。LPCXpressoを起動し、SCTを利用したいworkspaceにおいて、"File->New->Other"を選択する。generator"を選択する。適当なファイル名を付ける(ここでは、rstestとした)。Target"ボタンから、利用する石を選択する(ここでは、LPC810)。最後に"Finish"を押すと、このような画面になり、"rstest.rsm"がソースに追加された。中央部分は下のようになるが、これらのうち"U_ALWAYS"は使用しないので、右クリックから"Delete"を選択して、削除する。ここから先は、"Input"をシグナルとして選択し、そのシグナルを受けたときにどの様なアクションを"Output"に出力するかという概念で、設定してゆく。ここでは、タイマーのカウント値がある値(maxcount)になった際にイベントが起こるように設定する。Input)をクリックすると、"input1"という名で項目が追加される。"a|"アイコン(Rename)をクリックした後に"maxcount"と打ち込む。右の"Source"の欄を、カウンターの上限値(ここでは1000)に設定する。int"のままにしておく。↓つぎに、カウンター値がこの値にマッチすることを入力として定義する。Unified"に設定し、"Source"に"maxcount"を設定する。↓つぎに、このMATCH0入力をシグナルとして定義する。"Signals"タブにおいて、"+"アイコンを押して新規の項目を設定し、名前を"MATCH0"に変更する。click"の所を右クリックし、"Input->MATCH0"を選択する。中央の"rstest.rsm"タブの少し左、"Transition"を選択する。中央の画面中でマウスを操作し、U_ENTRYから出た矢印がU_ENTRYに戻るように、設定する。Signal->MATCH0"を選択する。↓ここからは、Outputの処理。Machine"タブにおいて、一番下までスクロールし、"IRQname"を"SCT_IRQ"に変更する。counter"を選択する。list"タブに"action1"が追加されているので、名前を"event0"に変更する。list"タブの下の方を右クリックして、"Call->SCT_IRQ"を選択する。これで、中央に表示される漫画が、CookbookのSCT_blinky_irqでのそれと同じになった。Code"をクリックすると、sct_fsm.smd/sct_fsm.c/sct_fsm.h/sct_user.hの4つのファイルが作成された。↓sct_fsm.cの内容はCookbookのSCT_blinky_irqの項で紹介されている物と同じになったので、上記で述べた操作方法は正しかったと思われる。}を記述すればよいようだ。