Hikh'var
28.09.2011, 17:16
Hallo,
ich habe meinen Asuro zusammen gelötet. War das erste Mal das ich was gelötet habe. Um den Asuro ein wenig zu "debuggen" habe ich mir ein Programm geschrieben. Das Problem ist nun, dass mir mein Programm "sagt" das der Linke Liniensensor (T10) immer 0-3 ist, T9 aber zwischen 800 und 30 schwankt je nach Beleuchtung. Nun habe ich schon die Widerstände kontrolliert und auch die Pins 25 und 26 nachgemessen. Da kommen bei beiden ähnliche Spannungswerte raus. Ich messe doch von GND(Pin 8) "zu" Pin 25/26 oder?
Die Frage ist nun was läuft schief? Programm falsch?, IC Kaputt? Vermessen?
Hier noch mein Programm, falls dieses Falsch ist:
Ich benutze die Original Asuro "Bibliothek".
Vielen Dank im Vorraus.
Higgi
#include "asuro.h"
char* to_Char(int number, int expected_size)
{
char buffer[expected_size];
int i;
for(i=expected_size-1;i>=0;i--)
{
buffer[i] = (number%10)+48;
number = number / 10;
}
return buffer;
}
void print_Data_To_IR(char* data)
{
SerWrite(to_Char(data[0],4),4);
SerWrite(";",1);
SerWrite(to_Char(data[1],4),4);
SerWrite("\r\n",4);
}
void debug_Odo(void)
{
int data[2];
OdometrieData(data);
print_Data_To_IR(data);
}
void debug_Line(void)
{
int data[2];
FrontLED(ON);
LineData(data);
print_Data_To_IR(data);
}
void debug_Switch(void)
{
unsigned char pressed_switch;
pressed_switch = PollSwitch();
SerWrite(to_Char(pressed_switch,2),2);
SerWrite(";",1);
}
int main(void)
{
Init();
//FrontLED(ON);
while(1){
//debug_Switch();
debug_Line();
int i;
for(i = 0;i<1000;i++)
{
Sleep(255);
}
}
return 0;
}
ich habe meinen Asuro zusammen gelötet. War das erste Mal das ich was gelötet habe. Um den Asuro ein wenig zu "debuggen" habe ich mir ein Programm geschrieben. Das Problem ist nun, dass mir mein Programm "sagt" das der Linke Liniensensor (T10) immer 0-3 ist, T9 aber zwischen 800 und 30 schwankt je nach Beleuchtung. Nun habe ich schon die Widerstände kontrolliert und auch die Pins 25 und 26 nachgemessen. Da kommen bei beiden ähnliche Spannungswerte raus. Ich messe doch von GND(Pin 8) "zu" Pin 25/26 oder?
Die Frage ist nun was läuft schief? Programm falsch?, IC Kaputt? Vermessen?
Hier noch mein Programm, falls dieses Falsch ist:
Ich benutze die Original Asuro "Bibliothek".
Vielen Dank im Vorraus.
Higgi
#include "asuro.h"
char* to_Char(int number, int expected_size)
{
char buffer[expected_size];
int i;
for(i=expected_size-1;i>=0;i--)
{
buffer[i] = (number%10)+48;
number = number / 10;
}
return buffer;
}
void print_Data_To_IR(char* data)
{
SerWrite(to_Char(data[0],4),4);
SerWrite(";",1);
SerWrite(to_Char(data[1],4),4);
SerWrite("\r\n",4);
}
void debug_Odo(void)
{
int data[2];
OdometrieData(data);
print_Data_To_IR(data);
}
void debug_Line(void)
{
int data[2];
FrontLED(ON);
LineData(data);
print_Data_To_IR(data);
}
void debug_Switch(void)
{
unsigned char pressed_switch;
pressed_switch = PollSwitch();
SerWrite(to_Char(pressed_switch,2),2);
SerWrite(";",1);
}
int main(void)
{
Init();
//FrontLED(ON);
while(1){
//debug_Switch();
debug_Line();
int i;
for(i = 0;i<1000;i++)
{
Sleep(255);
}
}
return 0;
}