私はatmega168a-puと割り込みでCアプリケーションを開発します。私は、次の割り込みを使用します。私は、割り込みが発生したときに他のすべての割り込みをブロックし、ちょうど割り込み機能を終了する前に割り込みを有効にしたいAVRプログラミング、割り込み処理
int main(void){
///initialization etc.
sei();
while(1){
///do some stuff and wait the interrupts
}
return 0;
}
よう
ISR(TIMER0_COMPA_vect);
ISR(TIMER0_COMPB_vect);
ISR (TIMER2_COMPA_vect);
ISR(SPI_STC_vect);
ISR(TIMER1_COMPA_vect);
ISR (PCINT1_vect);
と私のコードが見えます。
私はそれをどのように行うことができるのかをコードスニペットで説明できますか?
EDIT:http://www.nongnu.org/avr-libc/user-manual/optimization.html#optim_code_reorderは、このような使用が再配置の問題を引き起こすと述べています。
function(){
cli();
..
sei();
}
グローバル割り込みをどのように無効にして有効にしても問題はありませんか? –
downvotersはdownvoteを説明してくださいか? Johanは投稿後約8分後にバグの説明にヒントを追加しました。 – junix
@JohanElmander変更された質問に対する回答を更新しました。 – junix