/**************************************************/ /* PIOテスト RIKIYA 2001.2.25 */ /* piotest1.c */ /* H8-3048/F */ /* port4からスイッチ情報を入力し、 */ /* port5のLED1とLED2を点灯する。 */ /* sw1 を押すと 消灯する。 */ /* sw2 を押すと LED1を点灯する。 */ /* sw3 を押すと LED2を点灯する。 */ /* sw4 を押すと 点滅する。 */ /**************************************************/ #include <3048f.h> /* メイン関数 ****************************************/ void main(void){ P4.DDR = 0x00; /*port4入力に設定 操作用sw1〜4*/ P4.PCR.BYTE = 0xff; /*port4プルアップon */ P5.DDR = 0xff; /*port5出力に設定 表示LED */ P5.PCR.BYTE = 0x00; /*port5プルアップoff */ while(1){ if(P4.DR.BIT.B4 == 0){ /*sw1の入力検出 */ P5.DR.BYTE = 0x00; /*port5のLEDを消灯*/ } else if(P4.DR.BIT.B5 == 0){ /*sw2の入力検出 */ P5.DR.BYTE = 0x01; /*port5のLED1を点灯*/ } else if(P4.DR.BIT.B6 == 0){ /*sw3の入力検出 */ P5.DR.BYTE = 0x02; /*port5のLED2を点灯*/ } else if(P4.DR.BIT.B7 == 0){ /*sw4の入力検出 */ P5.DR.BYTE = 0x01; /*port5のLEDを交互に点滅*/ wait(); P5.DR.BYTE = 0x02; wait(); P5.DR.BYTE = 0x01; wait(); P5.DR.BYTE = 0x02; wait(); P5.DR.BYTE = 0x01; wait(); P5.DR.BYTE = 0x02; wait(); } else{ /*入力が無い時の処理 */ P5.DR.BYTE = 0x03; } } } /*時間稼ぎ関数*************************************/ wait(){ long i; for (i=0;i<0x2ffff;i++){ /*なにもしない*/ } return; }