Library that controls BD6211F of rohm.
Dependents: WallBot_Simple WallbotTypeN
BD6211F.cpp@0:e27bf165308f, 2011-04-27 (annotated)
- Committer:
- jksoft
- Date:
- Wed Apr 27 02:51:14 2011 +0000
- Revision:
- 0:e27bf165308f
Who changed what in which revision?
User | Revision | Line number | New 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 �` 0.0 �` 1.0 |
jksoft | 0:e27bf165308f | 54 | // float time :0.0�` |
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 |