Stargate
04.02.2007, 13:15
Hallo Leute
ich hab mal wieder Probleme mit meinem Basic Quellcode.... der will mal wieder nicht so wie ich will...
Also ich bin immern och bei meinem Projekt, mit einem Sensor eine Winkelmesseinrichtung mithilfe des MLX 90316 zu bauen.
So, nun möchte ich gerne, dass mir der Controller nicht nur eine Gradanzeige ausgibt, sondern auchdie ausgesprochenen Windrichtungen, so wie norden, süden, etc.
das heißt ich muss ja bestimmt bereiche als norden, als süden, usw. deklarieren. ich habe mal versucht das mit deinem riesigen if...else gebilde zu realisieren, aber funktionieren tut es nicht.
außerdem hab ich dann ein problem mit Norden. Da geht es von 337.5 bis 360 und dann von 0 bis 22.5 grad. wie soll ich ihm denn die 2 sachen in eine bedingung packen? oder muss ich die wieder in 2 aufteilen....
wäre schön wenn ihr mir da helfen könntet
hier noch schnell meinen quellcode
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
Do ' Beginnt die Abfrageschleife zur Werteerfassung
Sensor = 0 'Initialisiert die Variablen Sensor, Grad
Grad = 0
Sensor = Getadc(2) 'Der AD Wert wird am Pin C2 abgelesen und in die Veriable "Sensor" geschrieben
Grad = Sensor * 360
Grad = Grad / 1024
Grad = Grad * 100
Grad = Fix(grad)
Grad = Grad / 10
Grad = Round(grad)
Grad = Grad / 10
Print "Sensor (dezimal) : " ; Sensor
Print "Grad: " ; Grad
'Hierhin kommt die Anzeige der Ausgesprochenen Windrichtung (NOSW)
If Grad = 337.5 To 360 Then ' Grad = 0 To 22.5 Then
Print "Norden"
Else
If Grad = 22.6 To 67.5 Then
Print "Nord/Ost"
Else
If Grad = 67.6 To 112.4 Then
Print "Osten"
Else
If Grad = 112.5 To 157.4 Then
Print "Sued/Ost"
Else
If Grad = 157.5 To 202.5 Then
Print "Sueden"
Else
If Grad = 202.6 To 247.5 Then
Print "Sued/West"
Else
If Grad = 247.6 To 292.4 Then
Print "Westen"
Else
If Grad = 292.5 To 337.4 Then
Print "Nord/West"
Else
End If
End If
End If
End If
End If
End If
End If
End If
___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
___lcdno = 1
Locate 2 , 8
Lcd " "
Loop 'Ende der Abfrageschleife, Sprung zum Anfang der Schleife
End 'Programmende
Viele Grüße Felix
ich hab mal wieder Probleme mit meinem Basic Quellcode.... der will mal wieder nicht so wie ich will...
Also ich bin immern och bei meinem Projekt, mit einem Sensor eine Winkelmesseinrichtung mithilfe des MLX 90316 zu bauen.
So, nun möchte ich gerne, dass mir der Controller nicht nur eine Gradanzeige ausgibt, sondern auchdie ausgesprochenen Windrichtungen, so wie norden, süden, etc.
das heißt ich muss ja bestimmt bereiche als norden, als süden, usw. deklarieren. ich habe mal versucht das mit deinem riesigen if...else gebilde zu realisieren, aber funktionieren tut es nicht.
außerdem hab ich dann ein problem mit Norden. Da geht es von 337.5 bis 360 und dann von 0 bis 22.5 grad. wie soll ich ihm denn die 2 sachen in eine bedingung packen? oder muss ich die wieder in 2 aufteilen....
wäre schön wenn ihr mir da helfen könntet
hier noch schnell meinen quellcode
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
Do ' Beginnt die Abfrageschleife zur Werteerfassung
Sensor = 0 'Initialisiert die Variablen Sensor, Grad
Grad = 0
Sensor = Getadc(2) 'Der AD Wert wird am Pin C2 abgelesen und in die Veriable "Sensor" geschrieben
Grad = Sensor * 360
Grad = Grad / 1024
Grad = Grad * 100
Grad = Fix(grad)
Grad = Grad / 10
Grad = Round(grad)
Grad = Grad / 10
Print "Sensor (dezimal) : " ; Sensor
Print "Grad: " ; Grad
'Hierhin kommt die Anzeige der Ausgesprochenen Windrichtung (NOSW)
If Grad = 337.5 To 360 Then ' Grad = 0 To 22.5 Then
Print "Norden"
Else
If Grad = 22.6 To 67.5 Then
Print "Nord/Ost"
Else
If Grad = 67.6 To 112.4 Then
Print "Osten"
Else
If Grad = 112.5 To 157.4 Then
Print "Sued/Ost"
Else
If Grad = 157.5 To 202.5 Then
Print "Sueden"
Else
If Grad = 202.6 To 247.5 Then
Print "Sued/West"
Else
If Grad = 247.6 To 292.4 Then
Print "Westen"
Else
If Grad = 292.5 To 337.4 Then
Print "Nord/West"
Else
End If
End If
End If
End If
End If
End If
End If
End If
___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
___lcdno = 1
Locate 2 , 8
Lcd " "
Loop 'Ende der Abfrageschleife, Sprung zum Anfang der Schleife
End 'Programmende
Viele Grüße Felix