Hallo ich wollte mich mal mit AD Wandler beschäftigen und habe mir dazu ein Beispielprogramm aus dem Roboternetz Wissen gezogen. Nun möchte ich es auf meinem ARV Spielen. Leider habe ich nur einen ATMEGA 8 und das Programm ist für den ATMEGA 16 Programmiert.
Wie kann man das Programm abändern, so dass es auch auf meinem ATMEGA 8 läuft??

Vielen DANK!!!!!

Code:
#include <avr/io.h>
#include <inttypes.h>

uint16_t readADC(uint8_t channel) {
	uint8_t i;
	uint16_t result = 0;
	
	// Den ADC aktivieren und Teilungsfaktor auf 64 stellen
	ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);

	// Kanal des Multiplexers waehlen
	ADMUX = channel;
	// Interne Referenzspannung verwenden (also 2,56 V)
	ADMUX |= (1<<REFS1) | (1<<REFS0);
	
	// Den ADC initialisieren und einen sog. Dummyreadout machen
	ADCSRA |= (1<<ADSC);
	while(ADCSRA & (1<<ADSC));
	
	// Jetzt 3x die analoge Spannung and Kanal channel auslesen
	// und dann Durchschnittswert ausrechnen.
	for(i=0; i<3; i++) {
		// Eine Wandlung
		ADCSRA |= (1<<ADSC);
		// Auf Ergebnis warten...
		while(ADCSRA & (1<<ADSC));
		
		result += ADCW;
	}
	
	// ADC wieder deaktivieren
	ADCSRA &= ~(1<<ADEN);
	
	result /= 3;
	
	return result;
}

int main(void) {
	uint16_t result = readADC(0);	//Auslesen der analogen Spannungen an Pin 0,
									// also ADC0. In result steht das Ergebnis. 

	result = result + 1;





	return 0;
}
+ Code-Tag (PicNick)