ATmega32 ADC Single Conversion
C Beispiel zum Auslesen des ADC auf dem ATmega32 mit Single Conversions.
Beschreibung Der PA4 (ADC4) ist der analoge Eingang. Der ADC des ATmega32 löst endlos Single Conversions aus. Er vergleicht die Eingangsspannung mit 2.5V (halbe Referenzspannung Vcc). Während der ADC Wandlung wartet der Mikrocontroller, bis der ADC Wert zur Verfügung steht. Der Eingelesene Wert wird mit 2.5V verglichen (Halbe Betriebsspannung). Je nach Ausgang des Vergleichs wird PB0 gesetzt. |
Please visit: the four |
C Sourcecode
#include <avr/io.h>
int main(void)
{
DDRB = 0x01; // Setup PB0 as output
ADMUX |= (1<<REFS0)|(1<<MUX2); // Set Reference to AVCC and input to ADC4
ADCSRA |= (1<<ADEN)|(1<<ADPS2); // Enable ADC, set prescaler to 16
// Fadc=Fcpu/prescaler=1000000/16=62.5kHz
// Fadc should be between 50kHz and 200kHz
for(;;) // Endless loop;
{
ADCSRA |= (1<<ADSC); // Start a conversion
while(ADCSRA & (1<<ADSC)); // What until the bit is reset by the
// CPU after the conversion is finished
if(ADC>=512) // Compare the conversionresult with 512
PORTB |= 0x01; // If larger, set PB0
else
PORTB &= ~0x01; // If smaller, reset PB0
} // main() will never be left
return 0; // This line will never be executed
}
Download lauffähiges C-File mit ASCII-Schema: Downloadlink
Signalplot
Gelb: ADC Input
|