Hallo zusammen Ich möchte mit dem Terminal Programm ein Zeichen auf den Microcontroller senden und auf dem Port ausgeben. Leider geht es nicht. Die Hardware ist OK mit einem ähnnlichen Programm mit anderem Microcontroller geht es Gruss Bald kommt der Weihnachtsmann
Du mußt mindestens im UCSRB noch die Bits RXCIE und TXCIE setzen, um die Interrupts freizuschalten. Mit den Bits RXEN und TXEN enablest Du nur den USART-Empfangs- bzw. Sendeteil.
warum so umstzaendlich?? int_rxc: ;in temp,SREG ;CPU-Status sichern ;push temp ;temp auf dem Stack sichern in temp2, UDR ;später Wert ausgeben out PORTC, temp2 ; pop temp ;out sreg, temp ;CPU-Status aus dem Stack wieder herstellen reti ;Interrupt beenden bei kleinen programmen ohne dass du viele register brauchst kannst das auch so einfacher loesen
Allerdings solltest Du das Auskommentieren dieser läppischen vier Zeilen kommentieren mit: 1. Nirgendwo sonst im Programm darf das Register temp2 verwendet werden. 2. In den Interrupthandler darf später niemals auch nur ein einziger "tst-", "cpi-", "clr-", "or-" oder sonstiger Befehl eingebaut werden, der sich auf die Statusflags auswirkt. Ich halte es für eine sehr gute Idee, in Interrupthandlern grundsätzlich das SREG sowie alle verwendeten Register auf dem Stack zu sichern. Dann kann man nämlich in dem Handler machen was man will - es kann nichts mehr schiefgehen.
Hallo Mal soweit danke empfangen kann ich beim senden habe ich noch ein Problem das ich vermutlich lösen kann Gruss Es kommt bald der Weihnachtsmann
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.