Attiny13 pin change interrupts

OP #7130123
Lesenswert?

Hallo zusammen,
ich versuche gerade einen attiny13 mit pinchange interrupts zu 
betreiben, allerdings wird kein interrupt ausgelöst (oder vlt auch nur 
nicht abgefangen)
Das hier ist mein Code
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <avr/delay.h>
4
#include <avr/sleep.h>
5
  
6
  volatile uint8_t auf;
7
  volatile uint8_t zu;
8
  ISR(PCINT){
9
    if(PINB & 0b00000001)
10
      auf=1;
11
    if(PINB & 0b00000010)
12
      zu=1;
13
  }
14

15
void open(){
16
  PORTB &= ~(0b00000100);
17
  _delay_ms(500);
18
  PORTB |= 0b00000100;
19
  _delay_ms(50);  
20
}
21

22
void close(){
23
  PORTB &= ~(0b00001000);
24
  _delay_ms(500);
25
  PORTB |= 0b00001000;
26
  _delay_ms(50);
27
  
28
}
29

30

31

32
int main(void)
33
{
34
    DDRB |= 0b00001100;     //set pins 2 and 3 as output
35
  PORTB |= 0b00001100;     //set pins 2 and 3 high
36
  PCMSK = 0x03;       //enable pcint0 and 1  
37
  GIMSK |= PCIE;
38
  sei();           //enable interrupts
39
    while (1) 
40
    {
41
    if(auf){
42
      open();
43
      auf=0;
44
    }
45
    if(zu){
46
      close();
47
      zu=0;
48
    }
49
    //set_sleep_mode(SLEEP_MODE_PWR_DOWN);
50
    //sleep_mode();
51
    }
52
}

Hat jemand ne idee, woran es liegen kann?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren