Hallo liebe community,
warum bringt mir dieser Code (atmega168, Taktfrequenz: 8 MHZ):
cbi(ADCSRA,ADPS0);sbi(ADCSRA,ADPS1);sbi(ADCSRA,ADPS2);//prescalar = 64
sbi(ADCSRA,ADEN );
sei();
cbi(ADMUX,MUX0);cbi(ADMUX,MUX1);cbi(ADMUX,MUX2);cbi(ADMUX,MUX3);//Eingan
g PC0
loop_until_bit_is_clear(ADCSRA, ADSC);
while (1) {
sbi(ADCSRA, ADSC); //измеряем канал А
loop_until_bit_is_clear(ADCSRA, ADSC);
uint16_t current_level1 = ADCL; //читаем первые 8 бит
current_level1 += (ADCH<<8); //и остальные 2 бита
PORTB ^= (1<<PB0);
}
nur eine ADC Messung pro Millisekunde? sollte laut DS um 10000 mal pro
Sekunde messen können - mit meinen Einstellungen...
vielen Dank im voraus
Slava
lau--de schrieb: > nur eine ADC Messung pro Millisekunde? sollte laut DS um 10000 mal pro > Sekunde messen können also ein Faktor 10. Mit etwas gutem Willen kann man das als Faktor 8 auffassen. > - mit meinen Einstellungen... Da wage ich, das hier > Taktfrequenz: 8 MHZ in Zweifel zu ziehen. CKDIV8 Fuse noch programmiert?
hm, habe bestimmt vorher gecheckt aber war seltsamerweise gesetzt; DANKE! :)
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.