114 template <
typename ChannelType>
120 static const uint8_t kResBits = 12;
122 static const uint16_t kRes = (1 << kResBits);
134 MCP320x(uint16_t vref, uint8_t csPin, SPIClass *spi);
143 MCP320x(uint16_t vref, uint8_t csPin);
161 uint16_t read(
Channel ch)
const;
170 template <
typename T,
size_t N>
186 template <
typename T,
size_t N>
189 readn(ch, data, N, splFreq);
200 template <
typename T,
size_t N,
typename Predicate>
203 readn_if(ch, data, N, p);
217 template <
typename T,
size_t N,
typename Predicate>
220 readn_if(ch, data, N, splFreq, p);
232 template <
typename T>
235 execute(createCmd(ch), data, num);
250 template <
typename T>
253 execute(createCmd(ch), data, num, getSplDelay(ch, splFreq));
268 template <
typename T,
typename Predicate>
271 auto cmd = createCmd(ch);
272 while (!p(execute(cmd))) {}
273 execute(cmd, data, num);
290 template <
typename T,
typename Predicate>
294 auto cmd = createCmd(ch);
295 while (!p(execute(cmd))) {}
296 execute(cmd, data, num, getSplDelay(ch, splFreq));
306 uint32_t testSplSpeed(
Channel ch)
const;
315 uint32_t testSplSpeed(
Channel ch, uint16_t num)
const;
326 uint32_t testSplSpeed(
Channel ch, uint16_t num, uint32_t splFreq);
334 uint16_t toAnalog(uint16_t raw)
const;
342 uint16_t toDigital(uint16_t val)
const;
348 uint16_t getVref()
const;
355 uint16_t getAnalogRes()
const;
382 uint16_t getSplDelay(
Channel ch, uint32_t splFreq);
406 template <
typename T>
409 for (decltype(num) i=0; i < num; i++)
410 data[i] = static_cast<T>(execute(cmd));
422 template <
typename T>
424 uint16_t delay)
const 426 for (decltype(num) i=0; i < num; i++) {
427 data[i] =
static_cast<T
>(execute(cmd));
428 delayMicroseconds(delay);
436 uint16_t transfer()
const;
443 uint16_t transfer(
SpiData cmd)
const;
void read(Channel ch, T(&data)[N], uint32_t splFreq)
void execute(Command< Channel > cmd, T *data, uint16_t num) const
void read_if(Channel ch, T(&data)[N], uint32_t splFreq, Predicate p)
void readn_if(Channel ch, T *data, uint16_t num, Predicate p) const
void execute(Command< Channel > cmd, T *data, uint16_t num, uint16_t delay) const
void read_if(Channel ch, T(&data)[N], Predicate p) const
void readn(Channel ch, T *data, uint16_t num, uint32_t splFreq)
void readn_if(Channel ch, T *data, uint16_t num, uint32_t splFreq, Predicate p)
void read(Channel ch, T(&data)[N]) const
void readn(Channel ch, T *data, uint16_t num) const