Hallo Es gibt ja schon Zahlreiche ADC-Beiträge für den Tiny13. Dort konnte ich aber meine Lösung nicht finden. Problem ist, dass der ADC immer den gleichen in etwa Wert ausliest, egal welche Spannung anliegt. Ich sehe leider den Fehler nicht, könnt ihr mir helfen? Danke Michael
du setzt val=0; also isses solange 0 bis du was anderes rein schreibst ...
Nein, val wird immer um eins erhöht. Bei Geraden ist der ADC Wert auf der Weisen LED, bei ungeraden ist er Null. Das habe ich nur gemacht, damit ich weiß, dass der ADC nicht hängt, oder dort in einer Endlosschleife steckt. Schaltung: An ADC1 hängt die Spannungsquelle, an OC0A die weiße, an OC0B die gelbe LED.
Michael H. schrieb:
> Schaltung: An ADC1 hängt die Spannungsquelle
edit: nix
Okay, unklar ausgedrückt: Es hängt die Spannungsquelle die gemessen werden soll.. (über einen Spannunsteiler, selbstredent!)
Jetzt funktioniert's. Vielleicht liegt es daran, dass ich nur den 8 bit Mode verwenden wollte. Der neue Code: void adc_init(){ ADMUX=(0<<REFS0)|(1<<MUX0); ADCSRA=(1<<ADEN)+(1<<ADSC)+(0<<ADPS2)+(0<<ADPS1)+(0<<ADPS0); } uint_fast16_t adc_shoot(){ ADCSRA|=(1<<ADSC); while(!(ADCSRA &&(1<<ADSC))); unsigned char read_first; read_first=ADCL; return (ADCH<<8)+read_first; } Hoffe, das hilft wenn jemand das gleiche Problem hat... Michael
Kann es sein, dass du nur 8 bit auslesen wolltest? Wenn ich mich recht erinnere muss man auch im "8-bit modus" immer 16 bit lesen, ob man sie nun verwendet oder nicht. Vielleicht wars ja sogar das hier... Felix
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.