PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC mit ATTiny26



Sauerbruch
17.04.2010, 19:23
Hallo zusammen,

ich scheitere gerade daran, den ADC eines Tiny26 zum Laufen zu bekommen. Über einen Trimmer geht eine einstellbare Spannung an ADC2. Mein erster Code sah so aus:



$regfile = "attiny26.dat"
$crystal = 1000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.6 , Db5 = Porta.7 , Db6 = Porta.0 , Db7 = Porta.1 , E = Porta.5 , Rs = Porta.4
Initlcd

Cursor Off

Config Adc = Free , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Z As Word


Do

Z = Getadc(2)
Cls
Lcd Z
Waitms 200

Loop


Z blieb leider immer 0. Ich habe mir dann mal die Register ADMUX und ADCSR auf dem LCD anzeigen lassen. ADCSR ist &B10100011, sieht also ganz gut aus. ADMUX ist &B01000010, also AREF als Referenzspannung. Verstehe ich zwar nicht ganz, ich habe diesen Anschluss aber auch an +5V angeschlossen.

Als nächstes habe ich es dann mal so versucht:




$regfile = "attiny26.dat"
$crystal = 1000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.6 , Db5 = Porta.7 , Db6 = Porta.0 , Db7 = Porta.1 , E = Porta.5 , Rs = Porta.4
Initlcd

Cursor Off

ADMUX = &B00000010
ADCSR = &B11100111

Dim Z As Word


Do

Z = ADCL
Cls
Lcd Z
Waitms 200

Loop




...und wieder nur "0"...

Hat jemand einen Tip für mich, wie ich diesen ADC ans Laufen kriegen kann?? Die Spannung am ADC2-Eingang ist übrigens auch o.k. und lässt sich mit dem Trimmer auf jeden beliebigen Wert einstellen...

Rone
17.04.2010, 22:40
Hallo!

Wenn Du "getadc" verwendest musst Du bei
Config ADC = Single schreiben.

MfG
Rone

Sauerbruch
19.04.2010, 09:56
Wenn Du "getadc" verwendest musst Du bei
Config ADC = Single schreiben.

Das muss man meiner Erfahrung nach nicht so eng sehen - bei mir hat die Kombination von "free"-Modus und Getadc in anderen Projekten schon oft funktioniert.

Aber das Problem ist inzwischen gelöst - und zwar so (wen´s interessiert):

Weil mir nichts anderes mehr als kontrolliertes Raten übrig blieb, habe ich (unter anderem) einfach mal das "reference = ..." weggelassen - und schon läuft´s =P~ . Und zwar sowohl im Single- als auch im Free-Modus. Die ADCSR-Inhalte sind &B10010011 (single) bzw. &B11110011 (free).

Wer auch immer das verstehen mag... [-(