mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik auf UART lauschen bis Zeichen erscheint


Autor: Mats Marcus (elektrofreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ich möchte gerne auf einem ATMega den UART benutzen, um Daten von einem 
ATM auf einen anderen zu übertragen.

Das senden geht ja durch Print einfach von statten.

jetzt habe ich mir gedacht, da ich nicht durch waitkey den gesammten 
controller lahm legen möchte, einfach mit Inkey den im Buffer liegenden 
Buchstaben or Whatever herauszuholen und an einen String inten dran zu 
hängen.

Wenn nun hinen am string ein bestimmtes Zeichen hängt, wird mit dem 
bearbeiten der Daten begonnen.


Wie ist dies in Bascom möglich?

Gedacht habe ich mir das in etwa so:


Dim Akey As String * 16
Dim Bkey As String * 16

Do

Akey = Inkey()

If Akey <> 0 Then Bkey = Bkey & Akey

if right(bkey, 1) = "?" then 'mach die Berechnung

Loop


aber wie mache ich das, dass der die in ascci-Code eintreffenden Zahlen 
in Zeichen umwandelt und dass der beide Variablen "Bkey = Bkey & Akey" 
zusammen fasst, da der kein Und-Zeichen kennt wie basic.

Vielen Dank im Vorraus

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schade, dass du Bascom benutzt. In C wäre das Pippifax (zumindest für 
mich).

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klappt denn eigentlich das 'geteilt' und 'mal-Rechnen' schon?

Autor: Mats Marcus (elektrofreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, danke das klappt.

Also mit chr(var) hab ich herausgefunden, dass ich die ascii-Zahlen 
wieder in buchstaben konvertieren kann.

aber mit dem "hintereinandersetzten" von mehreren strings klappts noch 
nicht

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit "On UART gosub" oder wie sich das 
UART-Interrupt-Geraffel bei Bascom schimpft?!

Autor: Mats Marcus (elektrofreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie kann ich dann die uart-daten lesen? inkey?

Edit: mag der nicht. Er sagt "Variable expected UART"

danke für den anstoß ;-)

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und wie kann ich dann die uart-daten lesen?
Vermutlich mit A=UDR.

http://avrhelp.mcselec.com/bascom-avr.html

Guck da mal nach "ischarwaiting"

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>aber mit dem "hintereinandersetzten" von mehreren strings klappts noch
>nicht

Kann man denn Strings nicht einfach addieren wie in anderen Sprachen
auch?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Man kann vermutlich auch in Bascom Strings addieren.

Mit einem + Zeichen vermutlich, womit sollte man sonst addieren? ;)

Zumindest behauptet das diese Fundstelle bei
http://www.rowalt.de/mc/avr/avrboard/06/avrb06.htm

'0011.BAS: Einfacher String-Empfang
$Regfile = "2313def.dat"
$Crystal = 3686400
$Baud    = 9600

Dim s As String*10

On URXC OnRxD
Enable URXC
Enable Interrupts

Main:
  If Len(s) > 9 Then
    Print s
    s = ""
  End If
Goto Main

OnRxD:
  s = s + Chr(UDR)
Return

Ach ja, Strings wurden in Basic schon anno 1723 mit + zusammengefügt.

Gruß aus Berlin
Michael

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da fragt man sich schon, warum der TO nicht selber bei Roland Walter
vorbeigeschaut hat. Aber fragen ist halt leichter.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

keine Ahnung. ;)
Naja, ich mußte meine Google Suchanfrage auf 2x ändern, mit
bascom uart string empfangen
ist es dann aber der erste Treffer. :)

Eigentlich hatte ich ja in die BasCom-Dokz geschaut, die ist aber im 
Ernstfall wirklich nur auf dem Klo zu gebrauchen.
Zum Lesen natürlich! ;)

PS: ich programmieren nicht in BasCom, habe aber früher etliche 
Basic-Dialekte benutzt und bin nicht der Meinung, daß man in Basic nicht 
programmieren sollte.
Allerdings halte ich Basic auf einem µC für relativ ungünstig, machmal 
auch C, das wird aber eher an meiner Unkenntnis bei C liegen.
Also bleibe ich vorerst bei Assembler auf dem AVR. :)

Gruß aus Berlin
Michael

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Da fragt man sich schon, warum der TO nicht selber bei Roland Walter
>vorbeigeschaut hat.

Darüber braucht man Leuten, die Bascom zum "Programmieren" benutzen 
nicht mehr nachdenken: Entweder kommen sie (fast) komplett alleine damit 
klar oder sie stellen dauernd Fragen.

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.