Du hast 2X "Do" drin, aber nur einmal "loop".
Außerdem müssen Variablen immer VOR dem eigentlichen Programm deklariert werden (zumindest afaik) (das ist das, was du mit "dim" machst)
Code:
...
Locate 1 , 1
Lcd Chr(0) ; "L: " ; Temp1
Dim Temp2 As Word , Kanal2 As Byte
Kanal2 = 0
Do
Temp2 = Getadc(4)
...
hier deklarierst du Temp2, nachdem schon Arbeitsanweisungen gegeben wurden.
dein 2. "Do" ist hier übrigens zu sehen.
warum zählst du zweimal die ADC-Pins durch???? das ist wirgendwie sinnlos.
probiere es damit (oder etwas ähnlichem):
Code:
Dim Temp as Word , Kanal as Byte
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcdbus = 4
Config Adc = Single , Prescaler = Auto
Start Adc
cls
Kanal = 0
Do
Temp = getadc(Kanal)
cls
locate 1 , 1
lcd "ADC-Pin: " ; Kanal ; "Wert: " ; Temp
wait 1
incr Kanal
if Kanal > 7 then
Kanal = 0
end if
loop
End
damit sollten alle ADC-Pins nacheinander im Sekundentakt abgefragt und die Werte angezeigt werden.
wenn du nur die Kanäle 0 bis X abfragen möchtest (z.B. nur bis Kanal 2), dann musst du nur bei
die 7 durch X (also Bspw 2) ersetzen)
Lesezeichen