不韋 呂 / Mbed 2 deprecated OpenCampus_FreqConv

Dependencies:   mbed

Committer:
MikamiUitOpen
Date:
Mon Jul 28 07:30:22 2014 +0000
Revision:
0:f69d3c64978d
Child:
1:d8449dbcde02
ver.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:f69d3c64978d 1 //------------------------------------------------------
MikamiUitOpen 0:f69d3c64978d 2 // Class for 1 DAC in MCO4922
MikamiUitOpen 0:f69d3c64978d 3 //
MikamiUitOpen 0:f69d3c64978d 4 // 2014/07/18, Copyright (c) 2014 MIKAMI, Naoki
MikamiUitOpen 0:f69d3c64978d 5 //------------------------------------------------------
MikamiUitOpen 0:f69d3c64978d 6
MikamiUitOpen 0:f69d3c64978d 7 #include "MCP4921.hpp"
MikamiUitOpen 0:f69d3c64978d 8
MikamiUitOpen 0:f69d3c64978d 9 namespace Mikami
MikamiUitOpen 0:f69d3c64978d 10 {
MikamiUitOpen 0:f69d3c64978d 11 DacMCP4921::DacMCP4921(PinName mosi, PinName sclk,
MikamiUitOpen 0:f69d3c64978d 12 PinName cs, int hz)
MikamiUitOpen 0:f69d3c64978d 13 : mySpi_(mosi, NC, sclk, PA_4), myCs_(cs, 1)
MikamiUitOpen 0:f69d3c64978d 14 {
MikamiUitOpen 0:f69d3c64978d 15 // Set SPI format and bus frequency
MikamiUitOpen 0:f69d3c64978d 16 mySpi_.format(16, 0);
MikamiUitOpen 0:f69d3c64978d 17 mySpi_.frequency(hz);
MikamiUitOpen 0:f69d3c64978d 18
MikamiUitOpen 0:f69d3c64978d 19 // Set DAC to 0
MikamiUitOpen 0:f69d3c64978d 20 WriteDac(0);
MikamiUitOpen 0:f69d3c64978d 21 }
MikamiUitOpen 0:f69d3c64978d 22
MikamiUitOpen 0:f69d3c64978d 23 void DacMCP4921::Write(float value)
MikamiUitOpen 0:f69d3c64978d 24 {
MikamiUitOpen 0:f69d3c64978d 25 if (value < -1.0f) value = -1.0f;
MikamiUitOpen 0:f69d3c64978d 26 if (value > 1.0f) value = 1.0f;
MikamiUitOpen 0:f69d3c64978d 27
MikamiUitOpen 0:f69d3c64978d 28 WriteDac((uint16_t)((value + 1.0f)*2047));
MikamiUitOpen 0:f69d3c64978d 29 }
MikamiUitOpen 0:f69d3c64978d 30
MikamiUitOpen 0:f69d3c64978d 31 void DacMCP4921::Write(uint16_t value)
MikamiUitOpen 0:f69d3c64978d 32 {
MikamiUitOpen 0:f69d3c64978d 33 WriteDac((value > 4095) ? 4095 : value);
MikamiUitOpen 0:f69d3c64978d 34 }
MikamiUitOpen 0:f69d3c64978d 35
MikamiUitOpen 0:f69d3c64978d 36 void DacMCP4921::WriteDac(uint16_t value)
MikamiUitOpen 0:f69d3c64978d 37 {
MikamiUitOpen 0:f69d3c64978d 38 myCs_.write(0); // cs <= L
MikamiUitOpen 0:f69d3c64978d 39 mySpi_.write(value | 0x3000);
MikamiUitOpen 0:f69d3c64978d 40 myCs_.write(1); // cs <= H
MikamiUitOpen 0:f69d3c64978d 41 }
MikamiUitOpen 0:f69d3c64978d 42 }
MikamiUitOpen 0:f69d3c64978d 43