PIC12F1822のRA3よりの状態変化割り込みを行っています。BUTTON関数を使った物はうまくいきました。(4/3BBS)BUTTON関数を使わない場合は何となく癖があるようですので報告します。mikroC4.60で試しています。どういう理由で動作したり動作しなかったりするのか教えていただきたいと思います。
下記のプログラムでIOCピン状態変化割り込み(RA3)動作OK
----------------------------------------------
void interrupt(){
INTCON = 0x00;
Delay_ms(5); // ・・・①
if (PORTA.F3==0){
i++;
Delay_ms(10); // ・・・②
}
IOCAF = 0;// IOC Flag = 0
INTCON = 0X88;
}
----------------------------------------------
<結果1>②のDelay_ms(10); を Delay_ms(1); としても動作をする。
<結果2>更に②で変更したDelay_ms(1); を全く取ってしまってもOK
<結果3>①のDelay_ms(5);をDelay_ms(1);とすると次の状態に飛ぶこと(スキップする)が出る。うまく動作しない。
<結果4>IOCAF = 0; を外す とうまく動作しない。
<結果5>IOCAF = 0;をINTCON = 0X88; の下に移動するとうまく動作しない。
以上よろしくお願いします。
PIC12F1822 のRA3よりのピン状態変化割り込み
- T2
- 2011/04/09 (Sat) 04:54:11