Also.... ich hab nen kleines programm geschrieben, welches die batteriespannung ausliest:

Code:
void ubat_mess (void)
{
	task_ADC();
	
	uint16_t ubat_feld [MESSWERTE]; //Feld für die Anzahl der MESSWERTE
	uint16_t ubat_ges=0, u_mittel, u_korrekt;
	uint8_t i;
	
	startStopwatch1();					//Stoppuhr wird gestartet
	if(getStopwatch1() > ZEITZYKLUS)	//erreicht die Stoppuhr den Wert so wird die Messung durchgeführt
	{
		for(i=0; i<MESSWERTE; i++) 	//Schleife für definition der einzelnen feldelemente
			{
				ubat_feld[i] = adcBat;	//jedes feldelement bekommt einen wert zugewiesen 
				ubat_ges=ubat_ges+ubat_feld[i]; //die gesamtspannung wird ermittelt

				mSleep(0.26); //260us warten //******FRAGE****


			}
		
		u_mittel=ubat_ges/MESSWERTE; // der Mittelwert wird berechnet
		u_korrekt=u_mittel * 0.9815;
		//AUSGABE von Batteriespannung
		
		
		writeString_P("Batteriespannung:");
		writeInteger(u_mittel, DEC);
		writeString_P("\n");
		
		writeString_P("Batteriespannung mit Korrektur:");
		writeInteger(u_korrekt, DEC);
		writeString_P("\n");
		setStopwatch1(0);
	}
}
Meine Frage: Ist es wichtig nach jedem Beschreiben eines Feldelementes ne pause(msleep) zu machen, damit ich die neuen daten aus dem adc dataregister lese und nicht ein neues feldelement mit alten daten beschreibe?

Nächste Frage: ist es ok, wenn ich einen berechneten korrekturfaktor einfach mit dem ermmittelten wert des adc multipliziere?


Gruß patrick