Hi Leute,
Ich würde gerne die Odometrie auslesen können.
Also er soll wenn sich das Zahnrad einmal Schwarz und weis angezeigt hat eine 1 per SerWrite ausgeben. Das heißt je schneller ich das Rad drehe umso schneller erscheinen die Einsen auf dem Bildschirm.

Ich kann aber auch nicht einfach sagen wenn Odometrie <500 oder >500 dann tuhe ____, weil ich gerne eine Allgemeine Funktion darüber schreiben möchte

Achja und kann mir einer erkären wie ich ein Programmfeld im chat hinkriege? Damit ich nicht immer dieses Riesen Programm im Forum Posten muss.

Vielen Dank im Vorraus

Code:
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//-----------------------------------------------------------------------
//---- Odomietrie Auslesen ------- 23.05.07 ------ Jannik Mewes ---------
//---- Auslesen von Odomitrie Daten und Senden an eine Serielle ---------
//---- Schnittstelle ----------------------------------------------------
//-----------------------------------------------------------------------

#include "asuro.h"

//-----------------------------------------------------------------------
//--- BCDaus ------- 23.5.07 --- Jannik Mewes --------------------------- 
//--- Ausgabe einer integer Zahl in Ascii über die serielle -------------
//--- Schnittstelle -----------------------------------------------------      
//-----------------------------------------------------------------------
void BCDaus(unsigned int data)				// Anfang der Funktion
{

	unsigned int (Zahl1);						// Definiere Variable Zahl1
	unsigned int (Zahl2);						// Definiere Variable Zahl2
	unsigned int (Zahl3);						// Definiere Variable Zahl3
	unsigned int (Zahl4);						// Definiere Variable Zahl4

			Zahl1 = data ;						// Zahl1 hat den gleichen Wert wie data 
			Zahl1 = Zahl1 / 1000;				// Wert von Zahl1 geteilt durch 1000
			data = data - Zahl1 * 1000;			// Wert von data minus Wert on Zahl1 mal 1000
		    Zahl1 = Zahl1 + 48;					// Wert von Zahl1 plus 48
			SerWrite(&Zahl1,1);					// Schreibe wert von Zahl1 an IR Sender
			
			Zahl2 = data;						// Zahl2 hat den gleichen Wert wie data
			Zahl2 = Zahl2 / 100;				// Wert von Zahl2 geteilt durch 100
			data = data - Zahl2 * 100;			// Wert von data minus Wert on Zahl2 mal 100
			Zahl2 = Zahl2 + 48;					// Wert von Zahl2 plus 48
			SerWrite(&Zahl2,1);					// Schreibe wert von Zahl2 an IR Sender
			
			Zahl3 = data;						// Zahl3 hat den gleichen Wert wie data
			Zahl3 = Zahl3 / 10;					// Wert von Zahl3 geteilt durch 10
			data = data - Zahl3 * 10;			// Wert von data minus Wert on Zahl3 mal 10
			Zahl3 = Zahl3 + 48;					// Wert von Zahl3 plus 48
			SerWrite(&Zahl3,1);					// Schreibe wert von Zahl3 an IR Sender
			
			Zahl4 = data;						// Zahl4 hat den gleichen Wert wie data
			Zahl4 = Zahl4 / 1;					// Wert von Zahl4 geteilt durch 1
			Zahl4 = Zahl4 + 48;					// Wert von Zahl4 plus 48
			SerWrite(&Zahl4,1);					// Schreibe wert von Zahl4 an IR Sender

}

//------------------------------------------------------------------------
// --------------- Hauptprogramm -----------------------------------------
//------------------------------------------------------------------------

int main(void)
{
	Init();							// Initialisierung
	 
	 unsigned int odo[2];			// Speicher bereitstellen
	 StatusLED(GREEN);				// StatusLED auf Grün schalten
	 BackLED(ON,ON);
	 
	while(1)						// Enslosschleife
			{				
			 OdometrieData(odo);	// Lese Odometrie aus
			 BCDaus (odo[0]);		// Lade Funktion BCDaus un übergebe den Wert i
			 SerWrite(" ",1);		// Schreibe ein Leerzeichen
			 BCDaus (odo[1]);		// Lade Funktion BCDaus un übergebe den Wert i
			 SerWrite(";",1);		// Schreibe ein Leerzeichen
			}
return 0;							// Zurück zu 0