[H8-ML(4710)] ■解決、でもなぜ?■入力Hiの時間の測定
From: tsuchida.seiji@xxxxxxxxxxx
Date: 2004年04月29日(木)10時47分02秒

つちだです。
IMFBの割り込みを禁止にしたら
 ITU0.TIER.BYTE = 0x01;     // IMFA割り込みのみ許可
 main関数内でのLED2の点滅も正常動作しました。
でもなぜ?
ソフト的になにか不十分なのでしょうか?
 ITUの設定、割り込み設定
IMFBのTIOCB−0(PA−3)の端子の処理?


*割り込み
extern unsigned int cnt0;
/***********************************************************/
void    INT_IMIA0(void)
{
   ITU0.TSR.BIT.IMFA = 0;              // 割り込みフラグ解除
   if(PA.DR.BIT.B2)                    // 立ち上がりエッジの場合
            ITU0.TCNT = 0x00;       // カウントをクリア
   else                                // 立ち下がりエッジの場合
      cnt0 = ITU0.GRA;                // 値をcnt0に記憶
   if(cnt0>2000){LED1=1;}else{LED1=0}
}
void    INT_IMIB0(void)
{ /*sleep*/}
*Main
unsigned int cnt0;                     // 信号のHighの時間を記憶
char data[16];                         // 表示文字列を記憶
/***********************************************************/
void main(void)
{
   cnt0  = 0;                         // cnt0初期化
   PA.DDR = 0x00;                     // Port-Aは入力設定
   P5.DDR = 0xff;                     // Port-5は出力設定
   initITU();                         // ITU初期化
   while( 1 ){
   LED2=1;wait_time4(200);                     //タイマー4使用
   LED2=0;wait_time4(200);
   }
}
/***********************************************************/
void initITU(void)
{
   ITU.TSTR.BYTE = 0x00;      // ひとまず全タイマー停止
   ITU.TSNC.BYTE = 0x00;      // 全タイマーは独立動作
   ITU.TMDR.BYTE = 0x00;      // ITUはすべて通常動作
   ITU.TFCR.BYTE = 0x00;      // ITU3,4およびGRA3,4,GRB3,4は通常動作
   ITU.TOER.BYTE = 0x00;      // ITU3,4による端子出力は禁止
   ITU.TOCR.BYTE = 0xff;      // 外部トリガ禁止
   ITU0.TCR.BYTE = 0x83;      // クロックの1/8で動作。TCNTのクリア禁止
   ITU0.TIOR.BYTE = 0xdf;     // 両エッジでGRAへインプットキャプチャ
   //ITU0.TIER.BYTE = 0x03;     // IMFA,IMFBによる割り込み許可 OVIE禁止
   ITU0.TIER.BYTE = 0x01;     // IMFA割り込みのみ許可■修正
   ITU0.TSR.BYTE = 0x00;      // 全割り込みフラグクリア
   ITU0.TCNT = 0x00;          // カウントクリア
   ITU0.GRA = 0;              // GRA初期値設定
   ITU.TSTR.BIT.STR0 = 1;     // ITU0スタート
 }


スレッド概略
[表示中](起点)
 ├[4711(1)]
 └[4718(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]