Hallo, ich schreibe zur Zeit ein Programm in Assembler für den ATmega162, welches die serielle Schnittstelle benutzen soll. Als Entwicklungsumgebung verwende ich VMLab, das AVRStudio bei der Simulation keine serielle Schnittstelle unterstützt. Ich bahe folgendes Problem. Der globale Interrupt (I in SREG) und der Interrupt für die komplette Übertragung (TXCIE1 in UCSR1B) sind freigegeben, d. h. das entsprechende Bit ist gesetzt. Wenn ich nun mit folgender Anweisung das Bit für die komplette Übertragung (TXC1 in UCSR1A) gesetzt wird, wird kein Interrupt ausgelöst. sbi UCSR1A,TXC1 In VMLab wird das Bit aber auch nicht gesetzt und es läßt sich das Register UCSR1A auch nicht verändern. Weiß jemand wo mein Fehler liegt. Gruß Manfred
Interrupt Flags kann man nicht von Hand setzen! Schau Dir im Datenblatt bitte mal die entsprechenden Abschnitte an (steht in der Beschreibung des jeweiligen Registers bzw. Flags). Das Schreiben einer 1 in ein Interrupt-Flag löscht das Flag, wenn es vorher gesetzt war. Eine 0 hat keinen Effekt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.