Implemented first Hangar-Service
Dependencies: CalibrateMagneto QuaternionMath
Fork of SML2 by
MotorDriver.cpp
- Committer:
- pvaibhav
- Date:
- 2015-01-13
- Revision:
- 0:943820483318
- Child:
- 3:ee90a9ada112
File content as of revision 0:943820483318:
#include "MotorDriver.h" #include <cassert> #include <cmath> MotorDriver::MotorDriver(I2C &i2c, const uint8_t address) : I2CPeripheral(i2c, address) {} void MotorDriver::setVoltage(const float voltage) { assert(abs(voltage) >= 0.48); assert(abs(voltage) <= 5.06); const uint8_t DAC_val = floor(abs(voltage) / 0.0804) + 1; // derived from table on DRV8830 datasheet page 10 const uint8_t direction = (voltage >= 0.0) ? 0x01 : 0x02; // forward or reverse is set through last 2 bits write_reg(0x00, (DAC_val << 2) | direction); } MotorDriver& MotorDriver::operator=(const float voltage) { setVoltage(voltage); return *this; }