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-29
- Revision:
- 1:d8449dbcde02
- Parent:
- 0:f69d3c64978d
File content as of revision 1:d8449dbcde02:
//------------------------------------------------------
// Class for DAC in MCP4921
//
// 2014/07/29, 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
}
}