Potentiometer AD5204,AD5206 library.
MjAD520x.cpp@0:1d45c35a717b, 2015-10-18 (annotated)
- Committer:
- matsujirushi
- Date:
- Sun Oct 18 05:12:59 2015 +0000
- Revision:
- 0:1d45c35a717b
created.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
matsujirushi | 0:1d45c35a717b | 1 | #include "MjAD520x.h" |
matsujirushi | 0:1d45c35a717b | 2 | |
matsujirushi | 0:1d45c35a717b | 3 | MjAD520x::MjAD520x(PinName mosi, PinName miso, PinName sclk, PinName cs_n, int terminalResistance) |
matsujirushi | 0:1d45c35a717b | 4 | : HwSpi(mosi, miso, sclk), HwCs_n(cs_n, 1) |
matsujirushi | 0:1d45c35a717b | 5 | { |
matsujirushi | 0:1d45c35a717b | 6 | TerminalResistance = terminalResistance; |
matsujirushi | 0:1d45c35a717b | 7 | |
matsujirushi | 0:1d45c35a717b | 8 | HwSpi.format(11, 0); |
matsujirushi | 0:1d45c35a717b | 9 | HwSpi.frequency(1000000); |
matsujirushi | 0:1d45c35a717b | 10 | } |
matsujirushi | 0:1d45c35a717b | 11 | |
matsujirushi | 0:1d45c35a717b | 12 | void MjAD520x::write(int channel, int resistance) |
matsujirushi | 0:1d45c35a717b | 13 | { |
matsujirushi | 0:1d45c35a717b | 14 | write_u8(channel, resistance <= TerminalResistance ? resistance * 255 / TerminalResistance : 255); |
matsujirushi | 0:1d45c35a717b | 15 | } |
matsujirushi | 0:1d45c35a717b | 16 | |
matsujirushi | 0:1d45c35a717b | 17 | void MjAD520x::write_u8(int channel, uint8_t value) |
matsujirushi | 0:1d45c35a717b | 18 | { |
matsujirushi | 0:1d45c35a717b | 19 | HwCs_n.write(0); |
matsujirushi | 0:1d45c35a717b | 20 | wait_us(1); |
matsujirushi | 0:1d45c35a717b | 21 | |
matsujirushi | 0:1d45c35a717b | 22 | HwSpi.write(channel << 8 | value); |
matsujirushi | 0:1d45c35a717b | 23 | |
matsujirushi | 0:1d45c35a717b | 24 | HwCs_n.write(1); |
matsujirushi | 0:1d45c35a717b | 25 | wait_us(1); |
matsujirushi | 0:1d45c35a717b | 26 | } |
matsujirushi | 0:1d45c35a717b | 27 |