Blue72
03.07.2008, 12:51
Hallo,
ich versuche mich grade an dem ADC des ATMega8, doch irgendwie scheitert es an der Berechnung (Denkfehler?) ...
Da der höchste Wert den ich messen möchte 5V ist, muss ja die Referenzspannung ebenfalls VCC betragen, so hab ich das gelesen.
Die Frequenz beträgt 16MHz. Der Scalefaktor muss 128 sein damit ich
in dem Bereich zwischen 50kHz und 200kHz bleibe (gelesen).
Die Auflösung liegt bei 10bit.
Wenn jetzt z.B. 2,0 Volt am Eingang liegen soll ein Port auf 1 geschaltet werden.
1024bit / 5V * 2.0V = 409.6 digitaler Wert (?)
D.h. wenn ich jetzt eine Abfrage starte mit:
Config Adc = Single , Prescaler = 128
Start Adc
Dim W As Word
Do
W = Getadc(1)
If W=409 then portb=&B11111111
Else PortB=&B00000000
End if
Loop
End
Würde das so funktionieren ?
Außerdem: MUSS man einen ATMega (16MHz Typ) auch mit 16MHz betreiben oder ist das nur das max. mögliche ?
So, ich hlffe ich langweile euch nicht zu sehr mit meinen fragen ;)
Blue
ich versuche mich grade an dem ADC des ATMega8, doch irgendwie scheitert es an der Berechnung (Denkfehler?) ...
Da der höchste Wert den ich messen möchte 5V ist, muss ja die Referenzspannung ebenfalls VCC betragen, so hab ich das gelesen.
Die Frequenz beträgt 16MHz. Der Scalefaktor muss 128 sein damit ich
in dem Bereich zwischen 50kHz und 200kHz bleibe (gelesen).
Die Auflösung liegt bei 10bit.
Wenn jetzt z.B. 2,0 Volt am Eingang liegen soll ein Port auf 1 geschaltet werden.
1024bit / 5V * 2.0V = 409.6 digitaler Wert (?)
D.h. wenn ich jetzt eine Abfrage starte mit:
Config Adc = Single , Prescaler = 128
Start Adc
Dim W As Word
Do
W = Getadc(1)
If W=409 then portb=&B11111111
Else PortB=&B00000000
End if
Loop
End
Würde das so funktionieren ?
Außerdem: MUSS man einen ATMega (16MHz Typ) auch mit 16MHz betreiben oder ist das nur das max. mögliche ?
So, ich hlffe ich langweile euch nicht zu sehr mit meinen fragen ;)
Blue