Hallo! Meine Timerschaltung funzt soweit ganz schön. Nun muß ich natürlich noch ein bißchen Feinarbeit leisten. Also,... Mein ADWandler im Attiny 26 wandelt auf 10bit um. Dieser Wert soll in das Vergleichsregister des Timers1 geschoben werden. Das Register ist aber ein 8bit-Register. Ihr könnt Euch vorstellen, daß es dann Probleme gibt! Die Analogspannung kommt von einem Poti (linear). Sie wird auch schön im ADC gewandelt. Allerdings reagiert die Schaltung nicht "linear" auf die Poti-Einstellung. Liegt eigentlich nur an der 10 zu 8bit-Geschichte, oder? Dabei gehen Bits verloren, bzw. es wird Müll in den Timer geschrieben. Lt. Datenblatt genügt es, um den ADC auszulesen, x = ADC zu schreiben. Wird hierbei aber automatisch ein 8-bit-Wert erzeugt? Sprich zwei Bits "geschoben" o. ä.? Klärt mich mal auf! Es wäre ganz schön, wenn mein Timer proportional auf die Poti-Stellung reagiert. Je größer die Analogspannung, desto länger die Timeraktion. Gruß, Andreas
Hi Andreas, ich kenne zwar den Attiny26 nicht aber z.B. beim mega8 kann man im Register ADMUX enstellen dass nur ein 8 Bit Wert vom ADC ausgegeben wird. Dann erspart man sich die Wandlerei. Schau mal im Datenblatt, müsste eigendlich auch beim Attiny26 funzen. Gruss Gerhard
Warum zweimal? Egal, du kannst den ADC so einstellen, dass die niedrigen zwei Bit gleich verworfen werden. Siehe ADLAR im ADMUX - oder kurz RTFM.
Hi Ich habe im Moment kein Datenblatt vom ATiny26 da. Bei anderen Atmel's kannst du mit dem ADLAR-Bit in einem ADC Register einstellen ob das ADC-Ergebnis rechts- oder Linksbündig in die ADC-Ergebnis- register eingelesen werden. Normalerweise werden die unteren 8Bit in ADCL und die oberen 2 in ADCH geschrieben. Ich nehme an ,daß das bei dir so ist. Bei ADLAR=1 sind die oberen 8 Bit in ADCH. Du brauchst nur diesen Wert auszulesen und in dein Timerregister zu übernhmen. Dann sollte es gehen. MfG HG
1. Danke an alle! 2. War kein konkretes Doppelposting, sondern eine gezielte Frage für den ATtiny! Gruß, Andreas
Ach, so: Hab' ich ganz vergessen! Mit ADLAR = 1, und nur ADCH auslesen klappt'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.