mikrocontroller.net

Forum: Compiler & IDEs UART String empfangen


Autor: Tseug Halt (tseug)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich möchte mit dem Handy einen SMS versenden (funktioniert auch schon) 
und das zurückkommende OK vom Handy auswerten.

Dazu habe ich folgende Standardfunktion verwendet.

uint8_t Usart_Rx(void)
{
    while (!(UCSRA & (1<<RXC)));
    return UDR;
}

Im Main mache ich dann folgende Abfrage

while( Usart_Rx() != 'O');
while( Usart_Rx() != 'K');


Zum Testen nehm ich den Hyperterm. Da funktionierts auch richtig, nur 
wenn ich das Handy anschließe und der Controller die SMS-Sendung 
veranlaßt bleibt der Controller hängen.

Irgendwelche Ideen??
Denke evtl. dass es mit der Geschwindigkeit zusammenhängt mit der das 
Handy antwortet.

Gruß
Timo

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt da vielleicht noch etwas mehr als nur "OK" (Steuerzeichen..) ?

Autor: Frank W. (frankw) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schickt Dein Handy vielleicht "ok" oder "Ok" ?

Ausserdem - Wenn es dann mal funktioniert und Deine Handy schickt

"Oma backt die besten Kekse" , dann würde deine Auswertung das auch als 
OK (   O(ma)K(ekse) )   ansehen. Ist es das was Du willst :-)

Gruss
Frank

Autor: Tseug Halt (tseug)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...war jetzt zwei Tage nich da.

Also... @Frank:

das ist mir schon klar, dass das passieren kann, aber ich weiß sehr 
genau was das Handy zurückschickt und das ist entweder OK oder ERROR und 
an die Groß- und Kleinschreibung hab ich auch schon gedacht. Brachte 
aber nix. Habs auch auf den ASCII-Wert überprüft, war aber auch nix. 
;((((

@WM-Rahul

da kommen sehr viele Steuerzeichen wenn ich den Hyperterm auf 
ASCII-Darstellun g umstelle. So Sachen wie RETURN und LINEFEED halt. 
Dachte das sollte kein Problem sein. Außerdem brigt er noch sowas wie 
CSSM+ oder so. Kann mich nicht genau erinnern.

Schönen Gruß
Timo

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> da kommen sehr viele Steuerzeichen wenn ich den Hyperterm auf
> ASCII-Darstellun g umstelle. So Sachen wie RETURN und LINEFEED halt.
> Dachte das sollte kein Problem sein. Außerdem brigt er noch sowas wie
> CSSM+ oder so. Kann mich nicht genau erinnern.

Du solltest dein Empfangsschema mal grundsätzlich umstellen.
Bau dir eine Funktion, die alles was vom Handy kommt in
Zeilen aufteilt. Also solange Zeichen sammeln bis ein
RETURN und LINEFEED daherkommt. Erst dann, wenn du eine
komplette Zeile empfangen hast, kümmerst du dich um die
Auswertung.
Wenn du weiterhin Schwierigkeiten hast, ist es immer eine
gute Idee, mal das was der µC vom Handy kriegt auszugeben.
Egal wo. Ob das jetzt ein paar LED's sind auf denen du
die Zeichen durchblinkst, oder ob du das Empfangene vom µC
auf einer zusätzlichen UART an Hyperterminal überspielst
oder wie auch immer. Wichtig ist nur, dass du mal siehst
was denn der µC tatsächlich vom Handy kriegt. Das Handy
direkt an HT anschliessen ist dafür kein Ersatz.

> Denke evtl. dass es mit der Geschwindigkeit zusammenhängt mit der
> das Handy antwortet.

Eher nicht.
Die Zeitdauer die die Hardware benötigt um ein Zeichen zu übertragen
ist für den µC eine halbe Ewigkeit.


Autor: Tseug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mich inzwischen nochmal über diese Sache gemacht und mitlerweilen 
funktionierts auch. Ich hatte einfach eine zu lange Wartezeit zwischen 
dem Senden ans Handy und dem Empfangen vom Handy drin. Is zwar nicht die 
eleganteste Lösung, aber für mich reicht das erstmal aus.

Danke ans Forum!!!!!

Is echt klasse die Unterstützung hier, gerade als Anfänger.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.