Hallo, ich hab wahrscheinlich wieder mal irgend eine Banalität
vergessen, aber ich komme gerade nicht drauf, wo mein Fehler liegt. Ich
will mehrere ADC-Kanäle messen und verwende erstmal folgendes einfache
Mini-Testprogramm:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 1200
'
Ddrc = &B00000000
Dim Ad_kanal(6) As Word
Dim I As Byte
Dim W As Word
Do
'############### 6 AD ports messen
For I = 1 To 6
Admux = &B01000000 + I
Admux = Admux - 1
Adcsra = &B11000010
Do : Loop Until Adcsra.6 = 0
Ad_kanal(i) = Adcd
Next I
For I = 1 To 6
Print "AD" ; I ; "=" ; Ad_kanal(i) ; Chr(9) ;
Next I
Print
Print
Loop
End
Wenn ich dieses Programm laufen lasse und an den Mega8 auf dem
Steckbrett nur 4 Beine anschließe (Betriebsspannung, ADC1 und Tx, damit
man was lesen kann) funktioniert das ganz normal, ich erhalte 0 wenn ich
den ADC auf Masse lege und 1023 wenn ich ihn auf 5V lege. Wenn ich den
zweiten ADC mit dem ersten zusammen schalte, funktioniert das genauso
ABER: wenn die beiden verschiedene Spannungen haben (einer auf Masse,
einer auf 5V) dann ergeben sich "Mischwerte" (AD1=312 AD2=956 usw.) -
Warum? Ist das bei Euch auch so? Hab ich bei der ADC-Initialisierung
oder Abfrage etwas vergessen?
Ist das Bascom? Ich weiß nicht wie der Compiler das umsetzt, aber meiner Erfahrung nach muss nach dem Umschalten des MUX eine Pause von min. 40µs 'rein, sonst kommt Mist 'raus. Probier's einfach mal mit Pausen zwischen den Kanälen.
Ihr habt recht, die Pause bringt's! @Sonic: Ja, das ist Bascom. In diesem Fall - klein, (zu) schnell und simpel, oder? :-) Natürlich habe ich mich gefragt, warum mir das bisher nie aufgefallen ist. Es lag einfach daran, daß ich bisher den internen Oszillator mit 1MHz statt mit 8Mhz habe laufen lassen. Bei 1Mhz funktioniert es auch so wie oben stehend. Naja - kaum macht man alles richtig - schon funktioniert's.. :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.