ok, ich glaube, ich hab das Problem gefunden...
Es muss hier
1 | // Warten bis Daten empfangen wurden
|
2 | if(UCSRA & (1<<RXC)){
|
3 | // Empfangsregister auslesen
|
4 | buffer = UDR;
|
5 | sbi(PORTB, buffer);
|
6 | }
|
dran liegen...
Ich habe gerade entdeckt, dass man die Programme im AVRStudio auch
simmulieren kann... Und während des Simmulierens bin ich drauf gestoßen,
dass UDR gelöscht wird, wenn ich den Status des RXC abfrage...
Ich habe es darauffolgend mit einem Interrupt probiert, dessen code ich
hier im Tutorial auf µc.net gefunden habe und es wieder simmuliert, und
komischer Weise tritt das selbe Problem auf!!
1 | SIGNAL (SIG_UART_RECV) {
|
2 | unsigned char recv;
|
3 |
|
4 | recv=UDR; //Zeichen vom Register holen
|
5 | UDR=recv; //Zeichen zurücksenden
|
6 | sbi(PORTB, recv);
|
7 | }
|
WAS MACHE ICH FALSCH??
ich versteh es nicht!!!
Bitte helft mir!!!!