## c't-Projekte - Mailinglisten

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

### Re: [ct-bot] typenprobleme bei ifdef PC ???

Absender: Achim Pankalla
Datum: Fr, 30.03.2007 13:12:44
In-reply-to: <460CDD44.3050409@xxxxxx>
References: <460BFC4D.5030809@xxxxxx> <03FA8E8E-224D-4E27-A1A6-2899A0C20B7B@xxxxxxxxxxxxxxx> <460C243C.907@xxxxxx> <FB69CB24-398E-4A0D-A099-3E8751094F34@xxxxxxxxxxxxxxx> <460CC23C.8090408@xxxxxx> <460CD36D.50200@xxxxxxxx> <460CDD44.3050409@xxxxxx>

    hallo,

`habe das problem glaube ich etwas eingegrenzt. im folgenden` `kodeabschnitt in sensor.c habe ich die uint16 register variable durch` `unit32 (markiert mit <<<>>>) ersetzt, danach fährt der bot im labyrinth` `wie gewohnt. ein typcasting in der funktion TIMER_GET_TICKCOUNT_16` `brachte nichts.`

    sensor.c:
    void sensor_update(void){

`static uint16 old_pos=0; /*!< Ticks fuer` `Positionsberechnungsschleife */` `static uint16 old_speed=0; /*!< Ticks fuer` `Geschwindigkeitsberechnungsschleife */`

       #ifdef MEASURE_MOUSE_AVAILABLE

`static int16 lastMouseX=0; /*!< letzter Mauswert X` `fuer Positionsberechnung */` `static int16 lastMouseY=0; /*!< letzter Mauswert Y` `fuer Positionsberechnung */`

               static float lastDistance=0;    /*!< letzte gefahrene Strecke */
               static float lastHead=0;        /*!< letzter gedrehter Winkel */

`static float oldHead=0; /*!< Winkel aus dem letzten` `Durchgang */` `static float old_x=0; /*!< Position X aus dem` `letzten Durchgang */` `static float old_y=0; /*!< Position Y aus dem` `letzten Durchgang */` `float radius=0; /*!< errechneter Radius des` `Drehkreises */` `float s1=0; /*!< Steigung der` `Achsengerade aus dem letzten Durchgang */` `float s2=0; /*!< Steigung der aktuellen` `Achsengerade */` `float a1=0; /*!< Y-Achsenabschnitt der` `Achsengerade aus dem letzten Durchgang */` `float a2=0; /*!< Y-Achsenabschnitt der` `aktuellen Achsengerade */`

               float xd=0;                    /*!< X-Koordinate Drehpunkt */
               float yd=0;                    /*!< Y-Koordinate Drehpunkt */

`float right_radius=0; /*!< Radius des Drehkreises` `des rechten Rads */` `float left_radius=0; /*!< Radius des Drehkreises` `des linken Rads */`

       #endif

`static int16 lastEncL =0; /*!< letzter Encoderwert links fuer` `Positionsberechnung */` `static int16 lastEncR =0; /*!< letzter Encoderwert rechts` `fuer Positionsberechnung */` `static int16 lastEncL1=0; /*!< letzter Encoderwert links fuer` `Geschwindigkeitsberechnung */` `static int16 lastEncR1=0; /*!< letzter Encoderwert rechts` `fuer Geschwindigkeitsberechnung */`

       float dHead=0;                    /*!< Winkeldifferenz aus Encodern */

`float deltaY=0; /*!< errechneter Betrag` `Richtungsvektor aus Encodern */` `int16 diffEncL; /*!< Differenzbildung linker` `Encoder */` `int16 diffEncR; /*!< Differenzbildung rechter` `Encoder */`

       float sl;                        /*!< gefahrene Strecke linkes Rad */
       float sr;                        /*!< gefahrene Strecke rechtes Rad */
       #ifdef MEASURE_MOUSE_AVAILABLE
           int16 dX;                        /*!< Differenz der X-Mauswerte */
           int16 dY;                        /*!< Differenz der Y-Mauswerte */

`int8 modifiedAngles=False; /*!< Wird True, wenn aufgrund` `90 Grad oder 270 Grad die Winkel veraendert werden mussten */` `` `sensMouseY += sensMouseDY; /*!< Mausdelta Y aufaddieren */`

           sensMouseX += sensMouseDX;        /*!< Mausdelta X aufaddieren */

`#endif` `` `<<<<< register uint32 ticks = TIMER_GET_TICKCOUNT_16;>>>>`

       if (ticks-old_pos > MS_TO_TICKS(50)){
           old_pos = ticks;
           /* Gefahrene Boegen aus Encodern berechnen */
           diffEncL=sensEncL-lastEncL;
           diffEncR=sensEncR-lastEncR;
           lastEncL=sensEncL;
           lastEncR=sensEncR;
           sl=(float)diffEncL*WHEEL_PERIMETER/ENCODER_MARKS;
           sr=(float)diffEncR*WHEEL_PERIMETER/ENCODER_MARKS;
           /* Winkel berechnen */

    vielleicht weisst das jemanden mit mehr insiderwissen auf das problem hin...

    gruss
      achim

- Antworten:
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Timo Sandmann

- Referenzen:
  - [ct-bot] typenprobleme bei ifdef PC ???
    - From: Achim Pankalla
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Timo Sandmann
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Achim Pankalla
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Timo Sandmann
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Achim Pankalla
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Benjamin Benz
  - Re: [ct-bot] typenprobleme bei ifdef PC ???
    - From: Achim Pankalla

- Voriger (Datum): Re: [ct-bot] typenprobleme bei ifdef PC ???, Achim Pankalla
- Nächster (Datum): Re: [ct-bot] typenprobleme bei ifdef PC ???, Timo Sandmann
- Voriger (Thread): Re: [ct-bot] typenprobleme bei ifdef PC ???, Achim Pankalla
- Nächster (Thread): Re: [ct-bot] typenprobleme bei ifdef PC ???, Timo Sandmann
- Indizes:
  - Datum
  - Thread