ATmega32 ADC Free Running Mode
Dieses C Sourcecode Beispiel konfiguriert im ATmega32 den ADC für den Free Running Mode.
Beschreibung
Am Eingang PA0 (ADC0) ist der ADC Eingang. Der ADC des ATmega32 läuft in diesem Programm im free running mode.
Er vergleicht die Eingangsspannung mit 2.5V (halbe Referenzspannung Vcc). Nachdem eine ADC Wandlung gestartet wurde, wartet
der ATmega32, bis die ADC-Wandlung abgeschlossen ist. Die eingelesenen Werte werden mit 2.5V verglichen und der digitale
Ausgang entsprechend gesetzt. |
Please visit: the four |
C Sourcecode
#include <avr/io.h>
#define ADATE 5 // Definition is missing in
// some Versions of AVR Studio
int main(void)
{
DDRB = 0x01; // Setup PB0 as output
ADMUX |= (1<<REFS0); // Set reference to AVcc
ADCSRA |= (1<<ADEN)|(1<<ADATE)| // Enable ADC, Enable auto Triggering
(1<<ADPS2)|(1<<ADSC); // Set prescaler to 16
// Fadc=Fcpu/prescaler=1000000/16=62.5kHz
// Fadc should be between 50kHz and 200kHz
// Start first conversion
for(;;) // Endless loop;
{
while(!(ADCSRA&(1<<ADSC))); // Wait until a 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 Eingang
|