Moin,
ertsmal Danke für den Code. Ich habe auch ein kleines Programm geschrieben, dass hat mir immer Werte um die 29000 rausgegeben.
Die Werte haben sich zwar verändert, wenn man die Sensoren betätigt hat aber damit konnte man nicht viel anfangen. In den Code, den Du geschickt hast, habe ich noch eine zweite Schleife eingebaut. ich bekomme damit immer den Wert 1023, egal was ich mache mit den Sensoren. Ich bin immer noch der Meinung, dass meine rechte Reflexlichtschranke einen weg hat. Ich muss die maldurch messen.
Anbei der Code für das Programm.
mfG Sebastian
Code:
/***************************************************************************
* *
* Dieses Programm ist für den ASURO Roboter *
* *
* Odometriedaten über die Terminalprogramm auslesen *
* *
***************************************************************************/
/***************************************************************************
* *
* Mit diesem Programm sollen die Werte der Odometriesensoren ausgelesen *
* werden und über die IR-Schnittstelle an den Computer übergeben werden, *
* damit man eventuelle Fehler oder ein Nichtfunktionieren der Sensoren *
* erkennen und beheben kann. Vor dem aus lesen müssen die Räder und die *
* Encoderscheiben entfernt werden. Außerdem muss das Windows Terminal- *
* programm gestartet werden. Das Terminalprogramm zeigt abwechselnd die *
* Werte von der linken und der rechten Seite an. *
* *
***************************************************************************/
/***************************************************************************
*
* unsigned int data[2]; = Speicher für Odometriesensoren reservieren
*
* data[0] = linker Sensor (T11), data[1] = rechter Sensor (T12)
*
* Autor: Sebastian Reiff ,2005
*
****************************************************************************/
#include <stdlib.h>
#include <string.h>
#include "asuro.h"
int main(void) {
Init();
int data[2];
char buffer[10];
while(1) {
OdometrieData(data);
itoa(data[0],buffer,10);
SerWrite(buffer,strlen(buffer));
SerWrite("\n",1);
Msleep(500);
itoa(data[1],buffer,10);
SerWrite(buffer,strlen(buffer));
SerWrite("\n",1);
}
return 0;
}
Lesezeichen