Hallo zusammen
Ich habe bei einem kleinen Projekt mit einem Atmega 8515 auf einem
STK500 eine Usart Library geschrieben, mit welcher ich Traces an ein
Terminal ausgeben kann.
Beim Versuch nun Steuerzeichen vom Terminal zu Empfangen, trat nun
folgendes Problem auf, welches ich mir nicht erklären kann.
Um mittels des Usart-Interrupts Daten empfangen zu können, habe ich als
erstes die entsprechenden Register gesetzt:
1 | UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
|
Danach die Interrupt-Routine mit dem entsprechenden Vektor
implementiert.
1 | ISR(USART_RXC_vect)
|
2 | {
|
3 | // TODO
|
4 | }
|
Wenn ich nun von meinem Terminal (CuteCom) ein Zeichen absetzt, dann
startet der Controller zyklisch neu. Dies ist feststellbar weil ich bei
jedem Start der Steuerung die Grundkonfiguration über die
usart-Schnittstelle ausgebe. Das heisst das zyklisch diese Daten
gesendet werden
Sobald ich den Controller über den Reset-Pin zurücksetze, läuft alles
wieder normal bis zum ersten Empfang eines Zeichens.
Wenn ich das Bit RXCIE lösche, läuft alles, ausser dass ich natürlich
nichts empfangen kann.
Hat jemand eine Idee an was das liegen könnte.
Danke für die Hilfe und Gruss
hafisch