Wrapper library for controlling servos using Designer Systems DS-SCX18.Shield servo driver. See http://www.designersystems.co.uk/SCX18.S_info.htm
Diff: SCX18S.h
- Revision:
- 0:bf06c3ca958b
diff -r 000000000000 -r bf06c3ca958b SCX18S.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SCX18S.h Wed Apr 27 14:16:45 2016 +0000 @@ -0,0 +1,35 @@ +#include "mbed.h" + +#define SCX18_I2C_BASE_ADDR 0x74 // DS-SCX18.S I2C base address +#define SCX18_SERVO_ENABLED (1 << 7) +#define SCX18_SERVO_REVERSED (1 << 6) +#define SCX18_SERVO_SOFT_START (1 << 5) +#define SCX18_SERVO_SPEED_CONTROL (1 << 4) +#define SCX18_SERVO_MOVEMENT (1 << 4) + +union SCX18SServoStatusRegister { + uint8_t value; + struct { + bool enabled; + bool reversed; + bool softstart; + bool movement; + uint8_t unpopulated : 4; + } bits; +}; + +class SCX18S +{ + I2C i2c; + uint8_t i2c_address; + void writeRegister(uint8_t reg, uint8_t value); + uint8_t readRegister(uint8_t reg); + +public: + SCX18S(PinName p_sda, PinName p_scl, bool j_a0 = true, bool j_a1 = true); + + SCX18SServoStatusRegister readStatus(uint8_t channel); + void writePosition(uint8_t channel, uint8_t position); + void writeControl(uint8_t channel, bool enabled, bool reversed, bool softstart, bool speedcontrol, uint8_t speed); + void writeEnable(); +}; \ No newline at end of file