Absender: Benjamin Benz
Datum: Mo, 28.08.2006 16:10:48
In-reply-to:
<44EF355C.8030404@xxxxxx>
References:
<44EF355C.8030404@xxxxxx>
Vielen Dank fuer diesen Patch. Er ist ab sofort im CVS enthalten. MfG Benjamin Benz Achim Pankalla wrote: > hallo, > beim experimentieren mit den realen bot ist mir aufgefallen, das die > abstandswerte bei größeren distanzen öfter mal auf null springen. die > ursache war schnell gefunden, dies passiert immer, wenn die werte der > sensoren sehr klein werden, aber noch nicht kleiner als zb > SENSDISTOFFSETLEFT. dabei ist mir nun auch aufgefallen, das durchaus > eine division durch null entstehen könnte. dies habe ich auch bei meinen > bot mir logausgaben feststellen können. > nun frage ich mich, ob jemand weiss warum der prozessor das so > wegsteckt. ein reset macht das programm anscheinend nicht! > wird das über die fusebits gesteuert oder wird nur ein irq ausgelöst und > dann gehts weiter. wenn jemand mir eine antwort geben könnte, spare ich > mir das durchsuchen von unterlagen und foren, man ist ja faul ;-) . > anbei ein patch, um das springen der distanzwerte auf null und auch div > durch 0 zu verhindern. > viel spass allen weiterhin. > mit freundlichen grüssen > achim > > > ------------------------------------------------------------------------ > > Index: Changelog.txt > =================================================================== > RCS file: /ctbot/ct-Bot/Changelog.txt,v > retrieving revision 1.95 > diff -u -r1.95 Changelog.txt > --- Changelog.txt 22 Aug 2006 10:07:24 -0000 1.95 > +++ Changelog.txt 25 Aug 2006 17:21:05 -0000 > @@ -1,5 +1,7 @@ > CHANGELOG fuer c't-Bot > ====================== > +2006-08-25 Achim Pankalla [achim.pankalla@xxxxxx]: Verhindert in sensor_abstand den Wert Null und eine Division durch Null. > + > 2006-08-04 Benjamin Benz [bbe@xxxxxxxx]: motor_low_pc.c Bugfix > > 2006-08-16 Felix Beckwermert [felix@xxxxxxxxxxxxxx]: sensor.c -- buf-fix (aus forum): Klammern bei dHead ergaenzt > Index: sensor.c > =================================================================== > RCS file: /ctbot/ct-Bot/sensor.c,v > retrieving revision 1.18 > diff -u -r1.18 sensor.c > --- sensor.c 22 Aug 2006 10:07:24 -0000 1.18 > +++ sensor.c 25 Aug 2006 17:21:06 -0000 > @@ -105,14 +105,17 @@ > * @param right Rechter Rohwert [0-1023] > */ > void sensor_abstand(uint16 left, uint16 right){ > + if(left == SENSDISTOFFSETLEFT) left++; > + if(right == SENSDISTOFFSETRIGHT) right++; > + > sensDistL = SENSDISTSLOPELEFT / (left - SENSDISTOFFSETLEFT); > sensDistR = SENSDISTSLOPERIGHT / (right - SENSDISTOFFSETRIGHT); > > // Korrigieren, wenn ungueltiger Wert > - if (sensDistL > SENS_IR_MAX_DIST || sensDistL<0) > + if (sensDistL > SENS_IR_MAX_DIST || sensDistL<=0) > sensDistL=SENS_IR_INFINITE; > > - if (sensDistR > SENS_IR_MAX_DIST || sensDistR<0) > + if (sensDistR > SENS_IR_MAX_DIST || sensDistR<=0) > sensDistR=SENS_IR_INFINITE; > > } > > > ------------------------------------------------------------------------ > > _______________________________________________ > ct-bot-entwickler Mailingliste > ct-bot-entwickler@xxxxxxxxxxxxxxxxx > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler -- Benjamin Benz Heise Zeitschriften Verlag Redaktion c't eMail: bbe@xxxxxxxx WWW : http://www.heise.de