![]()
Also Leuts, ich komm nicht weiter :-/
will er hier nen string , erwartet er woanders ein single, und umgedreht... der weiß nicht was er noch an fehlermeldungen auf mein board schreiben soll, ich blaub ich hab sie schonmal alle draufstehen gehabt :-/
also nun ganz exklusiv und mit sicherheit vielen fehlern behaftet MEIN wunderbarer Quellcode \/
Also das Erhöhen der stacks hat wahrlich NIX gebracht!Code:'Winkelmessung mit dem Sensor MLX 90316 und Ausgabe der Gradanzeige 'über den Controler RN-MiniControl von Robotikhardware auf das Display 'Wintek 27 * 4 von Pollin '>>>Besondere Lernleistung von Felix König<<< $regfile = "m168def.dat" 'Controller definieren $crystal = 16000000 'Quarzfrequenz $baud = 9600 'Übertragungsrate in Baud $hwstack = 64 $framesize = 64 $swstack = 64 'Die üblichen Definitionen bei Standardprogrammen auf Miniboard 'Hier kommt die Ausgabe auf das Display Config Lcd = 40 * 4 'Bascom kennt keine Displays 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 'man achte auf die Ergänzung E2 für den 2. Steuerkontroller des Displays 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" 'den Text in Anführungszeichen Cursor Off 'unterdrückt den Cursor ___lcdno = 1 'wählt die beiden unteren Zeilen aus Locate 1 , 1 'Wiederholt die Displayausgabe auf den unteren Lcd "Windrichtung : "; '2 Zeilen Locate 2 , 1 Lcd "Grad : " Cursor Off 'unterdrückt den Cursor 'Hier kommt die Sensorwerterfassung 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 Long 'Deklariert "Sensor" als Long mit 4 Byte Zeichenvorrat Dim Grad As Single 'Deklariert die Gradvariable "Grad" als Single Dim Grad2 As String * 5 Do ' Beginnt die Abfrageschleife zur Werteerfassung Sensor = 0 'Initialisiert die Variablen Sensor, Grad, Grad2 Grad = 0 Grad2 = 0.0 Sensor = Getadc(2) 'Der AD Wert wird am Pin C2 abgelesen und in die Variable "Sensor" geschrieben Grad = Sensor - 50 ' ((-50+Sensor)*360)/922 Grad = Grad * 360 Grad = Grad / 922 'Grad = Grad * 100 'Grad = Fix(grad) 'Grad = Grad / 10 'Grad = Round(grad) 'Grad = Grad / 10 'Ausgelassen, weil es nicht funktioniert hat Grad2 = Fusing(grad , "#.#") Print "Sensor (ADC) : " ; Sensor Print "Grad: " ; Grad Print "Grad2: " ; Grad2 'Hierhin kommt die Anzeige der Ausgesprochenen Windrichtung (NOSW) Select Case Grad2 ___lcdno = 1 Case Is > 337.5 : Print "Nord" ; Locate 1 , 16 Lcd "Nord" Case 292.5 To 337.4 : Print "Nord/West" ; Locate 1 , 16 Lcd "Nord/West" Case 247.5 To 292.4 : Print "West" ; Locate 1 , 16 Lcd "West" Case 202.5 To 247.4 : Print "Sued/West" ; Locate 1 , 16 Lcd "Sued/West" Case 157.5 To 202.4 : Print "Sued" ; Locate 1 , 16 Lcd "Sued" Case 112.5 To 157.4 : Print "Sued/Ost" ; Locate 1 , 16 Lcd "Sued/Ost" Case 67.5 To 112.4 : Print "Ost" ; Locate 1 , 16 Lcd "Ost" Case 22.5 To 67.4 : Print "Nord/Ost" ; Locate 1 , 16 Lcd "Nord/Ost" Case Is < 22.4 : Print "Nord" ; Locate 1 , 16 Lcd "Nord" Case Else : Print "Error" ; Locate 1 , 16 Lcd "Error" End Select Print " " ___lcdno = 1 'wählt die unteren 2 Zeilen aus Locate 2 , 8 Lcd Grad2 ; "^" Waitms 500 '500 ms Wartezeit zwischen der Abfragewiederholung ___lcdno = 1 'Löschen der vorherig angezeigten Werte auf dem Display Locate 1 , 16 Lcd " " Locate 2 , 8 Lcd " " Loop 'Ende der Ausführungsschleife 'und Sprung zum Anfang der Schleife End 'Programmende
Die meisten Fehler hab ich bei der Fallunterscheidung, da er mir in fast jeder zeile sagt, "Single expected" *blablablabla*
Bin irgendwie gefrustet![]()
Bin dankbar über jeden konstruktiven Vorschlag
Gruß Felix







Zitieren
Lesezeichen