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:
Sowohl im Simulator, als auch in Echt funktioniert das ganze nichtCode:$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
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







Zitieren

Lesezeichen