Hallo Leute,
wollte mal versuchen, mit meinem ADC ein eher höher frequentes analoges Signal auszulesen, indem ich den ADC im Free-Run Modus laufen lasse und nur die höherwertigen 8 Bits auslese, allerdings funktioniert das nicht...
Hier mal mein Code:
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$framesize = 80
$hwstack = 80
$swstack = 80
$baud = 19200
Admux = &B01100000
Adcsra = &B11000110
config pina.0 = input
porta.0 = 0
dim wertl as byte
dim werth as byte
enable interrupts
do
wertl = adcl
werth = adch
print wertl
print werth
loop
end
Sowohl im Simulator, als auch in Echt funktioniert das ganze nicht
Der eine Wert (entweder ADCH oder ADCL, weiß ich grad nicht) geht immer bis 256 und fängt dann wieder bei 0 an, das ganze 4 mal, also 4*256=1023.
Der andere Wert zählt nur von 0 bis 3.
Was genau mache ich den falsch? Hab die einzelnen Bits nach dem Datenblatt des Mega32 gesetzt. Aber irgendwo hab ich anscheinend einen Fehler drin?!
Der Prescaler ist momentan auf 64, glaub ich (aber das sollte jetzt nicht so wichtig sein). Die Bits für Interrupt hab ich glaub ich beide auf 0 oder 1 gesetzt, da ich keinen Interrupt benötige.
Wäre nett, wenn jemand mal den Code im Simulator probieren würde und mir sagen könnte, was ich falsch gemacht habe?!
Vielen Dank, Gruß
Chris
Lesezeichen