Library that controls BD6211F of rohm.

Dependents:   WallBot_Simple WallbotTypeN

Committer:
jksoft
Date:
Wed Apr 27 02:51:14 2011 +0000
Revision:
0:e27bf165308f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:e27bf165308f 1 /**
jksoft 0:e27bf165308f 2 * Motor Driver BD6211F Control Library
jksoft 0:e27bf165308f 3 *
jksoft 0:e27bf165308f 4 * -- BD6211F is a device of the rohm.
jksoft 0:e27bf165308f 5 *
jksoft 0:e27bf165308f 6 * Copyright (C) 2011 Junichi Katsu (JKSOFT)
jksoft 0:e27bf165308f 7 */
jksoft 0:e27bf165308f 8
jksoft 0:e27bf165308f 9
jksoft 0:e27bf165308f 10 #include "BD6211F.h"
jksoft 0:e27bf165308f 11
jksoft 0:e27bf165308f 12 // BD6211F Class Constructor
jksoft 0:e27bf165308f 13 BD6211F::BD6211F(PinName fwd, PinName rev):
jksoft 0:e27bf165308f 14 _fwd(fwd), _rev(rev) {
jksoft 0:e27bf165308f 15
jksoft 0:e27bf165308f 16 _fwd.period(0.00005);
jksoft 0:e27bf165308f 17 _rev.period(0.00005);
jksoft 0:e27bf165308f 18 _fwd = 0.0;
jksoft 0:e27bf165308f 19 _rev = 0.0;
jksoft 0:e27bf165308f 20 bspeed = 0.0;
jksoft 0:e27bf165308f 21 timer_flag = false;
jksoft 0:e27bf165308f 22 }
jksoft 0:e27bf165308f 23
jksoft 0:e27bf165308f 24 // Speed Control
jksoft 0:e27bf165308f 25 // arg
jksoft 0:e27bf165308f 26 // float speed�F-1.0 �` 0.0 �` 1.0
jksoft 0:e27bf165308f 27 void BD6211F::speed(float speed) {
jksoft 0:e27bf165308f 28
jksoft 0:e27bf165308f 29 if( timer_flag == true ) return;
jksoft 0:e27bf165308f 30
jksoft 0:e27bf165308f 31 bspeed = speed;
jksoft 0:e27bf165308f 32
jksoft 0:e27bf165308f 33 if( speed > 0.0 )
jksoft 0:e27bf165308f 34 {
jksoft 0:e27bf165308f 35 _fwd = speed;
jksoft 0:e27bf165308f 36 _rev = 0.0;
jksoft 0:e27bf165308f 37 }
jksoft 0:e27bf165308f 38 else if( speed < 0.0 )
jksoft 0:e27bf165308f 39 {
jksoft 0:e27bf165308f 40 _fwd = 0.0;
jksoft 0:e27bf165308f 41 _rev = -speed;
jksoft 0:e27bf165308f 42 }
jksoft 0:e27bf165308f 43 else
jksoft 0:e27bf165308f 44 {
jksoft 0:e27bf165308f 45 _fwd = 1.0;
jksoft 0:e27bf165308f 46 _rev = 1.0;
jksoft 0:e27bf165308f 47 }
jksoft 0:e27bf165308f 48 }
jksoft 0:e27bf165308f 49
jksoft 0:e27bf165308f 50
jksoft 0:e27bf165308f 51 // Speed Control with time-out
jksoft 0:e27bf165308f 52 // arg
jksoft 0:e27bf165308f 53 // float sspeed:-1.0 &#65533;` 0.0 &#65533;` 1.0
jksoft 0:e27bf165308f 54 // float time :0.0&#65533;`
jksoft 0:e27bf165308f 55 void BD6211F::move(float sspeed , float time)
jksoft 0:e27bf165308f 56 {
jksoft 0:e27bf165308f 57 speed(sspeed);
jksoft 0:e27bf165308f 58 timer_flag = true;
jksoft 0:e27bf165308f 59 timer.attach(this,&BD6211F::timeout,time);
jksoft 0:e27bf165308f 60 }
jksoft 0:e27bf165308f 61
jksoft 0:e27bf165308f 62
jksoft 0:e27bf165308f 63 void BD6211F::timeout()
jksoft 0:e27bf165308f 64 {
jksoft 0:e27bf165308f 65 timer_flag = false;
jksoft 0:e27bf165308f 66 speed(bspeed);
jksoft 0:e27bf165308f 67 }
jksoft 0:e27bf165308f 68