Tobias schrieb:
> Ach man sorry für die fehler bin noch anfänger in sachen
> mikrocontroller.
Gerade dann solltest du dir eine gewisse äussere Form des Quellcodes
aneignen. Dazu géhören zb Einrückungen, die dir zeigen von wo bis wo
eine Schleife geht. Auch hilft eine Strukturierung mit einzelnen
Leerzeilen optische Funktionsblöcke im Code zu erhalten und so das Auge
zu führen.
> funktionierts auch. Aber es sind bestimmt noch einige fehler im
> quellcode drin oder?
Ja. Zb. Wie kannst du im ersten Schleifendurchlauf ein Messergebnis
auswerten, das du noch gar nicht hast, weil es erst nach dem Auswerten
eingelesen wird?
1 | $regfile = "m8def.dat"
|
2 | $crystal = 3686400
|
3 |
|
4 | Config Portc.0 -1 = Output
|
5 | Const Adc_multi = 0.0048828125
|
6 | CONFIG ADC = SINGLE, PRESCALER = AUTO, REFERENCE = AVCC
|
7 |
|
8 | DIM messergebnis AS WORD
|
9 | DIM volt AS SINGLE
|
10 |
|
11 | START ADC
|
12 |
|
13 | Do
|
14 | Messergebnis = Getadc(5)
|
15 | Volt = Messergebnis * Adc_multi
|
16 |
|
17 | If Volt >= 2 Then
|
18 | Portc.1 = 0
|
19 | Portc.0 = 1
|
20 | Else
|
21 | Portc.0 = 0
|
22 | Portc.1 = 1
|
23 | End If
|
24 |
|
25 | Waitms 100
|
26 | Loop
|
Dann könnte man noch darüber diskutieren, ob es wirklich notwendig ist,
den µC eine für ihn komplexe Floating Point Operation durchzuführen.
Ob du jetzt Volt mit 2.0 oder Messergebnis (der Wert vom ADC) mit 409
als Grenzwert vergleichst, kommt aufs selbe raus. Nur macht der µC
letzteres mindestens 50 mal schneller, weil nichts rumgerechnet werden
muss :-)
> Hab den Lichtsensor von dem myavr board lpt hab ihn jetzt mit einem
> multimeter gemessen und es zeigte -2,.. volt
Sicher, dass du das Voltmeter nicht einfach nur verkehrt herum
angeklemmt hast? Ich bin mir fast ziemlich sicher, dass auf dem MyAvr
Board mit Ausnahme des RS232 Teiles nirgends negative Spannungen
vorkommen.