SPI 12bit D/A 2ch MCP4922 library
MCP4922.cpp@1:6c010acaae66, 2019-08-06 (annotated)
- Committer:
- ritarosakai
- Date:
- Tue Aug 06 12:50:39 2019 +0000
- Revision:
- 1:6c010acaae66
- Parent:
- 0:2e338068a5a7
Changed no to use MISO pin
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ritarosakai | 0:2e338068a5a7 | 1 | #include "MCP4922.h" |
ritarosakai | 0:2e338068a5a7 | 2 | #include "mbed.h" |
ritarosakai | 0:2e338068a5a7 | 3 | |
ritarosakai | 1:6c010acaae66 | 4 | MCP4922::MCP4922(PinName MOSI,PinName SCK,PinName CS,PinName LDAC): |
ritarosakai | 1:6c010acaae66 | 5 | dac_SPI(MOSI,NC,SCK),dac_cs(CS),dac_l(LDAC) |
ritarosakai | 0:2e338068a5a7 | 6 | { |
ritarosakai | 0:2e338068a5a7 | 7 | dac_SPI.format(16,0); |
ritarosakai | 0:2e338068a5a7 | 8 | dac_SPI.frequency(20000000); |
ritarosakai | 0:2e338068a5a7 | 9 | dac_cs=1; |
ritarosakai | 0:2e338068a5a7 | 10 | dac_l=1; |
ritarosakai | 0:2e338068a5a7 | 11 | } |
ritarosakai | 0:2e338068a5a7 | 12 | |
ritarosakai | 0:2e338068a5a7 | 13 | void MCP4922::write(int ch,float value) |
ritarosakai | 0:2e338068a5a7 | 14 | { |
ritarosakai | 0:2e338068a5a7 | 15 | if(value<0) { |
ritarosakai | 0:2e338068a5a7 | 16 | value=0; |
ritarosakai | 0:2e338068a5a7 | 17 | } else if(value>1) { |
ritarosakai | 0:2e338068a5a7 | 18 | value=1; |
ritarosakai | 0:2e338068a5a7 | 19 | } |
ritarosakai | 0:2e338068a5a7 | 20 | dac_cs=0; |
ritarosakai | 0:2e338068a5a7 | 21 | int data; |
ritarosakai | 0:2e338068a5a7 | 22 | if(ch==0) { |
ritarosakai | 0:2e338068a5a7 | 23 | data=(0b0011<<12)|(int)(value*0xFFF); |
ritarosakai | 0:2e338068a5a7 | 24 | } else if(ch==1) { |
ritarosakai | 0:2e338068a5a7 | 25 | data=(0b1011<<12)|(int)(value*0xFFF); |
ritarosakai | 0:2e338068a5a7 | 26 | } |
ritarosakai | 0:2e338068a5a7 | 27 | dac_SPI.write(data); |
ritarosakai | 0:2e338068a5a7 | 28 | dac_cs=1; |
ritarosakai | 0:2e338068a5a7 | 29 | dac_l=0; |
ritarosakai | 0:2e338068a5a7 | 30 | dac_l=1; |
ritarosakai | 0:2e338068a5a7 | 31 | } |