Code:
Do
Start Adc 'ADC-Wert Lesen >Anfang<
Sinus_word = Getadc(5)
Cosinus_word = Getadc(4)
Stop Adc 'ADC-Wert Lesen <Ende>
Sinus = Sinus_word 'Word in Single wandeln, wg. Umrechnungen und tan^-1 bzw atn2
If Sinus < Sinus_min Then Sinus_min = Sinus 'minimalen und
If Sinus > Sinus_max Then Sinus_max = Sinus 'maximalen Wert für Sinus festlegen
Sinus_diff = Sinus_max - Sinus_min 'Wertebereich in dem sich Sinus bewegt festlegen
Sinus = Sinus - Sinus_min 'wenn Sinus minimalen Wert erreich wird Sinus zu 0, um Mittelpunkt auf 0/0 zu setzen
Sinus = Sinus / Sinus_diff 'Prozentuale höhe der Sinuskurve ermitteln
Sinus = Sinus - 0.5 'Künstlich negativen Anteil der Kurve erzeugen, um Mittelpunkt auf 0/0 zu setzen
Cosinus = Cosinus_word 'siehe Sinus
If Cosinus < Cosinus_min Then Cosinus_min = Cosinus
If Cosinus > Cosinus_max Then Cosinus_max = Cosinus
Cosinus_diff = Cosinus_max - Cosinus_min
Cosinus = Cosinus - Cosinus_min
Cosinus = Cosinus / Cosinus_diff
Cosinus = Cosinus - 0.5
Bogen = Atn2(sinus , Cosinus) 'Bogenmaß erzeugen, siehe Index unter "Atn2"
Alpha = Rad2deg(bogen) 'Bogenmaß in Winkel Umrechnen
Alpha = Round(alpha)
If Alpha < 0 Then Alpha = 360 + Alpha 'negativen Winkel für vollen Kreis umrechnen, siehe Index unter "Atn2"
Wert = Alpha 'In Var für Sieben-Seg.-Ausgabe schreiben
Gosub Ausgeben 'In Schleife für Ausgeben Sieben-Seg.-Ausgabe springen
Loop
End
Lesezeichen