Hallo kolisson,
als beispiel möchte ich z.b. den adc 0 eines atmel über labview auslesen
...dann auf die nächsten c'ts warten. CM geht dann näher auf die LabView-Programmierung ein.
Der Code für einen AVR? Der Parserteil von meinem c't-Beitrag ist das:
Code:
Sub Checkserinp
If Asc(serinpstr) = 35 Then 'wenn der String mit # losgeht kanns für uns sein
Checkbuff = Mid(serinpstr , 4 , 1) 'Variable zweckentfremdet um Speicher zu sparen
Speicher = Asc(checkbuff)
If Speicher = 37 Then 'wenn an 4. Stelle ein % kommt ists für uns
Checkbuff = Mid(serinpstr , 2 , 2)
Speicher = Val(checkbuff)
Select Case Speicher
Case 1 To 9:
Speicher = Speicher * 30
Speicher = Speicher - 29
Checkbuff = Mid(serinpstr , 5 , 32)
Writeeeprom Checkbuff , Speicher
Serinpstr = "#Speicher " + Str(speicher) + " Wert " + Checkbuff + " geschrieben"
Call Writeserinp
Case 99: ' Tastenkonfiguration wird aufgerufen
Call Fblearn
Case 98:
Checkbuff = Mid(serinpstr , 5 , 5)
Speicher = Val(checkbuff)
If Speicher > 65000 Then Speicher = 65000
Writeeeprom Speicher , 8173
Serinpstr = "# Geschwindigkeit gespeichert"
Call Writeserinp
Case 97:
Timerlearn = 1
Timerstring = Mid(serinpstr , 5 , 9)
Serinpstr = "# Abfolge: " + Timerstring + " gespeichert"
Call Writeserinp
Case Else
Serinpstr = "# Speichererror FB-Modul"
Call Writeserinp
End Select
Else
Call Writeserinp 'kein % dann schick den String weiter
End If
Else
Call Writeserinp 'kein # dann schick den String weiter
End If
End Sub
Hier wird abgefragt, ob das erste Zeichen ein "#" ist und das 4. ein "%".
Das sind willkürliche Festlegungen, das kann man auch anders machen.
Das 2. und 3. Zeichen legt den Befehl fest der vom Labview kommt.
diese 2 Zeichen werden in eine Zahl gewandelt und mit Case Select abgefragt.
Hier könnte die Abfrage eines Pins des ATMegas stehen, um sie mit "Print" auf die Reise zu schicken.
Gruß Günter
Lesezeichen