Gast
#996190
Hallo,
ich möchte bei meinem XMEGA128A1 (AVR Studio 4, GNU C, STK600) einen
externen Interrupt über PORTB Pin0 auslösen.
Hier mein Code
uint8_t temp;
int main(void)
{
// internen Oszillator auf 32MHZ einstellen
OSC.CTRL = 3;
while(OSC.STATUS != 3)
{
}
CCP = 0xD8;
CLK.CTRL = 1;
temp = 255;
// Interrupts aktivieren und alle Level freigeben
sei();
PMIC.CTRL=0x07;
//LEDS initialisieren
PORTA.DIR = 0xFF;
PORTA.OUT = 0xFF;
//TASTER initialisieren
PORTB.DIR = 0x00;
//Interrupt Level an PORTB festlegen
PORTB.INTCTRL = 0x03;
//Interrupt an PORTB PIN0 freigeben
PORTB.INT0MASK = 0x01;
while(1)
{
}
}
ISR (PORTB_INTFLAGS_INT0IF)
{
if (temp > 0)
{
temp--;
PORTA.OUT = temp;
}
else
{
temp = 255;
}
}
Das Interrupt Flag INT0IF wird auch gesetzt, aber die ISR wird nicht
gestartet.