alles kla, ich freu mich drauf =)
Druckbare Version
alles kla, ich freu mich drauf =)
Hallo
wie habt ihr die werte aus/eingelesen habt ih rHyperterminal verwendet?
hab mir auch so ein programm geschrieben allerdings gibt mir das Terminal nur wirre Zeichen aus (wird daran liegen das es die empfangenen Zahlenwerte in ASCII Zeichen umwandelt)
Hat da jemand nen Lösungsvorschlag
mfg Hissi
Wenn du uns freundlicherweise deinen Code zeigen würdest..
Mein Code ist mit anfänger c++ Kenntnissen geschrieben ghet sicher noch um einiges leichter.....
kurze Erklärung:Code:#include "asuro.h"
int main (void)
{
unsigned char i,s,sc,temp;
int templinks, temprechts, summelinks, summerechts, x, y, a, b, wechselrechts, wechsellinks;
//int n1l, n1r, nr, nl;
int data[2];
Init();
MotorDir(FWD,FWD);
s=200;
temp=s/3;
sc=temp*2;
MotorSpeed(s,s);
wechsellinks=0;
wechselrechts=0;
while(1)
{
for(i=0;i<1000;i++)
{
Sleep(72);
templinks=summelinks;
summelinks=wechsellinks+templinks;
temprechts=summerechts;
summerechts=wechselrechts+temprechts;
x=data[0];
y=data[1];
OdometrieData(data);
SerWrite(data[0],3);
SerWrite(data[1],3);
a=data[0];
b=data[1];
if(x>a) {wechsellinks=1;}
else {wechsellinks=0;}
if(y>b) {wechselrechts=1;}
else {wechselrechts=0;}
}
if(summelinks>summerechts) {MotorSpeed(sc,s);}
else {MotorSpeed(s,sc);}
}
}
Programm sollte die einzelnen Werte vor und nach der Aktualisierung in der for schleife vergleichen und dann das ergebnis für links und rechts in eine Summe zusammenfassen diese summen werden dann verglichen.
Wo ist denn da ne ausgabe? warum kommt da überhaupt was an? habe ich das serwrite übersehn oder fehlt es wirklich?
Oh sorry hab die Version ohne die Ausgabe erwischt stell das gleich mal richtig
mfg Hissi
edit: habs grad nochmal probiert und bin draufgekommen das der ASuro immer eine Rechtskurve fährt (ist bei den Testläufen wohl von alleine gerade gefahren :( ) find zurzeit den Fehler nicht wäre für jede Hilfe dankbar
mache an stelle der
lieber was anderes :)Code:SerWrite(data[0],3);
itoa -->wandelt einen Integer in einen String um
oder schau dir mal die printint an
denn die SerWrite erwartet einen String! und keinen Wert
DAnke muss ich mal ausprobieren hab aber zur zeit inder schule sehr viel zu tun
mfg Hissi
benutze einfach PrintInt(data[0]); an dieser stelle.
die funktion rechent den zahlenwert in ascii-zeichen um und sendet sie dann an das hyperterminal.