Hi, stimmt ich hätte ja auch mal den kompletten Code nehmen können.
Ist alles der Reihe nach aufgebaut, ohne Interrupts.
Hier noch einmal das, was vor meiner Hauptschleife steht:
Ahh klasse habs nun gerafft wie das mit der Box geht...immerhin schonmal das ^^Code:#define F_CPU 8000000UL //Geschwindigkeit des MCs 10MHz da 3.3V Versorgungsspannung #include <util/delay.h> //Damit Verzögerungszeiten angegeben werden können #include <avr/io.h> //Für Ein- und Ausgänge #include <avr/pgmspace.h> #include <inttypes.h> #include <math.h> ////////////////////////////////////////////////////////////////////////// //ADC Messung mit Dummyreadout uint16_t readADC(uint8_t channel) { //Variablendefinition ohne Vorzeichen uint8_t i; uint16_t result = 0; // Den ADC aktivieren, kein Prescaling ADCSRA = (1<<ADEN); //Kanal des Multiplexers wählen, AVcc als Referenzspannung einstellen ADMUX = channel | (1<<REFS0); // Dummyreadout ADCSRA |= (1<<ADSC); while(ADCSRA & (1<<ADSC)); //Spannung auslesen und Durchschnittswert ausrechnen. for(i=0; i<3; i++) { //Einmalige Wandlung ADCSRA |= (1<<ADSC); //Auf Ergebnis warten while(ADCSRA & (1<<ADSC)); //Ergebnis in Variable "result" speichern result += ADCW; } // ADC wieder deaktivieren ADCSRA &= ~(1<<ADEN); result /= 3; return result; }







Zitieren

Lesezeichen