Empfangen mehrerer Zeichen

Gast #403782
Lesenswert?
• ▲
▼
Hallo
Ich hoffe jemand kann mir helfen.
Ich möchte mit einem ATMEGA32 mehrere Zeichen empfangen.
das funktioniert jedoch nicht.Senden funktioniert.

Was mache ich falsch?

Ich habe meinen Code im Dateianhang.

Danke
Angehängte Dateien:
Gast #403783
Lesenswert?
• ▲
▼
Sieht korrekt aus. Bis auf diese Zeile:

UBRRL = 25;//(unsigned char) baud;

Bist du sicher mit den 2400 Baud? Mir sieht das eher wie 9600 Baud bei
4 MHz F_CPU aus.

Hardwaremäßig alles richtig beschaltet? PC Terminalprogramm korrekt
eingestellt?
Gast #403785
Lesenswert?
• ▲
▼
UBRRL = 25; stimmt weil ich den internen 1 MHz Oszillator verwende.

Und Hardwaremäßig müsste auch alles ok sein da ich einen STring senden
kann.
Ich kann ein einzelnes Zeichen Empfangen nur sobald es mehr als eines
sind funktioniert es nicht mehr.

Jedoch verwende ich wenn ich ein einzelnes Zeichen empfange nicht diese
Schleife.

for (i = 0;i<=1;i++)
{
input[i]= USART_Receive();


}
#403788
Lesenswert?
• ▲
▼
Ich nehm alles zurück (wasn heute los? heut passieren mir die
lächerlichsten Fehler).

Der Fehler ist, dass du den String nicht mit einem '\0'
Zeichen abschliesst. Das heist: Deine 2 empfangenen Zeichen
bilden noch keinen String! Daher kannst du auch keinen
strcmp zum Vergleichen benutzen.
Gast #403791
Lesenswert?
• ▲
▼
Wieso benutzt Du nicht den Interrupt (RX-Complete)? Mit dem hatte ich
noch nie Probleme, macht den Rest des Programmes auch weniger
zeitkritisch (Polling). Freigeben und sperren kann man den USART durch
setzen und löschen von RXEN, nicht RXCIE. Wenn möglich sollte man die
Benutzung der Interrupts immer vorziehen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.