/**************************************************/ /* パルス幅の計測 単純基本系 RIKIYA 2004/02/20 */ /* inputtest1.c */ /* H8-3048/F */ /* PIO機能だけのエッジ検出によるパルス幅計測 */ /**************************************************/ #include <3048.h> /* メイン関数************************************************/ int main(void){ long counter; P1.DDR = 0xff; // port1出力に設定 表示LED PA.DDR = 0x00; // portA入力に設定 パルス入力用 ITU1.TCR.BYTE = 0x03; // カウンタクリア禁止 clock 1/8 ITU.TSTR.BIT.STR1 = 0; // カウント停止状態 while(1){ while(PA.DR.BIT.B4 == 0){} // パルス立ち上がり検出 ITU.TSTR.BIT.STR1 = 1; // カウント開始 while(PA.DR.BIT.B4 == 1){} // パルス立下り検出 ITU.TSTR.BIT.STR1 = 0; // カウント停止 counter = ITU1.TCNT; // カウント値取得 P1.DR.BYTE = counter >> 4; // 4ビット下位にシフト ITU1.TCNT = 0; } }