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
Schade, dass du Bascom benutzt. In C wäre das Pippifax (zumindest für mich).
Klappt denn eigentlich das 'geteilt' und 'mal-Rechnen' schon?
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
Wie wäre es mit "On UART gosub" oder wie sich das UART-Interrupt-Geraffel bei Bascom schimpft?!
und wie kann ich dann die uart-daten lesen? inkey? Edit: mag der nicht. Er sagt "Variable expected UART" danke für den anstoß ;-)
>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"
>aber mit dem "hintereinandersetzten" von mehreren strings klappts noch >nicht Kann man denn Strings nicht einfach addieren wie in anderen Sprachen auch?
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
Da fragt man sich schon, warum der TO nicht selber bei Roland Walter vorbeigeschaut hat. Aber fragen ist halt leichter.
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
>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.
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.