Tip:
Lass dir zu Kontrollzwecken IMMER das Zeichen, das du empfangen hast,
gleich wieder über den Sendekanal ausgeben. Dann kannst du in deinem
Terminalprogramm kontrollieren, welches Zeichen dein Programm über die
Schnittstelle empfangen hat.
"Lokales Echo" ist kein Ersatz für Kontrollmöglichkeiten.
AUf den ersten Blick sieht die Routine ok aus.
Aber wird sie überhaupt aufgerufen ?
Zeigt der IR Vector auf sie,
Ist der Receiver Interrupt eingeschaltet ?
Sind überhaupt Interrupts erlaubt ?
Ist das DDR gesetzt ?
Toggle doch mal den Pin in einer Endlosschleife, dann siehst du schon
mal ob das geht.
Dann Toggle den Pin bei jedem Aufruf der Routine, dann weisst du
schonmal ob dein Programm dort hinkommt. Ich vermute, dass nicht.
MfG
SH
>> sbr temp,(0<<RXCIE0)>> sbr temp,(0<<RXEN0)>> sbr temp,(0<<TXEN0)>> sts UCSR0B ,temp> ldi temp,(1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0)> sts UCSR0B ,temp> 1. dein temp ist sonst unbestimmt> 2. 'sbr temp,(0<<XYZ)' bewirkt nichts
hier war nur einen Schreibfehler, ich habe auch alle auf 1 gesetzt..
Hi
> ldi temp, (1<<USBS0)|(3<<UCSZ00)> sts UCSR0C, temp> sbr temp,(0<<RXCIE0)> sbr temp,(0<<RXEN0)> sbr temp,(0<<TXEN0)> sts UCSR0B ,temp
Du hast aber vorher schon etwas nach temp geladen. Und danach setzt du
noch ein paar Bits. Was meinst du, was dabei herauskommt?
MfG Spess