Irgendwie bekomme ich es nicht auf die Reihe einfache Zeichen über den Uart an den Computer zu senden.. In meinem Programm sollen einfach nur 2 zeichen gesendet werden die ich dann im Hyperterminal aufnehme, doch statt "MA" kommen andauernd andere Buchstaben, mal SXSXSX oder was auch immer. Die Baudrate würde ich nach meiner Recherche schonmal ausschließen, so wie ich das verstanden hab kommt dann ja nur Mist. Irgendwie kommt mir das so vor als wenn er einfach zu früh oder zu spät beginnt abzutasten, wenn ich das serielle kabel mal reinstecke und wieder rausziehe ist es ca alle 5 mal wieder richtig.. Das Fusebit für den externen oszillator hab ich mit der myavr software gesetzt (im übrigen funktioniert der uart mit dem testprogramm auch 100%ig) also gehe ich davon aus das der fehler in meinem quellcode liegt.. vielleicht kann mal jemand drüber schauen.. vielleicht hab ich auch einfach gerade ein brett vor dem kopf
Wo ist "F_CPU" definiert? Die Übertragungsrate wird damit ja ausgerechnet. Wenn du zwei Zeichen sendest und mehrere Zeichen ankommen, dann sieht das sehr nach Baudratenfehler aus. Hast du diesen mal von Hand ausgerechnet und mit dem Ergebnis verglichen, dass dir der Simulator ausspuckt? PS: Die Variable "Zeichen" kannst du dir auch sparen. Schreib einfach: USART_SENDEN('M');
Du sendest einen endlosen Datenstrom. Da wird sich das Terminalprogramm evtl. nicht richtig synchronisieren. Mach mal nach den zwei chars eine kleine Pause.
>doch statt "MA" >Die Baudrate...kommt dann ja nur Mist. Wie würdest du das denn bezeichnen: >mal SXSXSX oder was auch immer
ja klar aber immerhin ist es ein gleichmässiger "mist" und alle paar male passt es ja auch wieder (wenn ich das kabel ziehe und wieder reinstecke) ich guck mal gerade wie fcpu definiert ist, hab ich im makefile gemacht
Du schreibst ein Zeichen in eine signed char Variable. Diese übergibst du einer Funktion als unsigned char. Gibt der Compiler keine Warunung aus, oder ist sowas nicht relevant?
keineahnung wrote:
> achso, ich setze 2 zeichen hintereinander @igor
Ja und?
besten dank euch!! jetzt klappts, es war tatsächlich die pause die fehlte, jetzt läuft es einwandfrei
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.