2017 hongo b team

Dependents:   CtrlMD 2017_Bteam_alpha_slave

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TS120.cpp Source File

TS120.cpp

00001 #include "TS120.h"
00002 
00003 TS120::TS120(PinName pwm_pin, bool _dir_flip, double _flont_range, double _back_range)
00004 :   pwm_out(pwm_pin)
00005 {
00006     dir_flip = _dir_flip;
00007     flont_range = _flont_range;
00008     back_range = _back_range;
00009     
00010     drive(0);
00011     wait_ms(100);
00012 }
00013 
00014 void TS120::drive(double _pwm)
00015 {
00016     double pwm = _pwm;
00017     
00018     if(dir_flip == true)
00019         pwm *= -1;
00020         
00021     if(_pwm > 0.0)
00022         pwm *= flont_range;
00023     else
00024         pwm *= back_range;
00025         
00026     int pwm_us = (int)((pwm_max - pwm_min) / 2) * (pwm + 1) + pwm_min; 
00027      
00028     pwm_out.pulsewidth_us(pwm_us);  
00029 }
00030 
00031 void TS120::drive(signed int _pwm, unsigned int max_pwm_abs)
00032 {
00033     
00034     double pwm = (double)((1 / max_pwm_abs) * _pwm);
00035     
00036     if(dir_flip == true)
00037         pwm *= -1;
00038         
00039     if(pwm > 0.0)
00040         pwm *= flont_range;
00041     else
00042         pwm *= back_range;
00043         
00044     int pwm_us = (int)((pwm_max - pwm_min) / 2) * (pwm + 1) + pwm_min; 
00045       
00046     pwm_out.pulsewidth_us(pwm_us);
00047 }