motor.c

gehe zur Dokumentation dieser Datei
00001 /****************************************************************************/
00033 /*****************************************************************************
00034 *                                                                            *
00035 *   This program is free software; you can redistribute it and/or modify     *
00036 *   it under the terms of the GNU General Public License as published by     *
00037 *   the Free Software Foundation; either version 2 of the License, or        *
00038 *   any later version.                                                       *
00039 *                                                                            *
00040 *****************************************************************************/
00041 #include "asuro.h"
00042 
00043 
00044 
00045 /***************************************************************************
00046 *
00047 *       sto1     07.01.2006   stochri          first implementation
00048 *
00049 * control the motors
00050 *
00051 * input range: -127 full power backturn
00052 *                 0 stop motors
00053 *              +127 full power vorward
00054 *
00055 *       motor direction and speed can be set with one parameter
00056 *
00057 *       last modification:
00058 *       Ver.     Date         Author           Comments
00059 *       -------  ----------   --------------   ---------------------------------
00060 *       sto1     07.01.2006   stochri          first implementation
00061 *       -------  ----------   --------------   ---------------------------------
00062 ****************************************************************************/
00063 /****************************************************************************/
00091 void SetMotorPower (
00092   int8_t leftpwm,
00093   int8_t rightpwm)
00094 {
00095   unsigned char left, right;
00096 
00097   if (leftpwm < 0)                      // Ein negativer Wert fuehrt ...
00098   {
00099     left = RWD;                         // ... zu einer Rueckwaertsfahrt, ...
00100     leftpwm = -leftpwm;                 // aber immer positiv PWM-Wert
00101   }
00102   else
00103     left = FWD;                         // ... sonst nach vorne, ...
00104   if (leftpwm == 0)
00105     left = BREAK;                       // ... oder bei 0 zum Bremsen.
00106 
00107   if (rightpwm < 0)
00108   {
00109     right = RWD;
00110     rightpwm = -rightpwm;
00111   }
00112   else
00113     right = FWD;
00114   if (rightpwm == 0)
00115     right = BREAK;
00116 
00117   MotorDir (left, right);                 // Drehrichtung setzen
00118 
00119   /*
00120     Die Geschwindigkeitsparameter mit 2 multiplizieren, da der Absolutwert
00121     der Parameter dieser Funktion nur genau die Haelfte von der MotorSpeed()-
00122     Funktion betraegt.
00123   */
00124   MotorSpeed (leftpwm * 2, rightpwm * 2);
00125 }

Erzeugt am Sun Nov 18 18:24:52 2007 für ASURO Library von  doxygen 1.5.1-p1