Ich stelle mal mein Datenlogger Programm rein. Dann könnt Ihr bei Bedarf etwas experimentieren.

Grüße, Hans.

Code:
//* -------- Programm zum Loggen der Odometriedaten ----*/
/* 	Vorgehenweise:
	Dem Asuro etwas Auslauf gönnen, bis er die Daten gesammelt hat.
	Dann mittels Taste 1 drücken und Hyperterminal die Daten in z.B. "Capture.txt" speichern
	und diese Daten dann in Excel importieren. Excell interpretiert das Trennzeichen ";" 
	als Feldende. Danach die Graphik zeichnen lassen.
	Ein Wert größer iMax = 50 führt sehr schnell dazu, dass der Ram-Speicher des Atmel nicht
	mehr ausreicht und mindestens wirres Zeug ausgegeben wird.
	Das Programm ist eigentlich ein Abfallprodukt eines größeren Proggies, 
	also bitte nicht am Programmierstil stören.
*/
#include "asuro.h" 

int main(void)
{
	int iMax = 50;
	long Zeitmarke[iMax];	// Arry für laufende Zeit
	unsigned int OdoLinks [iMax];
	unsigned int OdoRechts [iMax];
	int Zeiger = 0; 
	unsigned int OdoDat[2];				// Ododaten für linke und rechte Scheibe

	unsigned int long tmpZeit, tmpRegelZeit;
	unsigned int Ta;					// Intervall für Logger in Millisekunden
	Init();

 
	Ta = 1;	//20L;		// Tickzeit in msec
	MotorDir(FWD,FWD);

	tmpRegelZeit = Gettime();
	
	MotorSpeed(200,200);
	Msleep(500);	// warte, bis Motoren laufen
	while (Zeiger < iMax) 		
	{
		tmpZeit = Gettime();
		if  (tmpZeit >= (tmpRegelZeit + (unsigned int long)Ta)) 	//dann ist Tickzeit verstrichen    ************!!!!!
		{
			OdometrieData(OdoDat);		// Odo-Daten lesen
			if (Zeiger < iMax)
			{
				
				// Daten mit loggen
				Zeitmarke[Zeiger] = Gettime();
				OdoLinks[Zeiger]= OdoDat[0];
				OdoRechts[Zeiger]= OdoDat[1];
				Zeiger++;					
			}
			tmpRegelZeit = tmpZeit;
			
		}
		
	}


	MotorSpeed(0,0);		// alle Maschinen stop!
	SerWrite("\n\r ==== Daten gesammelt! ====",29);
	int i;
	char taste;
	SerWrite("\n\r",2); PrintInt(Zeiger--); SerWrite(" Datensaetze gesammelt.",23);
	SerWrite("\n\r Zum Schreiben Taste 1 druecken",33);
	do
		{
			taste = PollSwitch(); taste = PollSwitch();taste = PollSwitch();
		}
	while (taste != 1);

	
	SerWrite("\n\r Schreibe Daten..... ",23);
	SerWrite("\n\r lfd Zeit, OdoLinks, OdoRechts",32);
	SerWrite("\n\r =============================",32);
	SerWrite("\n\r",2);
	for(i = 0; i < Zeiger; i++)
	{
		PrintInt(i); SerWrite("; ",2);					// die ";" helfen Excel die Daten zu importieren
		PrintInt((int)Zeitmarke[i]); SerWrite("; ",2);
		PrintInt(OdoLinks[i]); SerWrite("; ",2);
		PrintInt(OdoRechts[i]); SerWrite("\n\r",2);
	}
	SerWrite("\n\r ... bin fertig!     ",23);

	while(1);
}