Forum: Compiler & IDEs ADC Problem mit ATtiny45


von Patrick B. (p51d)


Angehängte Dateien:

Lesenswert?

Hallo

nachdem ich jetzt etwa schon 3 Tage mit Fehlersuchen (Datenblat 
einbezogen und AVR_GCC Tutorial) verbracht habe, und den AD-Wandler doch 
noch nicht läuft hoffe ich auf eure Hilfe:

zuerst zur Hardware:
Ich habe ein ganz normales Poti am ADC3(PB3) welches ich auswerten 
möchte.
Der verwendetet MCU ist ein ATtiny45.

Jetzt zum Problem: ich habe zum testen eine Led, die mir ab einem 
gewissen Pegel nicht mehr leuchten sollte, aber dies tut sie immer, egal 
ob der AD-Wandler an 0 oder 5V liegt.
Den Interrupt führ der Wandler aus, das habe ich auch mit der Led 
getestet, aber irgend etwas läuft wahrscheindlich bei der Auswertung und 
auslesen der ADCL und ADCH Register schief.

im Anhang ist noch der Code

MFG
P51D


ich hoffe wirklich, dass mir jemand helfen kann, denn ich bin am 
verzweifeln

von Falk B. (falk)


Lesenswert?

@ Patrick B. (p51d)

>im Anhang ist noch der Code

Den AD-Wert kann man direkt als 16 Bit Zahl auslesen, mit ADCW.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#ADC_.28Analog_Digital_Converter.29

MfG
Falk

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wenn du für die verschiedenen Bitwerte mal die entsprechenden Namen
benutzt (mit _BV()), dann kann man das besser lesen, und eventuell
findest du auf diese Weise auch gleich deinen Fehler.

von SF (Gast)


Lesenswert?

Dein BitClr Macro wird wohl nicht funktionieren. Anstelle von
1
BitClr(Register, Bit) Register = (Register & (0X01 << Bit))

sollte da
1
BitClr(Register, Bit) Register = (Register & ~(0X01 << Bit))

stehen. Ob diese Korrektur aber dein Problem behebt kann ich nicht 
sagen...

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
Noch kein Account? Hier anmelden.