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.
AnalogIO_1ch/MCP4921.cpp
- Committer:
- MikamiUitOpen
- Date:
- 2014-07-28
- Revision:
- 0:f69d3c64978d
- Child:
- 1:d8449dbcde02
File content as of revision 0:f69d3c64978d:
//------------------------------------------------------
// Class for 1 DAC in MCO4922
//
// 2014/07/18, Copyright (c) 2014 MIKAMI, Naoki
//------------------------------------------------------
#include "MCP4921.hpp"
namespace Mikami
{
DacMCP4921::DacMCP4921(PinName mosi, PinName sclk,
PinName cs, int hz)
: mySpi_(mosi, NC, sclk, PA_4), myCs_(cs, 1)
{
// Set SPI format and bus frequency
mySpi_.format(16, 0);
mySpi_.frequency(hz);
// Set DAC to 0
WriteDac(0);
}
void DacMCP4921::Write(float value)
{
if (value < -1.0f) value = -1.0f;
if (value > 1.0f) value = 1.0f;
WriteDac((uint16_t)((value + 1.0f)*2047));
}
void DacMCP4921::Write(uint16_t value)
{
WriteDac((value > 4095) ? 4095 : value);
}
void DacMCP4921::WriteDac(uint16_t value)
{
myCs_.write(0); // cs <= L
mySpi_.write(value | 0x3000);
myCs_.write(1); // cs <= H
}
}