finite state machine / C12832_copy

Dependents:   Machine_a_etat_3

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers moteur.cpp Source File

moteur.cpp

00001     /******************************************************************
00002     * Code utilisé en ER1 pour commander les moteurs                 
00003     *******************************************************************/
00004         
00005     #include "moteur.h"
00006    
00007     DigitalOut enbMot(PB_12);  //enable moteurs
00008     //Moteur droit
00009     PwmOut sens1M1(PA_11);
00010     PwmOut sens2M1(PB_15);
00011     //moteur gauche
00012     PwmOut sens1M2(PB_14);
00013     PwmOut sens2M2(PB_13);
00014 
00015     void initVariateurs(void)
00016     {
00017         sens1M1.period_us(50);
00018         sens2M1.period_us(50);
00019         sens1M2.period_us(50);
00020         sens2M2.period_us(50);
00021         enbMot=1;   
00022     }
00023     
00024     void commandeMoteurs(int moteurG, int moteurD)
00025     {
00026         float mG, mD;
00027         //gestion des pulses minimum sur les PWM
00028         if (moteurG>=95) moteurG=100;
00029         else if (moteurG<=-95)moteurG=-100;
00030         else if (moteurG>=-5 && moteurG<=5) moteurG=0;
00031         if (moteurD>=95) moteurD=100;
00032         else if (moteurD<=-95)moteurD=-100;
00033         else if (moteurD>=-5 && moteurD<=5) moteurD=0;
00034         //gestion des signaux de commande
00035         if (moteurG>=0)
00036         {
00037             mG=(float)moteurG/100;
00038             sens1M1=mG;
00039             sens2M1=0;       
00040         }
00041         else
00042         {
00043             mG=(float)moteurG*(-1)/100;
00044             sens1M1=0;
00045             sens2M1=mG;
00046         }
00047         if (moteurD>=0)
00048         {
00049             mD=(float)moteurD/100;
00050             sens1M2=mD;
00051             sens2M2=0;       
00052         }
00053         else
00054         {
00055             mD=(float)moteurD*(-1)/100;
00056             sens1M2=0;
00057             sens2M2=mD;
00058         }
00059     }