Operácie

AVR A/D example.c

Z SensorWiki

Verzia z 22:58, 30. november 2008, ktorú vytvoril Balogh (diskusia | príspevky)
#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;
}