- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Nur Nummern in Array / nur Variablentyp byte als Array?

  1. #1

    Nur Nummern in Array / nur Variablentyp byte als Array?

    Anzeige

    Praxistest und DIY Projekte
    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

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    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)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Hallo,

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

    Grüßle

    Michl

  4. #4
    Hallo,

    klappt einwandfrei!

    Danke für den Tipp

    Grüßle

    Michl

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress