UART interrupt AT90CAN128

OP #1469500
Lesenswert?
• ▲
▼
Hallo,

ich habe ein Problem damit, bei einem AT90CAN128 die UART Kommunikation 
mit Interrupts zum laufen zu bekommen.
Die Fuse-Bit Falle mit dem 1/8-Teiler habe ich schon beseitigt und das 
normale Versenden von Zeichen über die Schnittstelle klappt.
Nur das Empfangen, bzw. Ausführen der ISR funktioniert nicht.

Der Quellcode zeigt die Initialisierung der UART-Schnittstelle:
1
/*************************************************************/
2
/* void USART0_INIT(unsigned int baud)                       */
3
/*                                                           */
4
/* Initialisiert die UART0-Schnittstelle                     */
5
/*************************************************************/
6

7
void USART0_INIT(unsigned int baud)
8
{
9
  UBRR0H = (unsigned char) (baud>>8);
10
  UBRR0L = (unsigned char) baud;
11
  UCSR0C = (0<<UMSEL0) | (0<<UPM0) | (1<<USBS0) | (3<<UCSZ0);
12
  UCSR0B = (1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
13
}
14

15
/*************************************************************/
16
/* uint8_t USART0_Receive(void)                              */
17
/*                                                           */
18
/* Empfängt die Daten von der UART0-Schnittstelle            */
19
/*************************************************************/
20

21
uint8_t USART0_Receive(void)  
22
{
23
  while ( !(UCSR0A & (1<<RXC0)) );
24
  return UDR0;
25
}

hier die ISR aus der main.c:
1
/*************************************************************/
2
/* SIGNAL( SIG_UART_RECV )                                   */
3
/*                                                           */
4
/* Löst Interrupt aus, wenn Zeichen empfangen wird           */
5
/*************************************************************/
6

7
ISR(USART0_RX_vect) 
8
{ 
9
  uart_puts("Test" CR);
10
}

Kann mir einer sagen, wo der Fehler liegt?

mit freundlichen Grüßen

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.