ATtiny13の外部割込みメモ | くろべこblog (kurobekoblog.com)
// https://kurobekoblog.com/attiny_gaibuwarikomi#google_vignette
#include <avr/interrupt.h>
volatile byte state=0;
int16_t cnt;
ISR(INT0_vect){
state=1;
}
// case1 and case2 で連携してチャタリング対策している!
void sw_up(){//スイッチ状態変化関数
switch(state){
case 0:
break;
case 1:
cnt=1000;
state=2;
break;
case 2:
cnt--;
if(cnt==0){
PORTB ^= 0b00000001;
state=0;
}
}
}
void setup(){
DDRB |= 0b00000001;//PB0出力
PORTB |= 0b00000010;//PB1プルアップ
MCUCR &= ~0b00000011;// LOWレベル検知
GIMSK |= (1<<6);//INT0割り込み許可
sei(); // 割り込み許可
}
void loop() {
sw_up();
}
0 件のコメント:
コメントを投稿