18 this->maxSampleValue = maxSampleValue;
19 this->minSampleValue = minSampleValue;
25 return samplingRate * 16;
29 void write(uint16_t *inValues,
int len)
const {
30 convert(inValues,inValues,len);
31 out_ptr->write((
const uint8_t *)inValues,len*
sizeof(int16_t));
35 void write(uint16_t value)
const {
36 out_ptr->write(convertValue(value));
43 const uint16_t values[17] = {
63 inline uint map(uint x, uint in_min, uint in_max, uint out_min, uint out_max)
const {
64 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
67 void convert(uint16_t *inValues, uint16_t *outValues,
int len)
const{
68 for (
int j=0;j<len;j++){
69 outValues[j] = convertValue(inValues[j]);
73 inline uint16_t convertValue(uint16_t value)
const {
74 uint8_t idx = map(value, -maxSampleValue, maxSampleValue, 0, 16);
If your Microcontroller does not provide a dedicated analog output you can use the serial output inst...
Definition: SerialDAC.h:13
void write(uint16_t *inValues, int len) const
writes a buffer to the tx line
Definition: SerialDAC.h:29
void write(uint16_t value) const
writes a single value to the tx line
Definition: SerialDAC.h:35
SerialDAC(Stream &out, uint minSampleValue=0, uint maxSampleValue=65535)
Constructor.
Definition: SerialDAC.h:16
uint baudRate(uint samplingRate) const
convert the sample rate to the necessary baud rate (bit per second (bit/s)) - please set the baud rat...
Definition: SerialDAC.h:23