AVR A/D example.c
Zo stránky SensorWiki
- include <avr/io.h>
/* Analog/Digital Wandler initialisieren */ void adc_init(void);
int main(void)
{
unsigned int buffer;
/* A/D - Wandler initialisieren */ adc_init();
while (1) {
/* Wandlung starten */ ADCSRA |= (1<<ADSC);
/* Warten bis die AD-Wandlung abgeschloßen ist */ while ( !(ADCSRA & (1<<ADIF)) ) ;
/* AD-Wert auslesen */ buffer = (ADCH<<8) | ADCL;
}
}
/* Analog/Digital Wandler initialisieren */ void adc_init(void) {
/* externe Referenzspannung und AD-Wandlerkanal 0 ( ADC0 ) auswählen */ ADMUX = 0;
/* AD-Wandler einschalten und Prescaler = 64 einstellen ( enstpricht 115 khz Wandlertakt ) */ ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1);
/* Spezialfunktionen ausschalten */ SFIOR = 0; }