IOからスイッチ情報を入力

OS:uITRONを使ってスイッチ入力情報を処理させる。

 

以前にOSを使わずに作った処理をOS上で作る。

 


スイッチ情報を入力

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で イベントフラグで処理をするのも後で登場。

 

スポンサーリンク
  • facebook
  • twtter
  • google+
  • hatena