PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nur Nummern in Array / nur Variablentyp byte als Array?



Crashmichl
27.04.2006, 19:45
Hallöle,

habe ein Problem, bei dem ich nicht weiter komme:

ich bin momentan dabei, eine ADC-Karte zu erstellen. Da ich momentan noch auf Teile warte, um weiter machen zu können, hab ich mich mal an die Programmierung der Firmware für die Karte gemacht. Die Karte soll später 4 Kanäle zur ADC über RS232 anbieten und auch verschiedene Sensoren berücksichtigen können.
Befehle, zum ansprechen der Kanäle und deklarieren des Sensortyps soll über die RS232 über einen kleinen Prompt passieren.
Ein Befehl soll z. B. so aussehen:
"ro c1 s00"
Soll heißen: ro für Befehl read-out, c1 für Kanal 1 und s00 zum Beispiel als Sensor 00 (z. B. ein KTY oder so).
In C wäre ich jetzt her gegangen, hätte ein eindimensionales Array erstellt, hätte anschließend über eine Funktion die ersten beiden Stellen abgefragt, anschließend das Leerzeichen geprüft, dann die vierte und fünfte Stelle über die erste Funktion wieder abgefragt, Leerzeichen kontrolliert und anschließend die letzten drei Stellen über die Funktion abgefragt. Bei richtiger Antwort ein OK ausgegeben, den erkannten Befehl in drei einzelne Variablen zerlegt und an zwei weitere Funktionen übergeben, die ADC auslesen und den Wert je nach Sensor berechnen.

Jetzt wollte ich dieses über Bascom lösen, stolpere aber über die Tatsache, dass ich scheinbar kein Array erstellen kann, in dem ich Buchstaben einsetzen kann. Ich kann zwar Variable String mit Länge definieren, aber nicht von einem Feld ins nächste springen. Und byte-Arrays kann ich ja nur mit Nummern füllen.
Hat einer eine Idee, bzw. die Art der Befehlsform evtl. schon mal probiert?

Grüßle

Michl

PicNick
27.04.2006, 20:01
Beim Bascom mach ich das mit einer "union" -konstruktion
DIM inputstring as string * 24
DIM array(25) as Byte at inputstring OVERLAY

Das ist beides das gleich Speicherbereich mit 25 Byte länge.
Je nach befehlsart nimmst du inputstring oder array(index)

Crashmichl
27.04.2006, 23:04
Hallo,

danke für den Tipp, ich probiers gleich mal!

Grüßle

Michl

Crashmichl
28.04.2006, 00:15
Hallo,

klappt einwandfrei!

Danke für den Tipp

Grüßle

Michl