Hallo Leute Ich habe folgendes Problem: Wenn ich das Programm (siehe Anhang) auf dem 8515 laufen lasse, empfange ich am Hyper Terminal etwa folgendes: TsTsTsTtTtTtTtTtTtetetete!e!e!e!e!e!s!s!s!s!s!sTsTsTsTtTtTtTtTtTtetetete !e!e!e!e!e!s!s!s!s!s!sTsTsTsTtTtTtTtTtTtetetete!e!e!e!e!e!s!s!s!s Bei einer höherem Baudrate (19200) gibt es weniger Fehler: Tes!Tes!Tes!Tet!Tet!Tet!Tst!Tst!Tst!est!est!estTes!Tes!Tes!Tet!Tet!Tet!T st!Tst!Tst!est!est!est Ich denke es liebt an der UDRE Abfrage. Wenn ich anstelle von while(UDRE==0); while(UDRE!=1); schreibe passiert gar nix mehr..... Kann mir jemand helfen? Gruss PD
Hmm, weiß zwar nicht, welchen compiler du benutzt, aber wenns avr-gcc ist, ist die UDRE abfrage falsch. du holst udre ja gar nicht aus dem register raus, sondern checkst immer nur eine variable. bei gcc müsste es heißen: while (bit_is_clear(UCSRA,UDRE)) ; wenn du allerdings codevision einsetzt siehts schon wieder anders aus. da kenn ich mich aber nicht aus...
Hy Jonas Danke für den Tip, nun funzt es!!! Jetzt muss ich nur noch den empfang basteln:-) CU PD
schau dir mal die gcc-test programme an. empfange am besten über SIGNAL(SIG_UART_RECV)
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.