譯文 張 / Mbed 2 deprecated 7_7Boboobooo

Dependencies:   mbed

Fork of Boboobooo by Clark Lin

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers motor_api.cpp Source File

motor_api.cpp

00001 #include "mbed.h"
00002 #include "motor_api.h"
00003 
00004 #define init_v 10  // period in 1.35 ~170ms
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013  BX_motor::BX_motor(char type){
00014     
00015     
00016  
00017  
00018   
00019    //need N level????
00020   engine_enable = new DigitalOut(PTE21);  
00021   
00022    *engine_enable=1;
00023     
00024     Type=type;
00025     switch (type){
00026      
00027         case 'A':
00028           forward_A = new PwmOut(PTC3);
00029           backward_A = new   PwmOut(PTC4);
00030          
00031          forward_A->period_ms(init_v);
00032          backward_A->period_ms(init_v);
00033          *forward_A=0.5f;
00034          *backward_A=0.5f;
00035         
00036         break;
00037         
00038         
00039        case 'B':     
00040          
00041          forward_B = new PwmOut(PTC1);
00042          backward_B = new PwmOut(PTC2);
00043          forward_B->period_ms(init_v);
00044          backward_B->period_ms(init_v);
00045          *forward_B=0.5f;
00046          *backward_B=0.5f;
00047        break;
00048      
00049      
00050      
00051   }
00052      
00053     }
00054 
00055 
00056 // level: -1.0 ~1.0
00057 void BX_motor::rotate(float level){
00058        
00059        Level=level;
00060     
00061        if(level >0){
00062          
00063          switch(Type){
00064          
00065          case 'A':
00066               *forward_A=level;
00067               *backward_A=0;
00068          break;
00069          case 'B':
00070               *forward_B=level;
00071               *backward_B=0;
00072          break;  
00073          }
00074            
00075        }else if(level <0){
00076            
00077             level=-1.0*level;
00078            
00079          switch(Type){
00080          
00081          case 'A':
00082              *forward_A=0;
00083               *backward_A=level;
00084          break;
00085          case 'B':
00086             *forward_B=0;
00087               *backward_B=level;
00088          break;  
00089          }
00090            
00091       }
00092        else{
00093          switch(Type){
00094          
00095             case 'A':
00096               *forward_A=1.0f;
00097               *backward_A=1.0f;
00098                 
00099             break;
00100             case 'B':
00101                *forward_B=1.0f;
00102               *backward_B=1.0f;
00103             break;  
00104          }
00105            
00106            
00107            }
00108        
00109        
00110     
00111     
00112     
00113     
00114     
00115     
00116     
00117 }
00118 
00119 
00120