Modified the original DRV2605 library written by Bryce Williams. Team specific uint8_t kick_start_my_heart(int intensity, int duration) function is added to the library, otherwise unchanged. FLY ARMY!!!
Fork of DRV2605 by
- include "mbed.h"
- include "DRV2605.h" DRV2605 haptics(p9, p10); *NEEDE FOR KCIKSTART*
PwmOut base(p26); *NEEDED FOR BOOSTER CIRCUIT, if required*
int main() { base.period(.000001);1MHz base=.5;50% duty cycle
*FOLLOWING NEEDED FOR KICKSTART*
haptics.init(3.3); Motor initialization will cause a 1 second vibration
wait(2);
uint8_t stats=haptics.kick_start_my_heart(10, 1); Intensity range 1-10, duratio range 1-8
printf("dig %X/n",haptics.init(3.3)); }
Diff: DRV2605.cpp
- Revision:
- 1:224404f39d98
- Parent:
- 0:3b2b4f34aaca
--- a/DRV2605.cpp Wed Oct 21 01:02:59 2015 +0000 +++ b/DRV2605.cpp Fri Dec 02 00:20:14 2016 +0000 @@ -64,6 +64,24 @@ i2cWriteByte(GO, 1); } +uint8_t DRV2605::kick_start_my_heart(int inten, int dur) { //inten range 1-10, dur range 1-8 +//intensity values(1-123) refer to dvr2605_waveform.pdf, page60 + int left_over; + uint8_t res; + for ( int ind=0x04; ind<=(dur+0x003); ind++ ) { + i2cWriteByte(ind, inten); + left_over=ind; + } + for (int ind=(left_over+1); ind<=0x0B; ind++) { + i2cWriteByte(ind, 0); + } + res=diagnostics(); + printf("%X", res); + play(); + return res; + } + + uint8_t DRV2605::auto_cal_open_loop(float actuator_peak_voltage){ // Exit Standby Mode; Enter Auto- Cal Mode mode(AUTO_CAL);