ATmega32 ADC Single Conversion

C Beispiel zum Auslesen des ADC auf dem ATmega32 mit Single Conversions.

electroicsplanet home electroicsplanet pagetree Sourcecode Examples electroicsplanet pagetree ATmega32 electroicsplanet pagetree ADC electroicsplanet pagetree Single Conversion

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.

Buchtippp:


AVR Mikrocontroller
Programmierung in C

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

ATMega32 ADC Single Conversion Mode

Gelb: ADC Input
Blau: Komparator Ausgang BP0