Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: UITDSP_ADDA_Example2
DAC_MCP4922.hpp@0:46d099dfd9d6, 2015-03-14 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sat Mar 14 06:49:49 2015 +0000
- Revision:
- 0:46d099dfd9d6
- Child:
- 1:e997f4e94491
1
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| MikamiUitOpen | 0:46d099dfd9d6 | 1 | //------------------------------------------------------ |
| MikamiUitOpen | 0:46d099dfd9d6 | 2 | // Class for single DAC in MCP4922 -- Header |
| MikamiUitOpen | 0:46d099dfd9d6 | 3 | // Fast version |
| MikamiUitOpen | 0:46d099dfd9d6 | 4 | // |
| MikamiUitOpen | 0:46d099dfd9d6 | 5 | // 2015/02/03, Copyright (c) 2015 MIKAMI, Naoki |
| MikamiUitOpen | 0:46d099dfd9d6 | 6 | //------------------------------------------------------ |
| MikamiUitOpen | 0:46d099dfd9d6 | 7 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 8 | #ifndef DAC_MCP4922_HPP |
| MikamiUitOpen | 0:46d099dfd9d6 | 9 | #define DAC_MCP4922_HPP |
| MikamiUitOpen | 0:46d099dfd9d6 | 10 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 11 | #include "DAC_MCP4921.hpp" |
| MikamiUitOpen | 0:46d099dfd9d6 | 12 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 13 | namespace Mikami |
| MikamiUitOpen | 0:46d099dfd9d6 | 14 | { |
| MikamiUitOpen | 0:46d099dfd9d6 | 15 | class DAC_MCP4922 : public DAC_MCP4921 |
| MikamiUitOpen | 0:46d099dfd9d6 | 16 | { |
| MikamiUitOpen | 0:46d099dfd9d6 | 17 | public: |
| MikamiUitOpen | 0:46d099dfd9d6 | 18 | enum DAC { DAC_A = 0, DAC_B = 0x8000 }; |
| MikamiUitOpen | 0:46d099dfd9d6 | 19 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 20 | // Constructor |
| MikamiUitOpen | 0:46d099dfd9d6 | 21 | DAC_MCP4922( |
| MikamiUitOpen | 0:46d099dfd9d6 | 22 | DAC dac = DAC_A, // channel A |
| MikamiUitOpen | 0:46d099dfd9d6 | 23 | PinName mosi = SPI_MOSI, // D11 |
| MikamiUitOpen | 0:46d099dfd9d6 | 24 | PinName sclk = SPI_SCK, // D13 |
| MikamiUitOpen | 0:46d099dfd9d6 | 25 | PinName cs = SPI_CS, // D10 |
| MikamiUitOpen | 0:46d099dfd9d6 | 26 | PinName ldac = SPI_MISO) // D12 |
| MikamiUitOpen | 0:46d099dfd9d6 | 27 | : DAC_MCP4921(mosi, sclk, cs, ldac), |
| MikamiUitOpen | 0:46d099dfd9d6 | 28 | wcr_(dac | 0x3000) {} |
| MikamiUitOpen | 0:46d099dfd9d6 | 29 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 30 | protected: |
| MikamiUitOpen | 0:46d099dfd9d6 | 31 | void SetCR(DAC dac) { wcr_ = dac | 0x3000; } |
| MikamiUitOpen | 0:46d099dfd9d6 | 32 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 33 | private: |
| MikamiUitOpen | 0:46d099dfd9d6 | 34 | uint16_t wcr_; // write command register |
| MikamiUitOpen | 0:46d099dfd9d6 | 35 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 36 | // for inhibition of copy constructor |
| MikamiUitOpen | 0:46d099dfd9d6 | 37 | DAC_MCP4922(const DAC_MCP4922&); |
| MikamiUitOpen | 0:46d099dfd9d6 | 38 | // for inhibition of substitute operator |
| MikamiUitOpen | 0:46d099dfd9d6 | 39 | DAC_MCP4922& operator=(const DAC_MCP4922&); |
| MikamiUitOpen | 0:46d099dfd9d6 | 40 | |
| MikamiUitOpen | 0:46d099dfd9d6 | 41 | // for internal use |
| MikamiUitOpen | 0:46d099dfd9d6 | 42 | virtual void WriteDac(uint16_t value) |
| MikamiUitOpen | 0:46d099dfd9d6 | 43 | { |
| MikamiUitOpen | 0:46d099dfd9d6 | 44 | while (IsBusy()) {} |
| MikamiUitOpen | 0:46d099dfd9d6 | 45 | SlaveSelect(); |
| MikamiUitOpen | 0:46d099dfd9d6 | 46 | WriteSpi(value | wcr_); |
| MikamiUitOpen | 0:46d099dfd9d6 | 47 | } |
| MikamiUitOpen | 0:46d099dfd9d6 | 48 | }; |
| MikamiUitOpen | 0:46d099dfd9d6 | 49 | } |
| MikamiUitOpen | 0:46d099dfd9d6 | 50 | #endif // DAC_MCP4922_HPP |
| MikamiUitOpen | 0:46d099dfd9d6 | 51 |