Hi, so, nun melde ich mich nochmal zu Wort
Also passt auf. Mein Sensor funktioniert soweit, nurhab ich wohl noch das gleiche Problem wie Lenox, dass meine Werte Springen, und auch über 256 hinausgehen. Eigendlich hab ich ja die Zeile so angegeben, wieso er das nicht macht ist mir eigendlich unklar. Ich werde es einfach nochmal aufspielen, vielleicht hab ich was falsch gemacht.
Nun habe ich aber noch ein anderes Problem.
Ich möchte, dass mir die Gradanzahl ausgegeben wird, d.h. ich benötige eine Kleine Rechnung in meinem Code, die er jedoch als falsch erkennt.
Als Fehlermeldung bekomm ich "Source variable does not match the target variable" das bezieht sich auf die Zeile: Grad = Sensor *(360 / 1024)
Schaut es euch einfach mal an
Code:'Erster Test des Displays Wintek 27 * 4 von Pollin 'Besondere Lernleistung von Felix König $regfile = "m168def.dat" $crystal = 16000000 'Quarzfrequenz $baud = 9600 '$hwstack = 32 '$framesize = 32 '$swstack = 32 'Die üblichen Definitionen bei Standardprogrammen auf Miniboard Config Lcd = 40 * 4 'Bascom kennt keine Display mit 27 * 4 Zeichen, 'daher 40 * 4 verwenden Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.0 , Db6 = Portd.7 , Db7 = Portd.6 , E = Portb.3 , E2 = Portc.3 , Rs = Portd.3 , 'Rw = Portc.2 'man achte auf die Ergänzung E2 Dim ___lcdno As Byte ' Systemvariable der LCD-Bibliothek ___lcdno = 0 ' wählt den ersten Chip aus Initlcd 'die beiden oberen Zeilen initialisieren Cls 'die beiden oberen Zeilen löschen ___lcdno = 1 'auf Chip 2 schalten Initlcd 'die beiden unteren Zeilen initialisieren Cls 'die beiden unteren Zeilen löschen ___lcdno = 0 ' wählt die obere Zeile aus Locate 1 , 1 ' schreibt in die erste Zeile an Position 1 Lcd " Besondere Lernleistung "; ' den Text in Anführungszeichen Locate 2 , 1 ' schreibt in die zweite Zeile an Position 1 Lcd " von Felix Koenig 13 BGD" Cursor Off ' unterdrückt den Cursor ___lcdno = 1 ' wählt die beiden unteren Zeilen aus Locate 1 , 1 Lcd "Windrichtung : "; Locate 2 , 1 Lcd "Grad : " Cursor Off ' unterdrückt den Cursor Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Konfiguriert den AD Wandler Start Adc 'Startet den AD Wandler Config Pinc.2 = Input 'ADC 2 an Ctrl Dim Sensor As Byte 'Deklariert "Sensor" als Byte Dim Grad As Byte 'Deklariert die Gradvariable "Grad" als Byte Do ' Beginnt die Abfrageschleife zur Werteerfassung Sensor = Getadc(2) ' Der AD Wert wird am Pin C2 abgelesen und in die Veriable "Sensor" geschrieben Grad = Sensor *(360 / 1024) 'Print "Sensor " ; Sensor ___lcdno = 1 'wählt die unteren 2 Zeilen aus If Grad = 0 Then ' Locate 2 , 8 Lcd "0° / 360°" Else Locate 2 , 8 Lcd Grad ; "°" End If Waitms 500 '500 ms Wartezeit zwischen der Abfragewiederholung Loop 'Ende der Abfrageschleife, Sprung zum Anfang der Schleife End 'Programmende
Vieleicht könnt ihr mir ja noch so einen wunderbaren und hilfreichen tipp geben.
Viele Grüße Felix







Zitieren

Lesezeichen