Hi,
habe die Fehlermeldungen jetzt dazu geschrieben, in meinem vorigen Post.
Und bei dem Prog. jetzt hat sich die letzte Fehlermeldung geändert:
Error: 1 Line: 33 Unknown statement [Result > 1000 Then]
Viele Grüße und vielen Dank
Was für fehlermeldungen?
Ich habe den Code nochmal an zwei Stellen bearbeitet:
In der Zeile "Result > 1000" ist es nicht sinnvoll = zu verwenden, da er nur bei diesem Wert hinter fährt. Von daher ist es sinnvoll " > "einzusetzten. Dann fährt er bei ganz nahen Gegenständen zurück.Code:$regfile = "m8def.dat" $crystal = 16000000 Dim Result As Word Dim Channel As Byte Config Pinb.1 = Output Config Pinb.2 = Output Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Config Pinc.4 = Input Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Compare1a = 1 Compare1b = 1 Portc.0 = 1 Portc.1 = 0 Portc.2 = 1 Portc.3 = 0 Start Adc Do Result = Getadc(4) ; Result If Result > 1000 Then Portc.0 = 0 Portc.1 = 1 Portc.2 = 0 Portc.3 = 1 Wait 1 Loop End
jon
Nice to be back after two years
www.roboterfreak.de
Hi,
habe die Fehlermeldungen jetzt dazu geschrieben, in meinem vorigen Post.
Und bei dem Prog. jetzt hat sich die letzte Fehlermeldung geändert:
Error: 1 Line: 33 Unknown statement [Result > 1000 Then]
Viele Grüße und vielen Dank
mfg Jonas
Habe den Code nochmal bearbeiten müssen.Code:$regfile = "m8def.dat" $crystal = 16000000 Dim Result As Word Config Pinb.1 = Output Config Pinb.2 = Output Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Config Pinc.4 = Input Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Compare1a = 1 Compare1b = 1 Portc.0 = 1 Portc.1 = 0 Portc.2 = 1 Portc.3 = 0 Start Adc Do Result = Getadc(4) ; Result If Result > 1000 Then Portc.0 = 0 Portc.1 = 1 Portc.2 = 0 Portc.3 = 1 End if Wait 1 Loop End
Könntest du die Zeilen, die in der Fehlermeldung angegeben sind, mal markieren?
Ich krieg das mit dem Durchzählen nicht so ganz hin.
jon
Nice to be back after two years
www.roboterfreak.de
Hi, vielen Dank,
also hier die reihen:
F.:Error: 31 Line: 30 Infalid datatyp [0]
Result = Getadc(4) ; Result
F.:Error: 93 Line: 30 Variable not dimensioned [0-> 0]
Result = Getadc(4) ; Result
F.:Error: 1 Line: 32 Unknow Statement [IF]
If
F.:Error: 1 Line: 33 Unknown statement [Result > 1000 Then]
Result > 1000 Then
Viele Grüße und vielen Dank
mfg Jonas
Probier es mal so aus.Code:$regfile = "m8def.dat" $crystal = 16000000 Dim Result As Word Config Pinb.1 = Output Config Pinb.2 = Output Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Config Pinc.4 = Input Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Compare1a = 1 Compare1b = 1 Portc.0 = 1 Portc.1 = 0 Portc.2 = 1 Portc.3 = 0 Start Adc Do Result = Getadc(4) If Result > 1000 Then Portc.0 = 0 Portc.1 = 1 Portc.2 = 0 Portc.3 = 1 End if Wait 1 Loop End
jon
Nice to be back after two years
www.roboterfreak.de
Hallo minium, Hallo Jon,
das Semikolon und der Text dahinter gehören nicht dahin. Kommentare werden immer mit ' eingeleitet.Result = Getadc(4) ; Result
gehört in eine Zeile:If
Result > 1000 Then
If Result > 1000 Then
Weiterhin ist zu erwarten, daß ein Wert von > 1000 nie erreicht wird.
Die Sharp-Sensoren haben ca. eine maximale Ausgangsspannung von 2,6V. Das entspricht etwa einem AD-Wert von 530.
Ich würde für die IF Abfrage einen Wert von ca 350 vorschlagen, das entspricht bei einem Sensor GP2D12 etwa 15cm.
Gruß, Michael
In meiner letzten Programmversion habe ich das auch verbessert.Zitat von Michael
Hab ich irgendwie immer übersehenZitat von Michael
Stimmt.Zitat von Michael
Ich habe bei mir die Interne Reverenzspannung, weshalb bei mir das höchst bei einem ganz nahen Gegenstand 1024 ist.
jon
Nice to be back after two years
www.roboterfreak.de
Hallo Jon,
ich war etwas länger am Schreiben, da hast du schon den nächsten Post geschickt.In meiner letzten Programmversion habe ich das auch verbessert.
der Wertebereich des AD-Wandlers geht über 1024 Schritte, von 0 bis 1023 !!weshalb bei mir das höchst bei einem ganz nahen Gegenstand 1024 ist.
Gruß, Michael
Hi, vielen Dank,
jetzt habe ich ein funktionierendes Programm. Also vielen Dank für eure Hilfe.
Viele Grüße
mfg Jonas
Hallo,
funktioniert das Prog. auch bei einem Liniensensor oder muss das dann ein ganz anderes sein (nicht Motor,.. nur der Teil mit dem Sensor) ?
Wie müsste es ca. heisen ?
Viele Grüße und vielen Dank
mfg Jonas
Lesezeichen