Forum: Mikrocontroller und Digitale Elektronik Steuercodes über UART senden


von Carsten (Gast)


Lesenswert?

Hallo Forum,
schon wieder ich :)

Ich möchte Befehle über das UART an ein Handy schicken.
Die Modembefehle sind ja im Grunde Klartext.
Wie aber versende ich <CR>,<STRG+Z> und <ESC> ?

von Gerhard Gunzelmann (Gast)


Lesenswert?

Dem UART ist es wurscht was Du sendest. Der Empfänger ist derjenige, der
das interpretiert.


Gerhard

von Carsten (Gast)


Lesenswert?

Sorry, dass ich so blöd bin !!!!



Ich kann ja wohl kaum "Steuerung plus Z schreiben" um die
Tastenkombination zu senden.
Ist mir auch klar, dass es dem UART wurscht ist.

von Simon Küppers (Gast)


Lesenswert?

http://www.lookuptables.com/
passendes byte senden

von Steffen Brüggemann (Gast)


Lesenswert?

Hallo...

Schau dir doch mal eine ASCII-Tabelle an. Wenn du dort den hex-wert für
bsp. <CR> entnimmst und sendest müsste es doch klappen, oder?

gruß

von Carsten (Gast)


Lesenswert?

...mhh
so richtig will das nicht.
Jetzt kann aber die Steckerbelegung des D-Sub anders sein.
Ich hab nen Anschlusskabel, dass normalerweise in den Rechner (Stecker)
kommt.
Das STK500 hat aber ne Buchse, wie das Kabel.
Hab mir nen Adapter gebastelt, der Pin 1 mit 1, 2 mit 2 etc verbindet.
Müsste der vielleicht anders beschaltet sein ?

von Carsten (Gast)


Lesenswert?

Kennt vielleicht jemand ein Tool zum mitschreiben der seriellen Daten ?
Wenn ich einen Modembefehl an den Terminal sende wird er den vermutlich
nicht anzeigen sondern versuchen auszuführen.
Dies sind die beiden Zeilen, die ich an das Handy senden will:
SendBefehl:
  .db "at+cmgs=",34,"01705410102",34,13, 0
Text12:
  .db "Test",26,27, 0
Das Wort Test kann ich im Terminal sehen aber den Befehl nicht.
Wird dieser dann nicht gesendet oder verschluckt der Terminal ihn ??

von Werner B. (Gast)


Lesenswert?

@Carsten

ist ganz einfach...
^@ = 0x00   - Ok, geht auf deutscher Tastatus schlecht :(
^A = 0x01
^B = 0x02
^C = 0x03
...
^G = 0x07 = Ring the Bell
...
^J = 0x0A = LineFeed
^K = 0x0B
^L = 0x0C = FormFeed
^M = 0x0D = CR
...

von Carsten (Gast)


Lesenswert?

Hallo Werner,
jetzt stehe ich etwas auf'm Schlauch.
Was bedeutet das ?

von Carsten (Gast)


Lesenswert?

OK, noch mal von vorne:
Über den Terminal wird das Handy wie folgt bedient:
at+cmgs="01711234567"<CR>
Dann antwortet das Handy mit: >
Jetzt kommt der Text ohne " :
Test<STRG+Z><ESC>

Ich habe versucht das ganze mit dem UART Tutorial und dem
Speicher-Tutorial zu realisieren.

Erster Versuch:
Erst den Text .db "at+cmgs=",34,"01705410102",34,13, 0 mit
folgender Routine

print_Modem:
        lpm                   ; Erstes Byte des Strings nach R0 lesen
        tst R0                ; R0 auf 0 testen
        breq print_Modem_end  ; wenn 0, dann zu print_end
        mov Text_Modem,r0     ;r0 nach r20 kopieren
  rcall sendbyte        ; UART-Sendefunktion aufrufen
        adiw ZL, 1            ; Adresse des Z-Pointers um 1 erhöhen
        rjmp print_Modem      ; wieder zum Anfang springen
print_Modem_end:
        ret

Sendbyte ist im Grunde direkt aus dem Tutorial übernommen.

Müsste ich jetzt abwarten oder sogar auf ein feedback warten bevor ich
den Text sende ?

Ich habe bis jetzt versucht, direkt anschließend diese Zeile zu
senden:
.db "Test",26,27, 0
wobei hier 26 eigentlich STRG+Z und 27 ESC entsprechen müsste.
Hilfe, bin langsam verzweifelt.

von Carsten (Gast)


Lesenswert?

Kann mir vielleicht wenigstens jemand einen Tipp zum seriellen Anschluss
geben ?
Das Datenkabel vom Handy hat ne Buchse, das STK 500 auch.
Wie muss der Adapter aussehen ?

von Carsten (Gast)


Lesenswert?

Jetzt hab ich's...
Pin 2 auf 3, Pin 3 auf 2 und Pin 5 auf 5.
Für mein nächstes Problem fange ich mal nen neuen Threat an.

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
Noch kein Account? Hier anmelden.