motor.c-Dateireferenz

Funktionen zur Steuerung der Motoren. Mehr ...

#include "asuro.h"

gehe zum Quellcode dieser Datei

Funktionen

void SetMotorPower (int8_t leftpwm, int8_t rightpwm)
 Steuert die Motorgeschwindigkeit und Drehrichtung der Motoren.


Ausführliche Beschreibung

Funktionen zur Steuerung der Motoren.

Die Motorsteuerung erfolgt grundsaetzlich ueber die auf der Asuro-Platine
aufgebauten H-Bruecken. Dies ist eine Schaltung, ueber die ein Strom in
verschiedene Richtungen durch die Motoren geleitet werden kann.
Zur Geschwindigkeitssteuerung werden die beiden im Prozessor vorhandenen
PWM-Kanaele genutzt, deren Ausgangssignale die Staerke des Stromflusses in
den H-Bruecken beinflusst.
Die Initialisierung der PWM-Funktionalitaet erfolgt in der Funktion Init().

Siehe auch:
Defines fuer die Auswahl der ADC-Kanaele in asuro.h
FWD, RWD, BREAK, FREE
Version:
sto1 - 07.01.2006 - stochri
+++ SetMotorPower()
first implementation

V--- - bis zum 07.01.2007 -
Bitte in Datei CHANGELOG nachsehen.

V001 - 13.01.2007 - m.a.r.v.i.n
+++ Alle Funktionen
Zerlegte Sourcen in einzelne Dateien fuer eine echte Library.

V002 - 05.02.2007 - Sternthaler
+++ Alle Funktionen
Kommentierte Version (KEINE Funktionsaenderung)

V003 - 18.02.2007 - m.a.r.v.i.n
Datei gesplitted in motor_low.c und motor.c

Definiert in Datei motor.c.


Dokumentation der Funktionen

void SetMotorPower ( int8_t  leftpwm,
int8_t  rightpwm 
)

Steuert die Motorgeschwindigkeit und Drehrichtung der Motoren.

Parameter:
[in] leftpwm linker Motor (-rückwaerts, + vorwaerts) (Wertebereich -128...127)
[in] rightpwm rechter Motor (-rückwaerts, + vorwaerts) (Wertebereich -128...127)
Rückgabe:
nichts
Hinweis:
Da der Wertebereich dieser Funktion nur von -128 bis +127 reicht, aber die
urspruengliche Funktion MotorSpeed() einen Wertebereich bis +255 hat, werden
die hier uebergebene Parameter als Absolutwert mit 2 multipliziert weitergegeben.
Beispiel:
(Nur zur Demonstration der Parameter/Returnwerte)
  // Setzt die Geschwindigkeit fuer den linken Motor auf 60 (vorwaerts),
  // und für den rechten Motor auf -60 (rueckwaerts)
  // Asuro soll auf der Stelle drehen.
  SetMotorPower (60, -600);

Definiert in Zeile 91 der Datei motor.c.

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:53 2007 für ASURO Library von  doxygen 1.5.1-p1