zu dem ADC:
zuerst musst du ihn initialisieren, z.B. so:
Code:
Config Adc = Single , Prescaler = 64 . Reference = Avcc
Start Adc
das "= single" bedeutet, dass er nur bei 'Abruf' den Wert eines bestimmten ADC-Eingangs umwandelt. (der andere modus lässt ihn das dauernd machen)
prescaler ist der vorteiler vom Clock-Takt, der ADC braucht eine Wandlerfrequenz die in einem bestimmten Bereich liegt.
Laut dem Datenblatt liegt die beim ATMega32 bei 50-200kHz für maximale Auflösung (10 Bit).
schau also, mit welchem (ganzzahligen) Teiler deines Clock-Taktes du möglichst nah unter 200kHz kommst.
die Reference (Referenzspannung, also Vergleichsspannung) ist hier "Avcc", also die Betriebsspannung (meist 5V)
Referenz kann aber auch Vref und anderes sein, ich kenn mich da nicht mehr so gut aus (auf C umgestiegen)
wenn am ADC-Pin eine der Referenzspannung gleiche Spannung anliegt, wird der höchste Wert ausgegeben ( 2^8 bzw hier 2^10). bei einer der Masse (GND) gleichen spannung wird 0 ausgegeben. bei negativen Spannungen (gegenüber GND) wird glaub entweder 0 ausgegeben oder der ADC geht kaputt.
mit "start ADC" wird der ADC zur Benutzung freigegeben
abfragen kannst du einen ADC-Pin "x" mit
Code:
Variable = getadc(x)
also z.B. den ADC3 mit
Code:
Variable = getadc(3)
========================================
Zu den Fusebits:
a: selbst wenn die den Takt betreffenden Fusebits falsch eingestellt sind, kannst du sie per ISP immer ändern!!! also keine angst mit diesen Fusebits!
b: solte so passen, probier es einfach aus!
Lesezeichen