スイッチ情報を入力
IOからスイッチ情報を入力 と同様にSW押しでLEDの点灯を変更する
単純に、ほぼ同じようなプログラム内容です。
実験回路
IOからスイッチ情報を入力 と同じ
プログラム
sample.c
/* ------------------------------------------------------------------------
IOポートでLEDを光らせる
P1-4 と P1-5 がsw押し下げで点灯交代
------------------------------------------------------------------------ */
#include "itron.h"
#include "kernel.h"
#include "kernel_id.h"
#include "h83664f.h"
/* メイン関数 */
int main()
{
sta_hos();
return 0;
}
/* 初期化ハンドラ */
void Initialize(VP_INT exinf)
{
/* ポート初期化設定 */
IO.PMR1.BYTE=0x00; /* 全て0にセットし、ポート使用に設定 0000 0000*/
IO.PCR1=0xFF; /* 全て1にセットし、出力に設定 1111 1111 */
IO.PUCR1.BYTE=0x00; /* 全て0にセットし、プルアップなし*/
// act_tsk(TSKID_SAMPLE1);
}
/* タスク1 */
void Task1(VP_INT exinf)
{
while(1){
if( IO.PDRB.BIT.B4==1){ /* スイッチOFFのとき */
IO.PDR1.BIT.B4 = 1; /* P14 */
IO.PDR1.BIT.B5=0;
}else{
IO.PDR1.BIT.B5=1; /* P15 */
IO.PDR1.BIT.B4=0;
}
}
}
sample.cfg , h ともに IOポートでLEDを光らせる と同じ
この処理は LEDを光らせる にSW検知を加えたもので OSなしの 実験のところ と同じ方法です。
実行結果
SWを押すと点灯LEDが交代します。
この処理はループでSW押し下げを検知するOSなしの 実験のところ と同じ方法で 別段、μITRONらしい機能が使われていないことになります。
OSなしの場合とほぼ同じ内容ですが、このままでもできる、というサンプルに。。。
このままでもでき、または他のタスクなどを使った処理などもできる。
SWの検出では、OSなしのところでは 外部割り込みを使う(IRQ割り込み) でSWが押されたのをを検知し、外部割り込みで対応処理をする方法があります。
同じように、μIRONで イベントフラグで処理をするのも後で登場。
スポンサーリンク
- twtter
- google+
- hatena