Eingang für Interrupt_Unterprogramm

Gast #301245
Lesenswert?

ISR(INT1_vect)
{
  USART_TransmitString(" externe Interrupt happend ", 27);
  return;
}

int main(void)
{
  USART_Init(9600);
  SREG = 0x80;
  MCUCR = (1<<ISC11) | (1<<ISC10);
  GICR = (1<<INT1);
  for(;;);
}

Bei mir funktioniert noch nicht.
Wenn ein Interrupt happend, kann ich keine Ergebnisse bekommen. Welche
Fehler habe ich gemacht?
Vielen Dank!
Gast #301247
Lesenswert?

Ich habe ein anderes Programm für diesen Interrupt, es benutzt nicht
ISR, sonder lese direkt die Interrupt Falg Bit.

int main(void)
{
  USART_Init(9600);
  MCUCR = (1<<ISC11) | (1<<ISC10);
  GICR = (1<<INT1);
  while(!(GIFR & (1<<INTF1)));
  USART_TransmitString(" externe Interrupt happend ", 27);
  for(;;);
}

Es funktioniert. Das bedeutet, wenn die Schalter einschaltet, tretet
ein Interrupt und funktioniert der USART auch.
Ich denke, es gibt irgentwo Fehler in meinem Interrupt_Programm.

Soll ich "INT1_vect" selbst definieren? Oder für boot soll ich etwas
machen? Oder......?

Und ich wollte noch fragen, welcher Port ist "ein Port in der ISR"?
Vielen Danke!

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