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
Lesezeichen