listner
23.03.2008, 11:10
Hi leute,
ich habe mich nun etwas weiter vor gewagt in der Programmierung des Asuros :) und das ist dabei rausgekommen:
Es sollte eine Methode sein, um die Werte der Phototranistoren des Asuros aus zulesen, es hat soweit alles geklapt, nur habe ich ein paar kleinere Probleme
unsigned int data[2];
unsigned char s[4] = "thze";
void PrintCharR(unsigned int x)
{
unsigned char einer, zehner, huni, tausend;
x = data[1];
einer= x%10;
zehner= (x-einer)%100;
huni= (x-(zehner*10+einer))%1000;
tausend= (x-((huni*100)+(zehner*10)+einer))%10000;
s[0]=huni+'0';
s[1]=zehner+'0';
s[2]=einer+'0';
s[3]=tausend;
SerWrite(s,4);
}
void PrintCharL(unsigned int x)
{
unsigned char einer, zehner, huni, tausend;
x = data[0];
einer=x%10;
zehner=(x-einer)/10;
huni=(x-(zehner*10+einer))/100;
if((x = 1000) && (x > 1000))
tausend= 1;
else
tausend= 0;
s[0]=huni+'0';
s[1]=zehner+'0';
s[2]=einer+'0';
s[3]=tausend;
SerWrite(s,4);
}
die wären, der asuro übergibt einen nur 3stelligen wert, anstatt einen 4-stelligen!!!
ich habe verschiedene Methoden versucht, die einzelwerte der "zehner, einer, tausender und hunderter" zu ermitteln, wobei ich auf die gute anleitung von "Radbruch" aus dem Threat: der Threat (https://www.roboternetz.de/phpBB2/viewtopic.php?t=39126&postdays=0&postorder=asc&start=22)
zurückgegriffen habe, nun habe ich das problem das die werte nicht, bzw als Zeichen wirwar, übermittelt werden!
In meinem Code hab ich bei der funktion des Linken und des Rechten Phototransistors verschiedene möglcihkeiten genommen, wobei die obere Fehleraufweist, kann mir jemand bitte
Lösungsansätze vorschlagen, bitte keine Komplettlösung, da ich selber auch noch was tuen möchte :P
thx im vorraus greezZ dr Listner
EDIT:
achja, mir ist bewust, dass ich oben nur die Funktionen gepostet habe :P
aufgerufen habe ich sie mit :
PrintCharL(a); //bzw
PrintCharR(a);
ich habe mich nun etwas weiter vor gewagt in der Programmierung des Asuros :) und das ist dabei rausgekommen:
Es sollte eine Methode sein, um die Werte der Phototranistoren des Asuros aus zulesen, es hat soweit alles geklapt, nur habe ich ein paar kleinere Probleme
unsigned int data[2];
unsigned char s[4] = "thze";
void PrintCharR(unsigned int x)
{
unsigned char einer, zehner, huni, tausend;
x = data[1];
einer= x%10;
zehner= (x-einer)%100;
huni= (x-(zehner*10+einer))%1000;
tausend= (x-((huni*100)+(zehner*10)+einer))%10000;
s[0]=huni+'0';
s[1]=zehner+'0';
s[2]=einer+'0';
s[3]=tausend;
SerWrite(s,4);
}
void PrintCharL(unsigned int x)
{
unsigned char einer, zehner, huni, tausend;
x = data[0];
einer=x%10;
zehner=(x-einer)/10;
huni=(x-(zehner*10+einer))/100;
if((x = 1000) && (x > 1000))
tausend= 1;
else
tausend= 0;
s[0]=huni+'0';
s[1]=zehner+'0';
s[2]=einer+'0';
s[3]=tausend;
SerWrite(s,4);
}
die wären, der asuro übergibt einen nur 3stelligen wert, anstatt einen 4-stelligen!!!
ich habe verschiedene Methoden versucht, die einzelwerte der "zehner, einer, tausender und hunderter" zu ermitteln, wobei ich auf die gute anleitung von "Radbruch" aus dem Threat: der Threat (https://www.roboternetz.de/phpBB2/viewtopic.php?t=39126&postdays=0&postorder=asc&start=22)
zurückgegriffen habe, nun habe ich das problem das die werte nicht, bzw als Zeichen wirwar, übermittelt werden!
In meinem Code hab ich bei der funktion des Linken und des Rechten Phototransistors verschiedene möglcihkeiten genommen, wobei die obere Fehleraufweist, kann mir jemand bitte
Lösungsansätze vorschlagen, bitte keine Komplettlösung, da ich selber auch noch was tuen möchte :P
thx im vorraus greezZ dr Listner
EDIT:
achja, mir ist bewust, dass ich oben nur die Funktionen gepostet habe :P
aufgerufen habe ich sie mit :
PrintCharL(a); //bzw
PrintCharR(a);