Skip to content

Commit 2b4855b

Browse files
committed
[driver] IMU ADIS16470
1 parent 4dbc2c4 commit 2b4855b

File tree

6 files changed

+758
-12
lines changed

6 files changed

+758
-12
lines changed

README.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -633,93 +633,95 @@ you specific needs.
633633
<tr>
634634
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ad7280a">AD7280A</a></td>
635635
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ad7928">AD7928</a></td>
636+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-adis16470">ADIS16470</a></td>
636637
<td align="center"><a href="https://modm.io/reference/module/modm-driver-adns9800">ADNS9800</a></td>
637638
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ads7843">ADS7843</a></td>
638639
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ads816x">ADS816X</a></td>
639-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ams5915">AMS5915</a></td>
640640
</tr><tr>
641+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ams5915">AMS5915</a></td>
641642
<td align="center"><a href="https://modm.io/reference/module/modm-driver-apa102">APA102</a></td>
642643
<td align="center"><a href="https://modm.io/reference/module/modm-driver-block-device-spi-flash">SPI-FLASH</a></td>
643644
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bme280">BME280</a></td>
644645
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bmp085">BMP085</a></td>
645646
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bno055">BNO055</a></td>
646-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-cat24aa">CAT24AA</a></td>
647647
</tr><tr>
648+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-cat24aa">CAT24AA</a></td>
648649
<td align="center"><a href="https://modm.io/reference/module/modm-driver-drv832x_spi">DRV832X</a></td>
649650
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ds1302">DS1302</a></td>
650651
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ds1631">DS1631</a></td>
651652
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ds18b20">DS18B20</a></td>
652653
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ea_dog">EA-DOG</a></td>
653-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_input">ENCODER-INPUT</a></td>
654654
</tr><tr>
655+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_input">ENCODER-INPUT</a></td>
655656
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_input-bitbang">ENCODER-INPUT-BITBANG</a></td>
656657
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_output-bitbang">ENCODER-OUTPUT-BITBANG</a></td>
657658
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ft245">FT245</a></td>
658659
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ft6x06">FT6X06</a></td>
659660
<td align="center"><a href="https://modm.io/reference/module/modm-driver-gpio_sampler">GPIO-SAMPLER</a></td>
660-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hclax">HCLAx</a></td>
661661
</tr><tr>
662+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hclax">HCLAx</a></td>
662663
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hd44780">HD44780</a></td>
663664
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hmc58x">HMC58x</a></td>
664665
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hmc6343">HMC6343</a></td>
665666
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hx711">HX711</a></td>
666667
<td align="center"><a href="https://modm.io/reference/module/modm-driver-i2c-eeprom">I2C-EEPROM</a></td>
667-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ili9341">ILI9341</a></td>
668668
</tr><tr>
669+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ili9341">ILI9341</a></td>
669670
<td align="center"><a href="https://modm.io/reference/module/modm-driver-is31fl3733">IS31FL3733</a></td>
670671
<td align="center"><a href="https://modm.io/reference/module/modm-driver-itg3200">ITG3200</a></td>
671672
<td align="center"><a href="https://modm.io/reference/module/modm-driver-l3gd20">L3GD20</a></td>
672673
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lan8720a">LAN8720A</a></td>
673674
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lawicel">LAWICEL</a></td>
674-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis302dl">LIS302DL</a></td>
675675
</tr><tr>
676+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis302dl">LIS302DL</a></td>
676677
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis3dsh">LIS3DSH</a></td>
677678
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis3mdl">LIS3MDL</a></td>
678679
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lm75">LM75</a></td>
679680
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lp503x">LP503X</a></td>
680681
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm303a">LSM303A</a></td>
681-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm6ds33">LSM6DS33</a></td>
682682
</tr><tr>
683+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm6ds33">LSM6DS33</a></td>
683684
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ltc2984">LTC2984</a></td>
684685
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max6966">MAX6966</a></td>
685686
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max7219">MAX7219</a></td>
686687
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp23x17">MCP23X17</a></td>
687688
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp2515">MCP2515</a></td>
688-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp7941x">MCP7941X</a></td>
689689
</tr><tr>
690+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp7941x">MCP7941X</a></td>
690691
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mmc5603">MMC5603</a></td>
691692
<td align="center"><a href="https://modm.io/reference/module/modm-driver-nokia5110">NOKIA5110</a></td>
692693
<td align="center"><a href="https://modm.io/reference/module/modm-driver-nrf24">NRF24</a></td>
693694
<td align="center"><a href="https://modm.io/reference/module/modm-driver-parallel_tft_display">TFT-DISPLAY</a></td>
694695
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pat9125el">PAT9125EL</a></td>
695-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca8574">PCA8574</a></td>
696696
</tr><tr>
697+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca8574">PCA8574</a></td>
697698
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca9535">PCA9535</a></td>
698699
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca9548a">PCA9548A</a></td>
699700
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca9685">PCA9685</a></td>
700701
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sh1106">SH1106</a></td>
701702
<td align="center"><a href="https://modm.io/reference/module/modm-driver-siemens_s65">SIEMENS-S65</a></td>
702-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-siemens_s75">SIEMENS-S75</a></td>
703703
</tr><tr>
704+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-siemens_s75">SIEMENS-S75</a></td>
704705
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sk6812">SK6812</a></td>
705706
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sk9822">SK9822</a></td>
706707
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ssd1306">SSD1306</a></td>
707708
<td align="center"><a href="https://modm.io/reference/module/modm-driver-st7586s">ST7586S</a></td>
708709
<td align="center"><a href="https://modm.io/reference/module/modm-driver-stts22h">STTS22H</a></td>
709-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-stusb4500">STUSB4500</a></td>
710710
</tr><tr>
711+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-stusb4500">STUSB4500</a></td>
711712
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sx1276">SX1276</a></td>
712713
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tcs3414">TCS3414</a></td>
713714
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tcs3472">TCS3472</a></td>
714715
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tlc594x">TLC594X</a></td>
715716
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp102">TMP102</a></td>
716-
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp12x">TMP12X</a></td>
717717
</tr><tr>
718+
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp12x">TMP12X</a></td>
718719
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp175">TMP175</a></td>
719720
<td align="center"><a href="https://modm.io/reference/module/modm-driver-touch2046">TOUCH2046</a></td>
720721
<td align="center"><a href="https://modm.io/reference/module/modm-driver-vl53l0">VL53L0</a></td>
721722
<td align="center"><a href="https://modm.io/reference/module/modm-driver-vl6180">VL6180</a></td>
722723
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ws2812">WS2812</a></td>
724+
</tr><tr>
723725
</tr>
724726
</table>
725727
<!--/drivertable-->
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
// coding: utf-8
2+
/*
3+
* Copyright (c) 2022, Raphael Lehmann
4+
*
5+
* This file is part of the modm project.
6+
*
7+
* This Source Code Form is subject to the terms of the Mozilla Public
8+
* License, v. 2.0. If a copy of the MPL was not distributed with this
9+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
10+
*/
11+
// ----------------------------------------------------------------------------
12+
13+
#include "adis16470.hpp"
14+
15+
modm::IOStream&
16+
modm::operator << (modm::IOStream& os, const adis16470::DiagStat_t& c) {
17+
os << "DiagStat(";
18+
if(c & adis16470::DiagStat::ClockError)
19+
os << "ClockError ";
20+
if(c & adis16470::DiagStat::MemoryFailure)
21+
os << "MemoryFailure ";
22+
if(c & adis16470::DiagStat::SensorFailure)
23+
os << "SensorFailure ";
24+
if(c & adis16470::DiagStat::StandbyMode)
25+
os << "StandbyMode ";
26+
if(c & adis16470::DiagStat::SpiCommunicationError)
27+
os << "SpiCommunicationError ";
28+
if(c & adis16470::DiagStat::FlashUpdateFailure)
29+
os << "FlashUpdateFailure ";
30+
if(c & adis16470::DiagStat::DataPathOverrun)
31+
os << "DataPathOverrun ";
32+
os << ")";
33+
return os;
34+
}
35+
36+
modm::IOStream&
37+
modm::operator << (modm::IOStream& os, const adis16470::MscCtrl_t& c) {
38+
os << "MscCtrl(";
39+
if(c & adis16470::MscCtrl::LinearGCompensationGyro)
40+
os << "LinearGCompensationGyro ";
41+
if(c & adis16470::MscCtrl::PointOfPercussionAlign)
42+
os << "PointOfPercussionAlign ";
43+
os << "SyncFunction=";
44+
switch (adis16470::SyncFunction_t::get(c))
45+
{
46+
case adis16470::SyncFunction::PulseSync:
47+
os << "PulseSync ";
48+
break;
49+
case adis16470::SyncFunction::OutputSync:
50+
os << "OutputSync ";
51+
break;
52+
case adis16470::SyncFunction::ScaledSync:
53+
os << "ScaledSync ";
54+
break;
55+
case adis16470::SyncFunction::DirectSync:
56+
os << "DirectSync ";
57+
break;
58+
case adis16470::SyncFunction::InternalClock:
59+
os << "InternalClock ";
60+
break;
61+
default:
62+
os << "? ";
63+
break;
64+
}
65+
if(c & adis16470::MscCtrl::SyncPolarity)
66+
os << "SyncPolarity ";
67+
if(c & adis16470::MscCtrl::DrPolarity)
68+
os << "DrPolarity ";
69+
os << ")";
70+
return os;
71+
}

0 commit comments

Comments
 (0)