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







Zitieren

Lesezeichen