2024年2月25日日曜日

attiny13でINT0とGNDの間にスイッチ接続、PB0にLED接続で外部割込み

 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 件のコメント:

コメントを投稿