heise online | · | c't | · | iX | · | Technology Review | · | Telepolis | · | mobil | · | Security | · | Netze | · | heise open | · | heise resale | · | Autos | · | c't-TV | · | Jobs | · | Kiosk

Aktuelles Heft #### Support Hotline & FAQ Tipps & Tricks Treiber & BIOS Firmenkontakte #### Download Software zu c't Software-Verzeichnis c't-Projekte Testbilder & Vorlagen #### Service Tipp-Datenbank c't-CD-Register Internettarife Telefontarife Virenschutz #### Magazin Heftarchiv c't specials English Pages Benchmarks Red. Stuff Leserforum c't-Bildmotive URLs aus c't Schlagseite #### Aktionen Browsercheck Krypto-Kampagne Schulen ans Netz Netz gegen Kinderporno TV/Radio-Termine #### Info Abo & Heft Veranstaltungen Mediadaten Kontakt Impressum Kleinanzeigen und Veranstaltungen
| c't Projekte - c't-Bot und c't-Sim - Mailinglisten ## c't-Bot und c't-Sim [Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)] [Nach Datum][Nach Thread] ### [ct-bot] Streulicht herausrechnen / Patch Absender: Randolf Datum: Mo, 20.03.2006 17:39:42 In-reply-to: <441DD110.7080201@xxxxxxxxxxxx> References: <200603192107.18570.tevers@xxxxxxxxxxxxx> <441DBF3F.5030805@xxxxxxxxxxxx> <200603192143.31399.tevers@xxxxxxxxxxxxx> <441DD110.7080201@xxxxxxxxxxxx>
    Hallo zusammen,

    auch ich hab mir Gedanken um die zappelnden Sensorwerte gemacht. Eine
    Mittelwertbildung halte ich nicht für sinnvoll. Die Spitzen treten nur
    in eine Richtung auf und oft nur für ca 4-5 hintereinanderliegende
    Messungen (was der Dauer der Schwebung/Überlagerung entsprechen könnte).
    Daher verzichte ich auf die hohen Werte generell.
    Ich speichere den letzten Messwert. Ist der aktuelle Wert kleiner, wird
    er sofort übernommen.
    Ist der aktuelle Wert größer, dann wird er nicht übernommen, sondern es
    wird ein Zähler gestartet. Erst wenn x-Mal ein höherer Wert ausgelesen
    wird, wird dieser übernommen. Momentan hab ich den Wert x auf 100
    gestellt (worst case: nur nach 100 Sensorabfragen wird erkannt, dass
    kein Hindernis mehr da ist. Bei max. 100 ms sollte das kein Problem sein
    ??? Tritt ein Hindernis auf, wird der kleinere Wert sofort
    durchgereicht. Patch zum Testen  anbei.

    Gruss Randolf
    Index: mcu/sensor-low.c
    ===================================================================
    RCS file: /ctbot/ct-Bot/mcu/sensor-low.c,v
    retrieving revision 1.5
    diff -u -r1.5 sensor-low.c
    --- mcu/sensor-low.c	19 Mar 2006 20:42:51 -0000	1.5
    +++ mcu/sensor-low.c	20 Mar 2006 17:50:51 -0000
    @@ -133,6 +133,12 @@
      */
     void bot_sens_isr(void){
     	ENA_on(ENA_KANTLED|ENA_MAUS|ENA_SCHRANKE|ENA_KLAPPLED);
    +
    +	static volatile int16 act_sensDistL = 0;
    +	static volatile int16 act_sensDistR = 0;
    +	static volatile int16 sens_count_left = 0;
    +	static volatile int16 sens_count_right = 0;
    +

      	// Aktualisiere die Position des Maussensors
     	sensMouseDY = maus_sens_read(MOUSE_DELTA_Y_REG);
    @@ -158,6 +164,32 @@
     	sensDistL= sensor_abstand(adc_read(SENS_ABST_L));
     	sensDistR= sensor_abstand(adc_read(SENS_ABST_R));

    +		if (sensDistL <= act_sensDistL) {
    +		act_sensDistL = sensDistL;
    +		sens_count_left = 0;
    +	}
    +	else {
    +		sens_count_left += 1;
    +		if (sens_count_left == 100) {
    +			sens_count_left = 0;
    +			act_sensDistL = sensDistL;
    +		}
    +		else sensDistL = act_sensDistL;
    +	};
    +
    +	if (sensDistR <= act_sensDistR) {
    +		act_sensDistR = sensDistR;
    +		sens_count_right = 0;
    +	}
    +	else {
    +		sens_count_right += 1;
    +		if (sens_count_right == 100) {
    +			sens_count_right = 0;
    +			act_sensDistR = sensDistR;
    +		}
    +		else sensDistR = act_sensDistR;
    +	};
    +
     	// ------- digitale Sensoren ------------------
     	sensDoor = (SENS_DOOR_PINR >> SENS_DOOR) & 0x01;
     	sensTrans = (SENS_TRANS_PINR >> SENS_TRANS) & 0x01;
Antworten: AW: [ct-bot] Streulicht herausrechnen / Patch From: Manuel Singer Referenzen: [ct-bot] Streulicht herausrechnen? From: Torsten Evers Re: [ct-bot] Streulicht herausrechnen? From: Harald Härtl Re: [ct-bot] Streulicht herausrechnen? From: Torsten Evers Re: [ct-bot] Streulicht herausrechnen? From: Harald Härtl Voriger (Datum): Re: [ct-bot] Neue Codeversionen, Peter König Nächster (Datum): AW: [ct-bot] Streulicht herausrechnen / Patch, Manuel Singer Voriger (Thread): Re: [ct-bot] Streulicht herausrechnen?, Harald Härtl Nächster (Thread): AW: [ct-bot] Streulicht herausrechnen / Patch, Manuel Singer Indizes: Datum Thread |

Copyright © 2007 Heise Zeitschriften Verlag | Kritik, Anregungen bitte an c't-WWW | Datenschutzhinweis Impressum