Es war die 6er Scheibe...
Hier mal der Code für das gepostete Testprogramm, nicht ganz optimal aber für den Anfang nicht schlecht...
Code:
#include "asuro.h"
#include <stdio.h>
#include <stdlib.h>
//const double raddurchmesser = 38.5; //mm
//const int odoaufloesung = 6; //Wechsel pro Umdrehung
// Variablen deklarieren; geht auch unter int main()
char odo_links[4]; // Speicher für die Odometriedaten in Ascii
char odo_rechts[4];
unsigned int Odo_Data[2]; // Speicher für die Odometriedaten in Integer
int i=0; // Schleifenzähler
int a=0;
int x=0;
int main(void)
{
Init(); // Initialisieren
// Begrüssung ;-)
SerWrite("\nROBOTERNETZ -> Test der Odometrie von ASURO\n\n",46);
MotorDir(FWD, FWD); // Beide Motoren vorwärts
MotorSpeed(100,100); // Beide Motoren mit "150" drehen
//while(1) // Endlosschleife
//{
//*** Test der Odometrie beginnt ***
i=0;
for(i=0;i<100;i++) // 100 Messwerte ermitteln
{
for (a=0;a<=10000;a++){x++;} //warten
OdometrieData(Odo_Data); // Odometrie abfragen
// Werte in Ascii wandeln
itoa(Odo_Data[0],odo_links,10);
itoa(Odo_Data[1],odo_rechts,10);
// Werte über IR schicken
SerWrite(odo_links, sizeof(odo_links));
SerWrite(", ", 2);
SerWrite(odo_rechts, sizeof(odo_rechts));
SerWrite("\n\r", 2);
}
//for (a=0;a<2000;a++){Sleep(72);} // ca. 2 Sekunden warten
//SerWrite("\n--- 100 ---\n", 12);
//} // Von Vorne
MotorSpeed(0,0); // Motoren aus
MotorDir(FREE,FREE); // Motoren auf Freilauf
return 0; //Programm beenden
}
Gruß, Sonic
Lesezeichen