c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

Re: [ct-bot] Abstandsberechnung in sensor_abstand

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