不韋 呂
/
UIT2_ADDA_mbed
AD and DA using mbed official library for ST Nucleo F401RE.
myDac.hpp@1:09cc28c39f81, 2014-11-05 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Wed Nov 05 04:03:45 2014 +0000
- Revision:
- 1:09cc28c39f81
- Parent:
- 0:ab1c0a2028da
2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:ab1c0a2028da | 1 | //------------------------------------------------------------ |
MikamiUitOpen | 0:ab1c0a2028da | 2 | // Sinple DAC class using SPI interface |
MikamiUitOpen | 0:ab1c0a2028da | 3 | // DAC: MCP4922, using only channel A (VOUTA) |
MikamiUitOpen | 0:ab1c0a2028da | 4 | //------------------------------------------------------------ |
MikamiUitOpen | 0:ab1c0a2028da | 5 | |
MikamiUitOpen | 0:ab1c0a2028da | 6 | class DacA |
MikamiUitOpen | 0:ab1c0a2028da | 7 | { |
MikamiUitOpen | 0:ab1c0a2028da | 8 | public: |
MikamiUitOpen | 0:ab1c0a2028da | 9 | // Constructor |
MikamiUitOpen | 0:ab1c0a2028da | 10 | DacA() |
MikamiUitOpen | 0:ab1c0a2028da | 11 | : mySpi_(SPI_MOSI, NC, SPI_SCK), // D11, NC, D13 |
MikamiUitOpen | 0:ab1c0a2028da | 12 | myCs_(SPI_CS, 1), // D10, CS <= H |
MikamiUitOpen | 0:ab1c0a2028da | 13 | myLd_(D12, 0) // D12, LDAC <= L |
MikamiUitOpen | 0:ab1c0a2028da | 14 | { |
MikamiUitOpen | 0:ab1c0a2028da | 15 | // Set SPI format and bus frequency |
MikamiUitOpen | 0:ab1c0a2028da | 16 | mySpi_.format(16, 0); |
MikamiUitOpen | 0:ab1c0a2028da | 17 | mySpi_.frequency(20000000); // SPI clock: 20 MHz |
MikamiUitOpen | 0:ab1c0a2028da | 18 | } |
MikamiUitOpen | 0:ab1c0a2028da | 19 | |
MikamiUitOpen | 0:ab1c0a2028da | 20 | // 0 <= value <= 4095 |
MikamiUitOpen | 0:ab1c0a2028da | 21 | void Write(uint16_t value) |
MikamiUitOpen | 0:ab1c0a2028da | 22 | { |
MikamiUitOpen | 0:ab1c0a2028da | 23 | myCs_.write(0); // cs <= L |
MikamiUitOpen | 0:ab1c0a2028da | 24 | mySpi_.write(value | 0x3000); |
MikamiUitOpen | 0:ab1c0a2028da | 25 | myCs_.write(1); // cs <= H |
MikamiUitOpen | 0:ab1c0a2028da | 26 | } |
MikamiUitOpen | 0:ab1c0a2028da | 27 | |
MikamiUitOpen | 0:ab1c0a2028da | 28 | private: |
MikamiUitOpen | 0:ab1c0a2028da | 29 | SPI mySpi_; // SPI object |
MikamiUitOpen | 0:ab1c0a2028da | 30 | DigitalOut myCs_; // for chip select |
MikamiUitOpen | 0:ab1c0a2028da | 31 | DigitalOut myLd_; // for LDAC |
MikamiUitOpen | 0:ab1c0a2028da | 32 | }; |