不韋 呂 / UITDSP_ADDA2

Dependents:   UITDSP_ADDA_Example2

Committer:
MikamiUitOpen
Date:
Sat Mar 14 06:49:49 2015 +0000
Revision:
0:46d099dfd9d6
Child:
1:e997f4e94491
1

Who changed what in which revision?

UserRevisionLine numberNew 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