Maxim Integrated / Mbed OS MAX11410BOB_Serial_Tester

Dependencies:   MaximTinyTester MAX11410 CmdLine USBDevice

Committer:
whismanoid
Date:
Sun Mar 15 08:05:47 2020 +0000
Revision:
57:dc118969c848
Parent:
56:6e9c52cc9abe
Child:
58:78b67549e069
MAX11410 #157 #158 Hard Fault on Nucleo_F446RE platform due to LEDs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
whismanoid 52:d3fb6f1722bf 1 // /*******************************************************************************
whismanoid 52:d3fb6f1722bf 2 // * Copyright (C) 2020 Maxim Integrated Products, Inc., All Rights Reserved.
whismanoid 52:d3fb6f1722bf 3 // *
whismanoid 52:d3fb6f1722bf 4 // * Permission is hereby granted, free of charge, to any person obtaining a
whismanoid 52:d3fb6f1722bf 5 // * copy of this software and associated documentation files (the "Software"),
whismanoid 52:d3fb6f1722bf 6 // * to deal in the Software without restriction, including without limitation
whismanoid 52:d3fb6f1722bf 7 // * the rights to use, copy, modify, merge, publish, distribute, sublicense,
whismanoid 52:d3fb6f1722bf 8 // * and/or sell copies of the Software, and to permit persons to whom the
whismanoid 52:d3fb6f1722bf 9 // * Software is furnished to do so, subject to the following conditions:
whismanoid 52:d3fb6f1722bf 10 // *
whismanoid 52:d3fb6f1722bf 11 // * The above copyright notice and this permission notice shall be included
whismanoid 52:d3fb6f1722bf 12 // * in all copies or substantial portions of the Software.
whismanoid 52:d3fb6f1722bf 13 // *
whismanoid 52:d3fb6f1722bf 14 // * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
whismanoid 52:d3fb6f1722bf 15 // * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
whismanoid 52:d3fb6f1722bf 16 // * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
whismanoid 52:d3fb6f1722bf 17 // * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
whismanoid 52:d3fb6f1722bf 18 // * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
whismanoid 52:d3fb6f1722bf 19 // * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
whismanoid 52:d3fb6f1722bf 20 // * OTHER DEALINGS IN THE SOFTWARE.
whismanoid 52:d3fb6f1722bf 21 // *
whismanoid 52:d3fb6f1722bf 22 // * Except as contained in this notice, the name of Maxim Integrated
whismanoid 52:d3fb6f1722bf 23 // * Products, Inc. shall not be used except as stated in the Maxim Integrated
whismanoid 52:d3fb6f1722bf 24 // * Products, Inc. Branding Policy.
whismanoid 52:d3fb6f1722bf 25 // *
whismanoid 52:d3fb6f1722bf 26 // * The mere transfer of this software does not imply any licenses
whismanoid 52:d3fb6f1722bf 27 // * of trade secrets, proprietary technology, copyrights, patents,
whismanoid 52:d3fb6f1722bf 28 // * trademarks, maskwork rights, or any other form of intellectual
whismanoid 52:d3fb6f1722bf 29 // * property whatsoever. Maxim Integrated Products, Inc. retains all
whismanoid 52:d3fb6f1722bf 30 // * ownership rights.
whismanoid 52:d3fb6f1722bf 31 // *******************************************************************************
whismanoid 52:d3fb6f1722bf 32 // */
whismanoid 52:d3fb6f1722bf 33 //---------- CODE GENERATOR: testMainCppCodeList
whismanoid 52:d3fb6f1722bf 34 // CODE GENERATOR: example code includes
whismanoid 52:d3fb6f1722bf 35
whismanoid 52:d3fb6f1722bf 36 // example code includes
whismanoid 52:d3fb6f1722bf 37 // standard include for target platform -- Platform_Include_Boilerplate
whismanoid 52:d3fb6f1722bf 38 #include "mbed.h"
whismanoid 52:d3fb6f1722bf 39 // Platforms:
whismanoid 52:d3fb6f1722bf 40 // - MAX32625MBED
whismanoid 52:d3fb6f1722bf 41 // - supports mbed-os-5.11, requires USBDevice library
whismanoid 52:d3fb6f1722bf 42 // - add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/
whismanoid 52:d3fb6f1722bf 43 // - remove max32630fthr library (if present)
whismanoid 52:d3fb6f1722bf 44 // - remove MAX32620FTHR library (if present)
whismanoid 52:d3fb6f1722bf 45 // - MAX32600MBED
whismanoid 52:d3fb6f1722bf 46 // - remove max32630fthr library (if present)
whismanoid 52:d3fb6f1722bf 47 // - remove MAX32620FTHR library (if present)
whismanoid 52:d3fb6f1722bf 48 // - Windows 10 note: Don't connect HDK until you are ready to load new firmware into the board.
whismanoid 52:d3fb6f1722bf 49 // - NUCLEO_F446RE
whismanoid 52:d3fb6f1722bf 50 // - remove USBDevice library
whismanoid 52:d3fb6f1722bf 51 // - remove max32630fthr library (if present)
whismanoid 52:d3fb6f1722bf 52 // - remove MAX32620FTHR library (if present)
whismanoid 52:d3fb6f1722bf 53 // - NUCLEO_F401RE
whismanoid 52:d3fb6f1722bf 54 // - remove USBDevice library
whismanoid 52:d3fb6f1722bf 55 // - remove max32630fthr library (if present)
whismanoid 52:d3fb6f1722bf 56 // - remove MAX32620FTHR library (if present)
whismanoid 52:d3fb6f1722bf 57 // - MAX32630FTHR
whismanoid 52:d3fb6f1722bf 58 // - #include "max32630fthr.h"
whismanoid 52:d3fb6f1722bf 59 // - add http://os.mbed.org/teams/MaximIntegrated/code/max32630fthr/
whismanoid 52:d3fb6f1722bf 60 // - remove MAX32620FTHR library (if present)
whismanoid 52:d3fb6f1722bf 61 // - MAX32620FTHR
whismanoid 52:d3fb6f1722bf 62 // - #include "MAX32620FTHR.h"
whismanoid 52:d3fb6f1722bf 63 // - remove max32630fthr library (if present)
whismanoid 52:d3fb6f1722bf 64 // - add https://os.mbed.com/teams/MaximIntegrated/code/MAX32620FTHR/
whismanoid 52:d3fb6f1722bf 65 // - not tested yet
whismanoid 52:d3fb6f1722bf 66 // - MAX32625PICO
whismanoid 52:d3fb6f1722bf 67 // - remove max32630fthr library (if present)
whismanoid 52:d3fb6f1722bf 68 // - remove MAX32620FTHR library (if present)
whismanoid 52:d3fb6f1722bf 69 // - not tested yet
whismanoid 52:d3fb6f1722bf 70 //
whismanoid 52:d3fb6f1722bf 71 // end Platform_Include_Boilerplate
whismanoid 52:d3fb6f1722bf 72 #include "MAX11410.h"
whismanoid 52:d3fb6f1722bf 73 #include "CmdLine.h"
whismanoid 52:d3fb6f1722bf 74 #include "MaximTinyTester.h"
whismanoid 52:d3fb6f1722bf 75
whismanoid 52:d3fb6f1722bf 76 // optional: serial port
whismanoid 52:d3fb6f1722bf 77 // note: some platforms such as Nucleo-F446RE do not support the USBSerial library.
whismanoid 52:d3fb6f1722bf 78 // In those cases, remove the USBDevice lib from the project and rebuild.
whismanoid 52:d3fb6f1722bf 79 #if defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 80 #include "USBSerial.h"
whismanoid 52:d3fb6f1722bf 81 USBSerial serial; // virtual serial port over USB (DEV connector)
whismanoid 52:d3fb6f1722bf 82 #elif defined(TARGET_MAX32630MBED)
whismanoid 52:d3fb6f1722bf 83 #include "USBSerial.h"
whismanoid 52:d3fb6f1722bf 84 USBSerial serial; // virtual serial port over USB (DEV connector)
whismanoid 52:d3fb6f1722bf 85 #else
whismanoid 52:d3fb6f1722bf 86 //#include "USBSerial.h"
whismanoid 52:d3fb6f1722bf 87 Serial serial(USBTX, USBRX); // tx, rx
whismanoid 52:d3fb6f1722bf 88 #endif
whismanoid 52:d3fb6f1722bf 89
whismanoid 52:d3fb6f1722bf 90 void on_immediate_0x21(); // Unicode (U+0021) ! EXCLAMATION MARK
whismanoid 52:d3fb6f1722bf 91 void on_immediate_0x7b(); // Unicode (U+007B) { LEFT CURLY BRACKET
whismanoid 52:d3fb6f1722bf 92 void on_immediate_0x7d(); // Unicode (U+007D) } RIGHT CURLY BRACKET
whismanoid 52:d3fb6f1722bf 93
whismanoid 52:d3fb6f1722bf 94 #include "CmdLine.h"
whismanoid 52:d3fb6f1722bf 95
whismanoid 52:d3fb6f1722bf 96 # if HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 97 CmdLine cmdLine_DAPLINKserial(DAPLINKserial, "DAPLINK");
whismanoid 52:d3fb6f1722bf 98 # endif // HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 99 CmdLine cmdLine_serial(serial, "serial");
whismanoid 52:d3fb6f1722bf 100
whismanoid 52:d3fb6f1722bf 101
whismanoid 52:d3fb6f1722bf 102 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 103
whismanoid 52:d3fb6f1722bf 104
whismanoid 52:d3fb6f1722bf 105 #if defined(TARGET)
whismanoid 52:d3fb6f1722bf 106 // TARGET_NAME macros from targets/TARGET_Maxim/TARGET_MAX32625/device/mxc_device.h
whismanoid 52:d3fb6f1722bf 107 // Create a string definition for the TARGET
whismanoid 52:d3fb6f1722bf 108 #define STRING_ARG(arg) #arg
whismanoid 52:d3fb6f1722bf 109 #define STRING_NAME(name) STRING_ARG(name)
whismanoid 52:d3fb6f1722bf 110 #define TARGET_NAME STRING_NAME(TARGET)
whismanoid 52:d3fb6f1722bf 111 #elif defined(TARGET_MAX32600)
whismanoid 52:d3fb6f1722bf 112 #define TARGET_NAME "MAX32600"
whismanoid 52:d3fb6f1722bf 113 #elif defined(TARGET_LPC1768)
whismanoid 52:d3fb6f1722bf 114 #define TARGET_NAME "LPC1768"
whismanoid 52:d3fb6f1722bf 115 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 52:d3fb6f1722bf 116 #define TARGET_NAME "NUCLEO_F446RE"
whismanoid 52:d3fb6f1722bf 117 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 52:d3fb6f1722bf 118 #define TARGET_NAME "NUCLEO_F401RE"
whismanoid 52:d3fb6f1722bf 119 #else
whismanoid 52:d3fb6f1722bf 120 #error TARGET NOT DEFINED
whismanoid 52:d3fb6f1722bf 121 #endif
whismanoid 52:d3fb6f1722bf 122 #if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 123 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 124 // TARGET=MAX32630FTHR ARM Cortex-M4F 96MHz 2048kB Flash 512kB SRAM
whismanoid 52:d3fb6f1722bf 125 // +-------------[microUSB]-------------+
whismanoid 52:d3fb6f1722bf 126 // | J1 MAX32630FTHR J2 |
whismanoid 52:d3fb6f1722bf 127 // ______ | [ ] RST GND [ ] |
whismanoid 52:d3fb6f1722bf 128 // ______ | [ ] 3V3 BAT+[ ] |
whismanoid 52:d3fb6f1722bf 129 // ______ | [ ] 1V8 reset SW1 |
whismanoid 52:d3fb6f1722bf 130 // ______ | [ ] GND J4 J3 |
whismanoid 52:d3fb6f1722bf 131 // analogIn0/4 | [a] AIN_0 1.2Vfs (bat) SYS [ ] | switched BAT+
whismanoid 52:d3fb6f1722bf 132 // analogIn1/5 | [a] AIN_1 1.2Vfs PWR [ ] | external pwr btn
whismanoid 52:d3fb6f1722bf 133 // analogIn2 | [a] AIN_2 1.2Vfs +5V VBUS [ ] | USB +5V power
whismanoid 52:d3fb6f1722bf 134 // analogIn3 | [a] AIN_3 1.2Vfs 1-WIRE P4_0 [d] | D0 dig9
whismanoid 52:d3fb6f1722bf 135 // (I2C2.SDA) | [d] P5_7 SDA2 SRN P5_6 [d] | D1 dig8
whismanoid 52:d3fb6f1722bf 136 // (I2C2.SCL) | [d] P6_0 SCL2 SDIO3 P5_5 [d] | D2 dig7
whismanoid 52:d3fb6f1722bf 137 // D13/SCLK | [s] P5_0 SCLK SDIO2 P5_4 [d] | D3 dig6
whismanoid 52:d3fb6f1722bf 138 // D11/MOSI | [s] P5_1 MOSI SSEL P5_3 [d] | D4 dig5
whismanoid 52:d3fb6f1722bf 139 // D12/MISO | [s] P5_2 MISO RTS P3_3 [d] | D5 dig4
whismanoid 52:d3fb6f1722bf 140 // D10/CS | [s] P3_0 RX CTS P3_2 [d] | D6 dig3
whismanoid 52:d3fb6f1722bf 141 // D9 dig0 | [d] P3_1 TX SCL P3_5 [d] | D7 dig2
whismanoid 52:d3fb6f1722bf 142 // ______ | [ ] GND SDA P3_4 [d] | D8 dig1
whismanoid 52:d3fb6f1722bf 143 // | |
whismanoid 52:d3fb6f1722bf 144 // | XIP Flash MAX14690N |
whismanoid 52:d3fb6f1722bf 145 // | XIP_SCLK P1_0 SDA2 P5_7 |
whismanoid 52:d3fb6f1722bf 146 // | XIP_MOSI P1_1 SCL2 P6_0 |
whismanoid 52:d3fb6f1722bf 147 // | XIP_MISO P1_2 PMIC_INIT P3_7 |
whismanoid 52:d3fb6f1722bf 148 // | XIP_SSEL P1_3 MPC P2_7 |
whismanoid 52:d3fb6f1722bf 149 // | XIP_DIO2 P1_4 MON AIN_0 |
whismanoid 52:d3fb6f1722bf 150 // | XIP_DIO3 P1_5 |
whismanoid 52:d3fb6f1722bf 151 // | |
whismanoid 52:d3fb6f1722bf 152 // | PAN1326B MicroSD LED |
whismanoid 52:d3fb6f1722bf 153 // | BT_RX P0_0 SD_SCLK P0_4 r P2_4 |
whismanoid 52:d3fb6f1722bf 154 // | BT_TX P0_1 SD_MOSI P0_5 g P2_5 |
whismanoid 52:d3fb6f1722bf 155 // | BT_CTS P0_2 SD_MISO P0_6 b P2_6 |
whismanoid 52:d3fb6f1722bf 156 // | BT_RTS P0_3 SD_SSEL P0_7 |
whismanoid 52:d3fb6f1722bf 157 // | BT_RST P1_6 DETECT P2_2 |
whismanoid 52:d3fb6f1722bf 158 // | BT_CLK P1_7 SW2 P2_3 |
whismanoid 52:d3fb6f1722bf 159 // +------------------------------------+
whismanoid 52:d3fb6f1722bf 160 // MAX32630FTHR board has MAX14690 PMIC on I2C bus (P5_7 SDA, P6_0 SCL) at slave address 0101_000r 0x50 (or 0x28 for 7 MSbit address).
whismanoid 52:d3fb6f1722bf 161 // MAX32630FTHR board has BMI160 accelerometer on I2C bus (P5_7 SDA, P6_0 SCL) at slave address 1101_000r 0xD0 (or 0x68 for 7 MSbit address).
whismanoid 52:d3fb6f1722bf 162 // AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 163 // AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 164 // AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 165 // AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 166 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 167 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 168 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 169 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 170 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 171 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 172 // AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 173 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 174 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 175 //
whismanoid 52:d3fb6f1722bf 176 #include "max32630fthr.h"
whismanoid 52:d3fb6f1722bf 177 MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
whismanoid 52:d3fb6f1722bf 178 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 52:d3fb6f1722bf 179 // MAX32630FTHR board supports only internal VREF = 1.200V at bypass capacitor C15
whismanoid 52:d3fb6f1722bf 180 const float ADC_FULL_SCALE_VOLTAGE = 1.200;
whismanoid 52:d3fb6f1722bf 181 // Arduino connector
whismanoid 52:d3fb6f1722bf 182 #ifndef A0
whismanoid 52:d3fb6f1722bf 183 #define A0 AIN_0
whismanoid 52:d3fb6f1722bf 184 #endif
whismanoid 52:d3fb6f1722bf 185 #ifndef A1
whismanoid 52:d3fb6f1722bf 186 #define A1 AIN_1
whismanoid 52:d3fb6f1722bf 187 #endif
whismanoid 52:d3fb6f1722bf 188 #ifndef A2
whismanoid 52:d3fb6f1722bf 189 #define A2 AIN_2
whismanoid 52:d3fb6f1722bf 190 #endif
whismanoid 52:d3fb6f1722bf 191 #ifndef A3
whismanoid 52:d3fb6f1722bf 192 #define A3 AIN_3
whismanoid 52:d3fb6f1722bf 193 #endif
whismanoid 52:d3fb6f1722bf 194 #ifndef D0
whismanoid 52:d3fb6f1722bf 195 #define D0 P4_0
whismanoid 52:d3fb6f1722bf 196 #endif
whismanoid 52:d3fb6f1722bf 197 #ifndef D1
whismanoid 52:d3fb6f1722bf 198 #define D1 P5_6
whismanoid 52:d3fb6f1722bf 199 #endif
whismanoid 52:d3fb6f1722bf 200 #ifndef D2
whismanoid 52:d3fb6f1722bf 201 #define D2 P5_5
whismanoid 52:d3fb6f1722bf 202 #endif
whismanoid 52:d3fb6f1722bf 203 #ifndef D3
whismanoid 52:d3fb6f1722bf 204 #define D3 P5_4
whismanoid 52:d3fb6f1722bf 205 #endif
whismanoid 52:d3fb6f1722bf 206 #ifndef D4
whismanoid 52:d3fb6f1722bf 207 #define D4 P5_3
whismanoid 52:d3fb6f1722bf 208 #endif
whismanoid 52:d3fb6f1722bf 209 #ifndef D5
whismanoid 52:d3fb6f1722bf 210 #define D5 P3_3
whismanoid 52:d3fb6f1722bf 211 #endif
whismanoid 52:d3fb6f1722bf 212 #ifndef D6
whismanoid 52:d3fb6f1722bf 213 #define D6 P3_2
whismanoid 52:d3fb6f1722bf 214 #endif
whismanoid 52:d3fb6f1722bf 215 #ifndef D7
whismanoid 52:d3fb6f1722bf 216 #define D7 P3_5
whismanoid 52:d3fb6f1722bf 217 #endif
whismanoid 52:d3fb6f1722bf 218 #ifndef D8
whismanoid 52:d3fb6f1722bf 219 #define D8 P3_4
whismanoid 52:d3fb6f1722bf 220 #endif
whismanoid 52:d3fb6f1722bf 221 #ifndef D9
whismanoid 52:d3fb6f1722bf 222 #define D9 P3_1
whismanoid 52:d3fb6f1722bf 223 #endif
whismanoid 52:d3fb6f1722bf 224 #ifndef D10
whismanoid 52:d3fb6f1722bf 225 #define D10 P3_0
whismanoid 52:d3fb6f1722bf 226 #endif
whismanoid 52:d3fb6f1722bf 227 #ifndef D11
whismanoid 52:d3fb6f1722bf 228 #define D11 P5_1
whismanoid 52:d3fb6f1722bf 229 #endif
whismanoid 52:d3fb6f1722bf 230 #ifndef D12
whismanoid 52:d3fb6f1722bf 231 #define D12 P5_2
whismanoid 52:d3fb6f1722bf 232 #endif
whismanoid 52:d3fb6f1722bf 233 #ifndef D13
whismanoid 52:d3fb6f1722bf 234 #define D13 P5_0
whismanoid 52:d3fb6f1722bf 235 #endif
whismanoid 52:d3fb6f1722bf 236 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 237 #elif defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 238 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 239 // TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 52:d3fb6f1722bf 240 // +-------------------------------------+
whismanoid 52:d3fb6f1722bf 241 // | MAX32625MBED Arduino UNO header |
whismanoid 52:d3fb6f1722bf 242 // | |
whismanoid 52:d3fb6f1722bf 243 // | A5/SCL[ ] | P1_7 dig15
whismanoid 52:d3fb6f1722bf 244 // | A4/SDA[ ] | P1_6 dig14
whismanoid 52:d3fb6f1722bf 245 // | AREF=N/C[ ] |
whismanoid 52:d3fb6f1722bf 246 // | GND[ ] |
whismanoid 52:d3fb6f1722bf 247 // | [ ]N/C SCK/13[ ] | P1_0 dig13
whismanoid 52:d3fb6f1722bf 248 // | [ ]IOREF=3V3 MISO/12[ ] | P1_2 dig12
whismanoid 52:d3fb6f1722bf 249 // | [ ]RST MOSI/11[ ]~| P1_1 dig11
whismanoid 52:d3fb6f1722bf 250 // | [ ]3V3 CS/10[ ]~| P1_3 dig10
whismanoid 52:d3fb6f1722bf 251 // | [ ]5V0 9[ ]~| P1_5 dig9
whismanoid 52:d3fb6f1722bf 252 // | [ ]GND 8[ ] | P1_4 dig8
whismanoid 52:d3fb6f1722bf 253 // | [ ]GND |
whismanoid 52:d3fb6f1722bf 254 // | [ ]Vin 7[ ] | P0_7 dig7
whismanoid 52:d3fb6f1722bf 255 // | 6[ ]~| P0_6 dig6
whismanoid 52:d3fb6f1722bf 256 // AIN_0 | [ ]A0 5[ ]~| P0_5 dig5
whismanoid 52:d3fb6f1722bf 257 // AIN_1 | [ ]A1 4[ ] | P0_4 dig4
whismanoid 52:d3fb6f1722bf 258 // AIN_2 | [ ]A2 INT1/3[ ]~| P0_3 dig3
whismanoid 52:d3fb6f1722bf 259 // AIN_3 | [ ]A3 INT0/2[ ] | P0_2 dig2
whismanoid 52:d3fb6f1722bf 260 // dig16 P3_4 | [ ]A4/SDA RST SCK MISO TX>1[ ] | P0_1 dig1
whismanoid 52:d3fb6f1722bf 261 // dig17 P3_5 | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | P0_0 dig0
whismanoid 52:d3fb6f1722bf 262 // | [ ] [ ] [ ] |
whismanoid 52:d3fb6f1722bf 263 // | UNO_R3 GND MOSI 5V ____________/
whismanoid 52:d3fb6f1722bf 264 // \_______________________/
whismanoid 52:d3fb6f1722bf 265 //
whismanoid 52:d3fb6f1722bf 266 // +------------------------+
whismanoid 52:d3fb6f1722bf 267 // | |
whismanoid 52:d3fb6f1722bf 268 // | MicroSD LED |
whismanoid 52:d3fb6f1722bf 269 // | SD_SCLK P2_4 r P3_0 |
whismanoid 52:d3fb6f1722bf 270 // | SD_MOSI P2_5 g P3_1 |
whismanoid 52:d3fb6f1722bf 271 // | SD_MISO P2_6 b P3_2 |
whismanoid 52:d3fb6f1722bf 272 // | SD_SSEL P2_7 y P3_3 |
whismanoid 52:d3fb6f1722bf 273 // | |
whismanoid 52:d3fb6f1722bf 274 // | DAPLINK BUTTONS |
whismanoid 52:d3fb6f1722bf 275 // | TX P2_1 SW3 P2_3 |
whismanoid 52:d3fb6f1722bf 276 // | RX P2_0 SW2 P2_2 |
whismanoid 52:d3fb6f1722bf 277 // +------------------------+
whismanoid 52:d3fb6f1722bf 278 //
whismanoid 52:d3fb6f1722bf 279 // AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 280 // AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 281 // AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 282 // AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 283 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 284 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 285 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 286 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 287 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 288 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 289 // AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 290 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 291 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 292 //
whismanoid 52:d3fb6f1722bf 293 //#include "max32625mbed.h" // ?
whismanoid 52:d3fb6f1722bf 294 //MAX32625MBED mbed(MAX32625MBED::VIO_3V3); // ?
whismanoid 52:d3fb6f1722bf 295 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 52:d3fb6f1722bf 296 // MAX32630FTHR board supports only internal VREF = 1.200V at bypass capacitor C15
whismanoid 52:d3fb6f1722bf 297 const float ADC_FULL_SCALE_VOLTAGE = 1.200; // TODO: ADC_FULL_SCALE_VOLTAGE Pico?
whismanoid 52:d3fb6f1722bf 298 // Arduino connector
whismanoid 52:d3fb6f1722bf 299 #ifndef A0
whismanoid 52:d3fb6f1722bf 300 #define A0 AIN_0
whismanoid 52:d3fb6f1722bf 301 #endif
whismanoid 52:d3fb6f1722bf 302 #ifndef A1
whismanoid 52:d3fb6f1722bf 303 #define A1 AIN_1
whismanoid 52:d3fb6f1722bf 304 #endif
whismanoid 52:d3fb6f1722bf 305 #ifndef A2
whismanoid 52:d3fb6f1722bf 306 #define A2 AIN_2
whismanoid 52:d3fb6f1722bf 307 #endif
whismanoid 52:d3fb6f1722bf 308 #ifndef A3
whismanoid 52:d3fb6f1722bf 309 #define A3 AIN_3
whismanoid 52:d3fb6f1722bf 310 #endif
whismanoid 52:d3fb6f1722bf 311 #ifndef D0
whismanoid 52:d3fb6f1722bf 312 #define D0 P0_0
whismanoid 52:d3fb6f1722bf 313 #endif
whismanoid 52:d3fb6f1722bf 314 #ifndef D1
whismanoid 52:d3fb6f1722bf 315 #define D1 P0_1
whismanoid 52:d3fb6f1722bf 316 #endif
whismanoid 52:d3fb6f1722bf 317 #ifndef D2
whismanoid 52:d3fb6f1722bf 318 #define D2 P0_2
whismanoid 52:d3fb6f1722bf 319 #endif
whismanoid 52:d3fb6f1722bf 320 #ifndef D3
whismanoid 52:d3fb6f1722bf 321 #define D3 P0_3
whismanoid 52:d3fb6f1722bf 322 #endif
whismanoid 52:d3fb6f1722bf 323 #ifndef D4
whismanoid 52:d3fb6f1722bf 324 #define D4 P0_4
whismanoid 52:d3fb6f1722bf 325 #endif
whismanoid 52:d3fb6f1722bf 326 #ifndef D5
whismanoid 52:d3fb6f1722bf 327 #define D5 P0_5
whismanoid 52:d3fb6f1722bf 328 #endif
whismanoid 52:d3fb6f1722bf 329 #ifndef D6
whismanoid 52:d3fb6f1722bf 330 #define D6 P0_6
whismanoid 52:d3fb6f1722bf 331 #endif
whismanoid 52:d3fb6f1722bf 332 #ifndef D7
whismanoid 52:d3fb6f1722bf 333 #define D7 P0_7
whismanoid 52:d3fb6f1722bf 334 #endif
whismanoid 52:d3fb6f1722bf 335 #ifndef D8
whismanoid 52:d3fb6f1722bf 336 #define D8 P1_4
whismanoid 52:d3fb6f1722bf 337 #endif
whismanoid 52:d3fb6f1722bf 338 #ifndef D9
whismanoid 52:d3fb6f1722bf 339 #define D9 P1_5
whismanoid 52:d3fb6f1722bf 340 #endif
whismanoid 52:d3fb6f1722bf 341 #ifndef D10
whismanoid 52:d3fb6f1722bf 342 #define D10 P1_3
whismanoid 52:d3fb6f1722bf 343 #endif
whismanoid 52:d3fb6f1722bf 344 #ifndef D11
whismanoid 52:d3fb6f1722bf 345 #define D11 P1_1
whismanoid 52:d3fb6f1722bf 346 #endif
whismanoid 52:d3fb6f1722bf 347 #ifndef D12
whismanoid 52:d3fb6f1722bf 348 #define D12 P1_2
whismanoid 52:d3fb6f1722bf 349 #endif
whismanoid 52:d3fb6f1722bf 350 #ifndef D13
whismanoid 52:d3fb6f1722bf 351 #define D13 P1_0
whismanoid 52:d3fb6f1722bf 352 #endif
whismanoid 52:d3fb6f1722bf 353 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 354 #elif defined(TARGET_MAX32600)
whismanoid 52:d3fb6f1722bf 355 // target MAX32600
whismanoid 52:d3fb6f1722bf 356 //
whismanoid 52:d3fb6f1722bf 357 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0
whismanoid 52:d3fb6f1722bf 358 const float ADC_FULL_SCALE_VOLTAGE = 1.500;
whismanoid 52:d3fb6f1722bf 359 //
whismanoid 52:d3fb6f1722bf 360 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 361 #elif defined(TARGET_MAX32620FTHR)
whismanoid 52:d3fb6f1722bf 362 #warning "TARGET_MAX32620FTHR not previously tested; need to define pins..."
whismanoid 52:d3fb6f1722bf 363 #include "MAX32620FTHR.h"
whismanoid 52:d3fb6f1722bf 364 // Initialize I/O voltages on MAX32620FTHR board
whismanoid 52:d3fb6f1722bf 365 MAX32620FTHR fthr(MAX32620FTHR::VIO_3V3);
whismanoid 52:d3fb6f1722bf 366 //#define USE_LEDS 0 ?
whismanoid 52:d3fb6f1722bf 367 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 52:d3fb6f1722bf 368 #warning "TARGET_MAX32620FTHR not previously tested; need to verify ADC_FULL_SCALE_VOLTAGE..."
whismanoid 52:d3fb6f1722bf 369 const float ADC_FULL_SCALE_VOLTAGE = 1.200;
whismanoid 52:d3fb6f1722bf 370 //
whismanoid 52:d3fb6f1722bf 371 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 372 #elif defined(TARGET_MAX32625PICO)
whismanoid 52:d3fb6f1722bf 373 #warning "TARGET_MAX32625PICO not previously tested; need to define pins..."
whismanoid 52:d3fb6f1722bf 374 //#define USE_LEDS 0 ?
whismanoid 52:d3fb6f1722bf 375 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1
whismanoid 52:d3fb6f1722bf 376 #warning "TARGET_MAX32625PICO not previously tested; need to verify ADC_FULL_SCALE_VOLTAGE..."
whismanoid 52:d3fb6f1722bf 377 const float ADC_FULL_SCALE_VOLTAGE = 1.200;
whismanoid 52:d3fb6f1722bf 378 //
whismanoid 52:d3fb6f1722bf 379 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 380 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 52:d3fb6f1722bf 381 // TODO1: target NUCLEO_F446RE
whismanoid 52:d3fb6f1722bf 382 //
whismanoid 52:d3fb6f1722bf 383 // USER_BUTTON PC13
whismanoid 52:d3fb6f1722bf 384 // LED1 is shared with SPI_SCK on NUCLEO_F446RE PA_5, so don't use LED1.
whismanoid 52:d3fb6f1722bf 385 #define USE_LEDS 0
whismanoid 52:d3fb6f1722bf 386 // SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK);
whismanoid 52:d3fb6f1722bf 387 // Serial serial(SERIAL_TX, SERIAL_RX);
whismanoid 52:d3fb6f1722bf 388 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0
whismanoid 52:d3fb6f1722bf 389 const float ADC_FULL_SCALE_VOLTAGE = 3.300; // TODO: ADC_FULL_SCALE_VOLTAGE Pico?
whismanoid 52:d3fb6f1722bf 390 //
whismanoid 52:d3fb6f1722bf 391 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 392 #elif defined(TARGET_LPC1768)
whismanoid 52:d3fb6f1722bf 393 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 394 // TARGET=LPC1768 ARM Cortex-M3 100 MHz 512kB flash 64kB SRAM
whismanoid 52:d3fb6f1722bf 395 // +-------------[microUSB]-------------+
whismanoid 52:d3fb6f1722bf 396 // ______ | [ ] GND +3.3V VOUT [ ] | ______
whismanoid 52:d3fb6f1722bf 397 // ______ | [ ] 4.5V<VIN<9.0V +5.0V VU [ ] | ______
whismanoid 52:d3fb6f1722bf 398 // ______ | [ ] VB USB.IF- [ ] | ______
whismanoid 52:d3fb6f1722bf 399 // ______ | [ ] nR USB.IF+ [ ] | ______
whismanoid 52:d3fb6f1722bf 400 // digitalInOut0 | [ ] p5 MOSI ETHERNET.RD- [ ] | ______
whismanoid 52:d3fb6f1722bf 401 // digitalInOut1 | [ ] p6 MISO ETHERNET.RD+ [ ] | ______
whismanoid 52:d3fb6f1722bf 402 // digitalInOut2 | [ ] p7 SCLK ETHERNET.TD- [ ] | ______
whismanoid 52:d3fb6f1722bf 403 // digitalInOut3 | [ ] p8 ETHERNET.TD+ [ ] | ______
whismanoid 52:d3fb6f1722bf 404 // digitalInOut4 | [ ] p9 TX SDA USB.D- [ ] | ______
whismanoid 52:d3fb6f1722bf 405 // digitalInOut5 | [ ] p10 RX SCL USB.D+ [ ] | ______
whismanoid 52:d3fb6f1722bf 406 // digitalInOut6 | [ ] p11 MOSI CAN-RD p30 [ ] | digitalInOut13
whismanoid 52:d3fb6f1722bf 407 // digitalInOut7 | [ ] p12 MISO CAN-TD p29 [ ] | digitalInOut12
whismanoid 52:d3fb6f1722bf 408 // digitalInOut8 | [ ] p13 TX SCLK SDA TX p28 [ ] | digitalInOut11
whismanoid 52:d3fb6f1722bf 409 // digitalInOut9 | [ ] p14 RX SCL RX p27 [ ] | digitalInOut10
whismanoid 52:d3fb6f1722bf 410 // analogIn0 | [ ] p15 AIN0 3.3Vfs PWM1 p26 [ ] | pwmDriver1
whismanoid 52:d3fb6f1722bf 411 // analogIn1 | [ ] p16 AIN1 3.3Vfs PWM2 p25 [ ] | pwmDriver2
whismanoid 52:d3fb6f1722bf 412 // analogIn2 | [ ] p17 AIN2 3.3Vfs PWM3 p24 [ ] | pwmDriver3
whismanoid 52:d3fb6f1722bf 413 // analogIn3 | [ ] p18 AIN3 AOUT PWM4 p23 [ ] | pwmDriver4
whismanoid 52:d3fb6f1722bf 414 // analogIn4 | [ ] p19 AIN4 3.3Vfs PWM5 p22 [ ] | pwmDriver5
whismanoid 52:d3fb6f1722bf 415 // analogIn5 | [ ] p20 AIN5 3.3Vfs PWM6 p21 [ ] | pwmDriver6
whismanoid 52:d3fb6f1722bf 416 // +------------------------------------+
whismanoid 52:d3fb6f1722bf 417 // AIN6 = P0.3 = TGT_SBL_RXD?
whismanoid 52:d3fb6f1722bf 418 // AIN7 = P0.2 = TGT_SBL_TXD?
whismanoid 52:d3fb6f1722bf 419 //
whismanoid 52:d3fb6f1722bf 420 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 421 // LPC1768 board uses VREF = 3.300V +A3,3V thru L1 to bypass capacitor C14
whismanoid 52:d3fb6f1722bf 422 #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0
whismanoid 52:d3fb6f1722bf 423 const float ADC_FULL_SCALE_VOLTAGE = 3.300;
whismanoid 52:d3fb6f1722bf 424 #else // not defined(TARGET_LPC1768 etc.)
whismanoid 52:d3fb6f1722bf 425 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 426 // unknown target
whismanoid 52:d3fb6f1722bf 427 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 428 #endif // target definition
whismanoid 52:d3fb6f1722bf 429
whismanoid 52:d3fb6f1722bf 430
whismanoid 52:d3fb6f1722bf 431 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 432 // Option to dedicate SPI port pins
whismanoid 52:d3fb6f1722bf 433 //
whismanoid 52:d3fb6f1722bf 434 // SPI2_MOSI = P5_1
whismanoid 52:d3fb6f1722bf 435 // SPI2_MISO = P5_2
whismanoid 52:d3fb6f1722bf 436 // SPI2_SCK = P5_0
whismanoid 52:d3fb6f1722bf 437 // On this board I'm using P3_0 as spi_cs
whismanoid 52:d3fb6f1722bf 438 // SPI2_SS = P5_3
whismanoid 52:d3fb6f1722bf 439 // SPI2_SDIO2 = P5_4
whismanoid 52:d3fb6f1722bf 440 // SPI2_SDIO3 = P5_5
whismanoid 52:d3fb6f1722bf 441 // SPI2_SRN = P5_6
whismanoid 52:d3fb6f1722bf 442 //
whismanoid 52:d3fb6f1722bf 443 #ifndef HAS_SPI
whismanoid 52:d3fb6f1722bf 444 #define HAS_SPI 1
whismanoid 52:d3fb6f1722bf 445 #endif
whismanoid 52:d3fb6f1722bf 446 #if HAS_SPI
whismanoid 52:d3fb6f1722bf 447 #define SPI_MODE0 0
whismanoid 52:d3fb6f1722bf 448 #define SPI_MODE1 1
whismanoid 52:d3fb6f1722bf 449 #define SPI_MODE2 2
whismanoid 52:d3fb6f1722bf 450 #define SPI_MODE3 3
whismanoid 52:d3fb6f1722bf 451 //
whismanoid 52:d3fb6f1722bf 452 #if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 453 // Before setting global variables g_SPI_SCLK_Hz and g_SPI_dataMode,
whismanoid 52:d3fb6f1722bf 454 // workaround for TARGET_MAX32630 SPI_MODE2 SPI_MODE3 problem (issue #30)
whismanoid 52:d3fb6f1722bf 455 #warning "MAX32630 SPI workaround..."
whismanoid 52:d3fb6f1722bf 456 // replace SPI_MODE2 (CPOL=1,CPHA=0) with SPI_MODE1 (CPOL=0,CPHA=1) Falling Edge stable
whismanoid 52:d3fb6f1722bf 457 // replace SPI_MODE3 (CPOL=1,CPHA=1) with SPI_MODE0 (CPOL=0,CPHA=0) Rising Edge stable
whismanoid 52:d3fb6f1722bf 458 # if ((SPI_dataMode) == (SPI_MODE2))
whismanoid 52:d3fb6f1722bf 459 #warning "MAX32630 SPI_MODE2 workaround, changing SPI_dataMode to SPI_MODE1..."
whismanoid 52:d3fb6f1722bf 460 // SPI_dataMode SPI_MODE2 // CPOL=1,CPHA=0: Falling Edge stable; SCLK idle High
whismanoid 52:d3fb6f1722bf 461 # undef SPI_dataMode
whismanoid 52:d3fb6f1722bf 462 # define SPI_dataMode SPI_MODE1 // CPOL=0,CPHA=1: Falling Edge stable; SCLK idle Low
whismanoid 52:d3fb6f1722bf 463 # elif ((SPI_dataMode) == (SPI_MODE3))
whismanoid 52:d3fb6f1722bf 464 #warning "MAX32630 SPI_MODE3 workaround, changing SPI_dataMode to SPI_MODE0..."
whismanoid 52:d3fb6f1722bf 465 // SPI_dataMode SPI_MODE3 // CPOL=1,CPHA=1: Rising Edge stable; SCLK idle High
whismanoid 52:d3fb6f1722bf 466 # undef SPI_dataMode
whismanoid 52:d3fb6f1722bf 467 # define SPI_dataMode SPI_MODE0 // CPOL=0,CPHA=0: Rising Edge stable; SCLK idle Low
whismanoid 52:d3fb6f1722bf 468 # endif // workaround for TARGET_MAX32630 SPI_MODE2 SPI_MODE3 problem
whismanoid 52:d3fb6f1722bf 469 // workaround for TARGET_MAX32630 SPI_MODE2 SPI_MODE3 problem (issue #30)
whismanoid 52:d3fb6f1722bf 470 // limit SPI SCLK speed to 6MHz or less
whismanoid 52:d3fb6f1722bf 471 # if ((SPI_SCLK_Hz) > (6000000))
whismanoid 52:d3fb6f1722bf 472 #warning "MAX32630 SPI speed workaround, changing SPI_SCLK_Hz to 6000000 or 6MHz..."
whismanoid 52:d3fb6f1722bf 473 # undef SPI_SCLK_Hz
whismanoid 52:d3fb6f1722bf 474 # define SPI_SCLK_Hz 6000000 // 6MHz
whismanoid 52:d3fb6f1722bf 475 # endif
whismanoid 52:d3fb6f1722bf 476 #endif
whismanoid 52:d3fb6f1722bf 477 //
whismanoid 53:bf2793cd194b 478 uint32_t g_SPI_SCLK_Hz = 24000000; // platform limit 24MHz intSPI_SCLK_Platform_Max_MHz * 1000000
whismanoid 52:d3fb6f1722bf 479 // TODO1: validate g_SPI_SCLK_Hz against system clock frequency SystemCoreClock F_CPU
whismanoid 52:d3fb6f1722bf 480 #if defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 52:d3fb6f1722bf 481 // Nucleo SPI frequency isn't working quite as expected...
whismanoid 52:d3fb6f1722bf 482 // Looks like STMF4 has an spi clock prescaler (2,4,8,16,32,64,128,256)
whismanoid 52:d3fb6f1722bf 483 // so 180MHz->[90.0, 45.0, 22.5, 11.25, 5.625, 2.8125, 1.40625, 0.703125]
whismanoid 52:d3fb6f1722bf 484 // %SC SCLK=1MHz sets spi frequency 703.125kHz
whismanoid 52:d3fb6f1722bf 485 // %SC SCLK=2MHz sets spi frequency 1.40625MHz
whismanoid 52:d3fb6f1722bf 486 // %SC SCLK=3MHz sets spi frequency 2.8125MHz
whismanoid 52:d3fb6f1722bf 487 // %SC SCLK=6MHz sets spi frequency 5.625MHz
whismanoid 52:d3fb6f1722bf 488 // %SC SCLK=12MHz sets spi frequency 11.25MHz
whismanoid 52:d3fb6f1722bf 489 // %SC SCLK=23MHz sets spi frequency 22.5MHz
whismanoid 52:d3fb6f1722bf 490 // %SC SCLK=45MHz sets spi frequency 45.0MHz
whismanoid 52:d3fb6f1722bf 491 // Don't know why I can't reach spi frequency 90.0MHz, but ok whatever.
whismanoid 52:d3fb6f1722bf 492 const uint32_t limit_min_SPI_SCLK_divisor = 2;
whismanoid 52:d3fb6f1722bf 493 const uint32_t limit_max_SPI_SCLK_divisor = 256;
whismanoid 52:d3fb6f1722bf 494 // not really a divisor, just a powers-of-two prescaler with no intermediate divisors.
whismanoid 52:d3fb6f1722bf 495 #else
whismanoid 52:d3fb6f1722bf 496 const uint32_t limit_min_SPI_SCLK_divisor = 2;
whismanoid 52:d3fb6f1722bf 497 const uint32_t limit_max_SPI_SCLK_divisor = 8191;
whismanoid 52:d3fb6f1722bf 498 #endif
whismanoid 52:d3fb6f1722bf 499 const uint32_t limit_max_SPI_SCLK_Hz = (SystemCoreClock / limit_min_SPI_SCLK_divisor); // F_CPU / 2; // 8MHz / 2 = 4MHz
whismanoid 52:d3fb6f1722bf 500 const uint32_t limit_min_SPI_SCLK_Hz = (SystemCoreClock / limit_max_SPI_SCLK_divisor); // F_CPU / 128; // 8MHz / 128 = 62.5kHz
whismanoid 52:d3fb6f1722bf 501 //
whismanoid 52:d3fb6f1722bf 502 uint8_t g_SPI_dataMode = SPI_MODE0; // TODO: missing definition SPI_dataMode;
whismanoid 52:d3fb6f1722bf 503 uint8_t g_SPI_cs_state = 1;
whismanoid 52:d3fb6f1722bf 504 //
whismanoid 52:d3fb6f1722bf 505 #endif
whismanoid 52:d3fb6f1722bf 506
whismanoid 52:d3fb6f1722bf 507
whismanoid 54:ba810c1d6264 508 // uncrustify-0.66.1 *INDENT-OFF*
whismanoid 54:ba810c1d6264 509 //--------------------------------------------------
whismanoid 54:ba810c1d6264 510 // Declare the DigitalInOut GPIO pins
whismanoid 54:ba810c1d6264 511 // Optional digitalInOut support. If there is only one it should be digitalInOut1.
whismanoid 54:ba810c1d6264 512 // D) Digital High/Low/Input Pin
whismanoid 54:ba810c1d6264 513 #if defined(TARGET_MAX32630)
whismanoid 54:ba810c1d6264 514 // +-------------[microUSB]-------------+
whismanoid 54:ba810c1d6264 515 // | J1 MAX32630FTHR J2 |
whismanoid 54:ba810c1d6264 516 // | [ ] RST GND [ ] |
whismanoid 54:ba810c1d6264 517 // | [ ] 3V3 BAT+[ ] |
whismanoid 54:ba810c1d6264 518 // | [ ] 1V8 reset SW1 |
whismanoid 54:ba810c1d6264 519 // | [ ] GND J4 J3 |
whismanoid 54:ba810c1d6264 520 // | [ ] AIN_0 1.2Vfs (bat) SYS [ ] |
whismanoid 54:ba810c1d6264 521 // | [ ] AIN_1 1.2Vfs PWR [ ] |
whismanoid 54:ba810c1d6264 522 // | [ ] AIN_2 1.2Vfs +5V VBUS [ ] |
whismanoid 54:ba810c1d6264 523 // | [ ] AIN_3 1.2Vfs 1-WIRE P4_0 [ ] | dig9
whismanoid 54:ba810c1d6264 524 // dig10 | [x] P5_7 SDA2 SRN P5_6 [ ] | dig8
whismanoid 54:ba810c1d6264 525 // dig11 | [x] P6_0 SCL2 SDIO3 P5_5 [ ] | dig7
whismanoid 54:ba810c1d6264 526 // dig12 | [x] P5_0 SCLK SDIO2 P5_4 [ ] | dig6
whismanoid 54:ba810c1d6264 527 // dig13 | [x] P5_1 MOSI SSEL P5_3 [x] | dig5
whismanoid 54:ba810c1d6264 528 // dig14 | [ ] P5_2 MISO RTS P3_3 [ ] | dig4
whismanoid 54:ba810c1d6264 529 // dig15 | [ ] P3_0 RX CTS P3_2 [ ] | dig3
whismanoid 54:ba810c1d6264 530 // dig0 | [ ] P3_1 TX SCL P3_5 [x] | dig2
whismanoid 54:ba810c1d6264 531 // | [ ] GND SDA P3_4 [x] | dig1
whismanoid 54:ba810c1d6264 532 // +------------------------------------+
whismanoid 54:ba810c1d6264 533 #define HAS_digitalInOut0 1 // P3_1 TARGET_MAX32630 J1.15
whismanoid 54:ba810c1d6264 534 #define HAS_digitalInOut1 1 // P3_4 TARGET_MAX32630 J3.12
whismanoid 54:ba810c1d6264 535 #define HAS_digitalInOut2 1 // P3_5 TARGET_MAX32630 J3.11
whismanoid 54:ba810c1d6264 536 #define HAS_digitalInOut3 1 // P3_2 TARGET_MAX32630 J3.10
whismanoid 54:ba810c1d6264 537 #define HAS_digitalInOut4 1 // P3_3 TARGET_MAX32630 J3.9
whismanoid 54:ba810c1d6264 538 #define HAS_digitalInOut5 1 // P5_3 TARGET_MAX32630 J3.8
whismanoid 54:ba810c1d6264 539 #define HAS_digitalInOut6 1 // P5_4 TARGET_MAX32630 J3.7
whismanoid 54:ba810c1d6264 540 #define HAS_digitalInOut7 1 // P5_5 TARGET_MAX32630 J3.6
whismanoid 54:ba810c1d6264 541 #define HAS_digitalInOut8 1 // P5_6 TARGET_MAX32630 J3.5
whismanoid 54:ba810c1d6264 542 #define HAS_digitalInOut9 1 // P4_0 TARGET_MAX32630 J3.4
whismanoid 54:ba810c1d6264 543 #if HAS_I2C
whismanoid 54:ba810c1d6264 544 // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut
whismanoid 54:ba810c1d6264 545 #define HAS_digitalInOut10 0 // P5_7 TARGET_MAX32630 J1.9
whismanoid 54:ba810c1d6264 546 #define HAS_digitalInOut11 0 // P6_0 TARGET_MAX32630 J1.10
whismanoid 54:ba810c1d6264 547 #else // HAS_I2C
whismanoid 54:ba810c1d6264 548 #define HAS_digitalInOut10 1 // P5_7 TARGET_MAX32630 J1.9
whismanoid 54:ba810c1d6264 549 #define HAS_digitalInOut11 1 // P6_0 TARGET_MAX32630 J1.10
whismanoid 54:ba810c1d6264 550 #endif // HAS_I2C
whismanoid 54:ba810c1d6264 551 #if HAS_SPI
whismanoid 54:ba810c1d6264 552 // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 54:ba810c1d6264 553 #define HAS_digitalInOut12 0 // P5_0 TARGET_MAX32630 J1.11
whismanoid 54:ba810c1d6264 554 #define HAS_digitalInOut13 0 // P5_1 TARGET_MAX32630 J1.12
whismanoid 54:ba810c1d6264 555 #define HAS_digitalInOut14 0 // P5_2 TARGET_MAX32630 J1.13
whismanoid 54:ba810c1d6264 556 #define HAS_digitalInOut15 0 // P3_0 TARGET_MAX32630 J1.14
whismanoid 54:ba810c1d6264 557 #else // HAS_SPI
whismanoid 54:ba810c1d6264 558 #define HAS_digitalInOut12 1 // P5_0 TARGET_MAX32630 J1.11
whismanoid 54:ba810c1d6264 559 #define HAS_digitalInOut13 1 // P5_1 TARGET_MAX32630 J1.12
whismanoid 54:ba810c1d6264 560 #define HAS_digitalInOut14 1 // P5_2 TARGET_MAX32630 J1.13
whismanoid 54:ba810c1d6264 561 #define HAS_digitalInOut15 1 // P3_0 TARGET_MAX32630 J1.14
whismanoid 54:ba810c1d6264 562 #endif // HAS_SPI
whismanoid 54:ba810c1d6264 563 #if HAS_digitalInOut0
whismanoid 54:ba810c1d6264 564 DigitalInOut digitalInOut0(P3_1, PIN_INPUT, PullUp, 1); // P3_1 TARGET_MAX32630 J1.15
whismanoid 54:ba810c1d6264 565 #endif
whismanoid 54:ba810c1d6264 566 #if HAS_digitalInOut1
whismanoid 54:ba810c1d6264 567 DigitalInOut digitalInOut1(P3_4, PIN_INPUT, PullUp, 1); // P3_4 TARGET_MAX32630 J3.12
whismanoid 54:ba810c1d6264 568 #endif
whismanoid 54:ba810c1d6264 569 #if HAS_digitalInOut2
whismanoid 54:ba810c1d6264 570 DigitalInOut digitalInOut2(P3_5, PIN_INPUT, PullUp, 1); // P3_5 TARGET_MAX32630 J3.11
whismanoid 54:ba810c1d6264 571 #endif
whismanoid 54:ba810c1d6264 572 #if HAS_digitalInOut3
whismanoid 54:ba810c1d6264 573 DigitalInOut digitalInOut3(P3_2, PIN_INPUT, PullUp, 1); // P3_2 TARGET_MAX32630 J3.10
whismanoid 54:ba810c1d6264 574 #endif
whismanoid 54:ba810c1d6264 575 #if HAS_digitalInOut4
whismanoid 54:ba810c1d6264 576 DigitalInOut digitalInOut4(P3_3, PIN_INPUT, PullUp, 1); // P3_3 TARGET_MAX32630 J3.9
whismanoid 54:ba810c1d6264 577 #endif
whismanoid 54:ba810c1d6264 578 #if HAS_digitalInOut5
whismanoid 54:ba810c1d6264 579 DigitalInOut digitalInOut5(P5_3, PIN_INPUT, PullUp, 1); // P5_3 TARGET_MAX32630 J3.8
whismanoid 54:ba810c1d6264 580 #endif
whismanoid 54:ba810c1d6264 581 #if HAS_digitalInOut6
whismanoid 54:ba810c1d6264 582 DigitalInOut digitalInOut6(P5_4, PIN_INPUT, PullUp, 1); // P5_4 TARGET_MAX32630 J3.7
whismanoid 54:ba810c1d6264 583 #endif
whismanoid 54:ba810c1d6264 584 #if HAS_digitalInOut7
whismanoid 54:ba810c1d6264 585 DigitalInOut digitalInOut7(P5_5, PIN_INPUT, PullUp, 1); // P5_5 TARGET_MAX32630 J3.6
whismanoid 54:ba810c1d6264 586 #endif
whismanoid 54:ba810c1d6264 587 #if HAS_digitalInOut8
whismanoid 54:ba810c1d6264 588 DigitalInOut digitalInOut8(P5_6, PIN_INPUT, PullUp, 1); // P5_6 TARGET_MAX32630 J3.5
whismanoid 54:ba810c1d6264 589 #endif
whismanoid 54:ba810c1d6264 590 #if HAS_digitalInOut9
whismanoid 54:ba810c1d6264 591 DigitalInOut digitalInOut9(P4_0, PIN_INPUT, PullUp, 1); // P4_0 TARGET_MAX32630 J3.4
whismanoid 54:ba810c1d6264 592 #endif
whismanoid 54:ba810c1d6264 593 #if HAS_digitalInOut10
whismanoid 54:ba810c1d6264 594 DigitalInOut digitalInOut10(P5_7, PIN_INPUT, PullUp, 1); // P5_7 TARGET_MAX32630 J1.9
whismanoid 54:ba810c1d6264 595 #endif
whismanoid 54:ba810c1d6264 596 #if HAS_digitalInOut11
whismanoid 54:ba810c1d6264 597 DigitalInOut digitalInOut11(P6_0, PIN_INPUT, PullUp, 1); // P6_0 TARGET_MAX32630 J1.10
whismanoid 54:ba810c1d6264 598 #endif
whismanoid 54:ba810c1d6264 599 #if HAS_digitalInOut12
whismanoid 54:ba810c1d6264 600 DigitalInOut digitalInOut12(P5_0, PIN_INPUT, PullUp, 1); // P5_0 TARGET_MAX32630 J1.11
whismanoid 54:ba810c1d6264 601 #endif
whismanoid 54:ba810c1d6264 602 #if HAS_digitalInOut13
whismanoid 54:ba810c1d6264 603 DigitalInOut digitalInOut13(P5_1, PIN_INPUT, PullUp, 1); // P5_1 TARGET_MAX32630 J1.12
whismanoid 54:ba810c1d6264 604 #endif
whismanoid 54:ba810c1d6264 605 #if HAS_digitalInOut14
whismanoid 54:ba810c1d6264 606 DigitalInOut digitalInOut14(P5_2, PIN_INPUT, PullUp, 1); // P5_2 TARGET_MAX32630 J1.13
whismanoid 54:ba810c1d6264 607 #endif
whismanoid 54:ba810c1d6264 608 #if HAS_digitalInOut15
whismanoid 54:ba810c1d6264 609 DigitalInOut digitalInOut15(P3_0, PIN_INPUT, PullUp, 1); // P3_0 TARGET_MAX32630 J1.14
whismanoid 54:ba810c1d6264 610 #endif
whismanoid 54:ba810c1d6264 611 //--------------------------------------------------
whismanoid 54:ba810c1d6264 612 #elif defined(TARGET_MAX32625MBED)
whismanoid 54:ba810c1d6264 613 // TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 54:ba810c1d6264 614 // +-------------------------------------+
whismanoid 54:ba810c1d6264 615 // | MAX32625MBED Arduino UNO header |
whismanoid 54:ba810c1d6264 616 // | |
whismanoid 54:ba810c1d6264 617 // | A5/SCL[ ] | P1_7 dig15
whismanoid 54:ba810c1d6264 618 // | A4/SDA[ ] | P1_6 dig14
whismanoid 54:ba810c1d6264 619 // | AREF=N/C[ ] |
whismanoid 54:ba810c1d6264 620 // | GND[ ] |
whismanoid 54:ba810c1d6264 621 // | [ ]N/C SCK/13[ ] | P1_0 dig13
whismanoid 54:ba810c1d6264 622 // | [ ]IOREF=3V3 MISO/12[ ] | P1_2 dig12
whismanoid 54:ba810c1d6264 623 // | [ ]RST MOSI/11[ ]~| P1_1 dig11
whismanoid 54:ba810c1d6264 624 // | [ ]3V3 CS/10[ ]~| P1_3 dig10
whismanoid 54:ba810c1d6264 625 // | [ ]5V0 9[ ]~| P1_5 dig9
whismanoid 54:ba810c1d6264 626 // | [ ]GND 8[ ] | P1_4 dig8
whismanoid 54:ba810c1d6264 627 // | [ ]GND |
whismanoid 54:ba810c1d6264 628 // | [ ]Vin 7[ ] | P0_7 dig7
whismanoid 54:ba810c1d6264 629 // | 6[ ]~| P0_6 dig6
whismanoid 54:ba810c1d6264 630 // AIN_0 | [ ]A0 5[ ]~| P0_5 dig5
whismanoid 54:ba810c1d6264 631 // AIN_1 | [ ]A1 4[ ] | P0_4 dig4
whismanoid 54:ba810c1d6264 632 // AIN_2 | [ ]A2 INT1/3[ ]~| P0_3 dig3
whismanoid 54:ba810c1d6264 633 // AIN_3 | [ ]A3 INT0/2[ ] | P0_2 dig2
whismanoid 54:ba810c1d6264 634 // dig16 P3_4 | [ ]A4/SDA RST SCK MISO TX>1[ ] | P0_1 dig1
whismanoid 54:ba810c1d6264 635 // dig17 P3_5 | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | P0_0 dig0
whismanoid 54:ba810c1d6264 636 // | [ ] [ ] [ ] |
whismanoid 54:ba810c1d6264 637 // | UNO_R3 GND MOSI 5V ____________/
whismanoid 54:ba810c1d6264 638 // \_______________________/
whismanoid 54:ba810c1d6264 639 //
whismanoid 54:ba810c1d6264 640 #define HAS_digitalInOut0 1 // P0_0 TARGET_MAX32625MBED D0
whismanoid 54:ba810c1d6264 641 #define HAS_digitalInOut1 1 // P0_1 TARGET_MAX32625MBED D1
whismanoid 54:ba810c1d6264 642 #if APPLICATION_MAX11131
whismanoid 54:ba810c1d6264 643 #define HAS_digitalInOut2 0 // P0_2 TARGET_MAX32625MBED D2 -- MAX11131 EOC DigitalIn
whismanoid 54:ba810c1d6264 644 #else
whismanoid 54:ba810c1d6264 645 #define HAS_digitalInOut2 1 // P0_2 TARGET_MAX32625MBED D2
whismanoid 54:ba810c1d6264 646 #endif
whismanoid 54:ba810c1d6264 647 #define HAS_digitalInOut3 1 // P0_3 TARGET_MAX32625MBED D3
whismanoid 54:ba810c1d6264 648 #define HAS_digitalInOut4 1 // P0_4 TARGET_MAX32625MBED D4
whismanoid 54:ba810c1d6264 649 #define HAS_digitalInOut5 1 // P0_5 TARGET_MAX32625MBED D5
whismanoid 54:ba810c1d6264 650 #define HAS_digitalInOut6 1 // P0_6 TARGET_MAX32625MBED D6
whismanoid 54:ba810c1d6264 651 #define HAS_digitalInOut7 1 // P0_7 TARGET_MAX32625MBED D7
whismanoid 54:ba810c1d6264 652 #define HAS_digitalInOut8 1 // P1_4 TARGET_MAX32625MBED D8
whismanoid 54:ba810c1d6264 653 #if APPLICATION_MAX11131
whismanoid 54:ba810c1d6264 654 #define HAS_digitalInOut9 0 // P1_5 TARGET_MAX32625MBED D9 -- MAX11131 CNVST DigitalOut
whismanoid 54:ba810c1d6264 655 #else
whismanoid 54:ba810c1d6264 656 #define HAS_digitalInOut9 1 // P1_5 TARGET_MAX32625MBED D9
whismanoid 54:ba810c1d6264 657 #endif
whismanoid 54:ba810c1d6264 658 #if HAS_SPI
whismanoid 54:ba810c1d6264 659 // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 54:ba810c1d6264 660 #define HAS_digitalInOut10 0 // P1_3 TARGET_MAX32635MBED CS/10
whismanoid 54:ba810c1d6264 661 #define HAS_digitalInOut11 0 // P1_1 TARGET_MAX32635MBED MOSI/11
whismanoid 54:ba810c1d6264 662 #define HAS_digitalInOut12 0 // P1_2 TARGET_MAX32635MBED MISO/12
whismanoid 54:ba810c1d6264 663 #define HAS_digitalInOut13 0 // P1_0 TARGET_MAX32635MBED SCK/13
whismanoid 54:ba810c1d6264 664 #else // HAS_SPI
whismanoid 54:ba810c1d6264 665 #define HAS_digitalInOut10 1 // P1_3 TARGET_MAX32635MBED CS/10
whismanoid 54:ba810c1d6264 666 #define HAS_digitalInOut11 1 // P1_1 TARGET_MAX32635MBED MOSI/11
whismanoid 54:ba810c1d6264 667 #define HAS_digitalInOut12 1 // P1_2 TARGET_MAX32635MBED MISO/12
whismanoid 54:ba810c1d6264 668 #define HAS_digitalInOut13 1 // P1_0 TARGET_MAX32635MBED SCK/13
whismanoid 54:ba810c1d6264 669 #endif // HAS_SPI
whismanoid 54:ba810c1d6264 670 #if HAS_I2C
whismanoid 54:ba810c1d6264 671 // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut
whismanoid 54:ba810c1d6264 672 #define HAS_digitalInOut14 0 // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 54:ba810c1d6264 673 #define HAS_digitalInOut15 0 // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 54:ba810c1d6264 674 #define HAS_digitalInOut16 0 // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 54:ba810c1d6264 675 #define HAS_digitalInOut17 0 // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 54:ba810c1d6264 676 #else // HAS_I2C
whismanoid 54:ba810c1d6264 677 #define HAS_digitalInOut14 1 // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 54:ba810c1d6264 678 #define HAS_digitalInOut15 1 // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 54:ba810c1d6264 679 #define HAS_digitalInOut16 1 // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 54:ba810c1d6264 680 #define HAS_digitalInOut17 1 // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 54:ba810c1d6264 681 #endif // HAS_I2C
whismanoid 54:ba810c1d6264 682 #if HAS_digitalInOut0
whismanoid 54:ba810c1d6264 683 DigitalInOut digitalInOut0(P0_0, PIN_INPUT, PullUp, 1); // P0_0 TARGET_MAX32625MBED D0
whismanoid 54:ba810c1d6264 684 #endif
whismanoid 54:ba810c1d6264 685 #if HAS_digitalInOut1
whismanoid 54:ba810c1d6264 686 DigitalInOut digitalInOut1(P0_1, PIN_INPUT, PullUp, 1); // P0_1 TARGET_MAX32625MBED D1
whismanoid 54:ba810c1d6264 687 #endif
whismanoid 54:ba810c1d6264 688 #if HAS_digitalInOut2
whismanoid 54:ba810c1d6264 689 DigitalInOut digitalInOut2(P0_2, PIN_INPUT, PullUp, 1); // P0_2 TARGET_MAX32625MBED D2
whismanoid 54:ba810c1d6264 690 #endif
whismanoid 54:ba810c1d6264 691 #if HAS_digitalInOut3
whismanoid 54:ba810c1d6264 692 DigitalInOut digitalInOut3(P0_3, PIN_INPUT, PullUp, 1); // P0_3 TARGET_MAX32625MBED D3
whismanoid 54:ba810c1d6264 693 #endif
whismanoid 54:ba810c1d6264 694 #if HAS_digitalInOut4
whismanoid 54:ba810c1d6264 695 DigitalInOut digitalInOut4(P0_4, PIN_INPUT, PullUp, 1); // P0_4 TARGET_MAX32625MBED D4
whismanoid 54:ba810c1d6264 696 #endif
whismanoid 54:ba810c1d6264 697 #if HAS_digitalInOut5
whismanoid 54:ba810c1d6264 698 DigitalInOut digitalInOut5(P0_5, PIN_INPUT, PullUp, 1); // P0_5 TARGET_MAX32625MBED D5
whismanoid 54:ba810c1d6264 699 #endif
whismanoid 54:ba810c1d6264 700 #if HAS_digitalInOut6
whismanoid 54:ba810c1d6264 701 DigitalInOut digitalInOut6(P0_6, PIN_INPUT, PullUp, 1); // P0_6 TARGET_MAX32625MBED D6
whismanoid 54:ba810c1d6264 702 #endif
whismanoid 54:ba810c1d6264 703 #if HAS_digitalInOut7
whismanoid 54:ba810c1d6264 704 DigitalInOut digitalInOut7(P0_7, PIN_INPUT, PullUp, 1); // P0_7 TARGET_MAX32625MBED D7
whismanoid 54:ba810c1d6264 705 #endif
whismanoid 54:ba810c1d6264 706 #if HAS_digitalInOut8
whismanoid 54:ba810c1d6264 707 DigitalInOut digitalInOut8(P1_4, PIN_INPUT, PullUp, 1); // P1_4 TARGET_MAX32625MBED D8
whismanoid 54:ba810c1d6264 708 #endif
whismanoid 54:ba810c1d6264 709 #if HAS_digitalInOut9
whismanoid 54:ba810c1d6264 710 DigitalInOut digitalInOut9(P1_5, PIN_INPUT, PullUp, 1); // P1_5 TARGET_MAX32625MBED D9
whismanoid 54:ba810c1d6264 711 #endif
whismanoid 54:ba810c1d6264 712 #if HAS_digitalInOut10
whismanoid 54:ba810c1d6264 713 DigitalInOut digitalInOut10(P1_3, PIN_INPUT, PullUp, 1); // P1_3 TARGET_MAX32635MBED CS/10
whismanoid 54:ba810c1d6264 714 #endif
whismanoid 54:ba810c1d6264 715 #if HAS_digitalInOut11
whismanoid 54:ba810c1d6264 716 DigitalInOut digitalInOut11(P1_1, PIN_INPUT, PullUp, 1); // P1_1 TARGET_MAX32635MBED MOSI/11
whismanoid 54:ba810c1d6264 717 #endif
whismanoid 54:ba810c1d6264 718 #if HAS_digitalInOut12
whismanoid 54:ba810c1d6264 719 DigitalInOut digitalInOut12(P1_2, PIN_INPUT, PullUp, 1); // P1_2 TARGET_MAX32635MBED MISO/12
whismanoid 54:ba810c1d6264 720 #endif
whismanoid 54:ba810c1d6264 721 #if HAS_digitalInOut13
whismanoid 54:ba810c1d6264 722 DigitalInOut digitalInOut13(P1_0, PIN_INPUT, PullUp, 1); // P1_0 TARGET_MAX32635MBED SCK/13
whismanoid 54:ba810c1d6264 723 #endif
whismanoid 54:ba810c1d6264 724 #if HAS_digitalInOut14
whismanoid 54:ba810c1d6264 725 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 54:ba810c1d6264 726 // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain
whismanoid 54:ba810c1d6264 727 DigitalInOut digitalInOut14(P1_6, PIN_INPUT, OpenDrain, 1); // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 54:ba810c1d6264 728 #endif
whismanoid 54:ba810c1d6264 729 #if HAS_digitalInOut15
whismanoid 54:ba810c1d6264 730 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 54:ba810c1d6264 731 DigitalInOut digitalInOut15(P1_7, PIN_INPUT, OpenDrain, 1); // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 54:ba810c1d6264 732 #endif
whismanoid 54:ba810c1d6264 733 #if HAS_digitalInOut16
whismanoid 54:ba810c1d6264 734 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 54:ba810c1d6264 735 // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain
whismanoid 54:ba810c1d6264 736 // PullUp-->3.4V, PullDown-->1.7V, PullNone-->3.5V, OpenDrain-->0.00V
whismanoid 54:ba810c1d6264 737 DigitalInOut digitalInOut16(P3_4, PIN_INPUT, OpenDrain, 0); // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 54:ba810c1d6264 738 #endif
whismanoid 54:ba810c1d6264 739 #if HAS_digitalInOut17
whismanoid 54:ba810c1d6264 740 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 54:ba810c1d6264 741 DigitalInOut digitalInOut17(P3_5, PIN_INPUT, OpenDrain, 0); // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 54:ba810c1d6264 742 #endif
whismanoid 54:ba810c1d6264 743 //--------------------------------------------------
whismanoid 54:ba810c1d6264 744 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 57:dc118969c848 745 #define HAS_digitalInOut0 0
whismanoid 57:dc118969c848 746 #define HAS_digitalInOut1 0
whismanoid 54:ba810c1d6264 747 #if APPLICATION_MAX11131
whismanoid 57:dc118969c848 748 // D2 -- MAX11131 EOC DigitalIn
whismanoid 57:dc118969c848 749 #define HAS_digitalInOut2 0
whismanoid 54:ba810c1d6264 750 #else
whismanoid 57:dc118969c848 751 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 752 #define HAS_digitalInOut2 1
whismanoid 57:dc118969c848 753 #endif
whismanoid 57:dc118969c848 754 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 755 #define HAS_digitalInOut3 1
whismanoid 57:dc118969c848 756 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 757 #define HAS_digitalInOut4 1
whismanoid 57:dc118969c848 758 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 759 #define HAS_digitalInOut5 1
whismanoid 57:dc118969c848 760 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 761 #define HAS_digitalInOut6 1
whismanoid 57:dc118969c848 762 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 763 #define HAS_digitalInOut7 1
whismanoid 54:ba810c1d6264 764 #if APPLICATION_MAX5715
whismanoid 57:dc118969c848 765 // D8 -- MAX5715 CLRb DigitalOut
whismanoid 57:dc118969c848 766 #define HAS_digitalInOut8 0
whismanoid 54:ba810c1d6264 767 #else
whismanoid 57:dc118969c848 768 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 769 #define HAS_digitalInOut8 1
whismanoid 54:ba810c1d6264 770 #endif
whismanoid 54:ba810c1d6264 771 #if APPLICATION_MAX5715
whismanoid 57:dc118969c848 772 // D9 -- MAX5715 LDACb DigitalOut
whismanoid 57:dc118969c848 773 #define HAS_digitalInOut9 0
whismanoid 54:ba810c1d6264 774 #elif APPLICATION_MAX11131
whismanoid 57:dc118969c848 775 // D9 -- MAX11131 CNVST DigitalOut
whismanoid 57:dc118969c848 776 #define HAS_digitalInOut9 0
whismanoid 54:ba810c1d6264 777 #else
whismanoid 57:dc118969c848 778 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 779 #define HAS_digitalInOut9 1
whismanoid 54:ba810c1d6264 780 #endif
whismanoid 54:ba810c1d6264 781 #if HAS_SPI
whismanoid 54:ba810c1d6264 782 // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 54:ba810c1d6264 783 // Arduino digital pin D10 SPI function is CS/10
whismanoid 54:ba810c1d6264 784 // Arduino digital pin D11 SPI function is MOSI/11
whismanoid 54:ba810c1d6264 785 // Arduino digital pin D12 SPI function is MISO/12
whismanoid 54:ba810c1d6264 786 // Arduino digital pin D13 SPI function is SCK/13
whismanoid 54:ba810c1d6264 787 #define HAS_digitalInOut10 0
whismanoid 54:ba810c1d6264 788 #define HAS_digitalInOut11 0
whismanoid 54:ba810c1d6264 789 #define HAS_digitalInOut12 0
whismanoid 54:ba810c1d6264 790 #define HAS_digitalInOut13 0
whismanoid 54:ba810c1d6264 791 #else // HAS_SPI
whismanoid 54:ba810c1d6264 792 #define HAS_digitalInOut10 1
whismanoid 54:ba810c1d6264 793 #define HAS_digitalInOut11 1
whismanoid 54:ba810c1d6264 794 #define HAS_digitalInOut12 1
whismanoid 54:ba810c1d6264 795 #define HAS_digitalInOut13 1
whismanoid 54:ba810c1d6264 796 #endif // HAS_SPI
whismanoid 54:ba810c1d6264 797 #if HAS_I2C
whismanoid 54:ba810c1d6264 798 // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut
whismanoid 54:ba810c1d6264 799 // Arduino digital pin D14 I2C function is A4/SDA (10pin digital connector)
whismanoid 54:ba810c1d6264 800 // Arduino digital pin D15 I2C function is A5/SCL (10pin digital connector)
whismanoid 54:ba810c1d6264 801 // Arduino digital pin D16 I2C function is A4/SDA (6pin analog connector)
whismanoid 54:ba810c1d6264 802 // Arduino digital pin D17 I2C function is A5/SCL (6pin analog connector)
whismanoid 54:ba810c1d6264 803 #define HAS_digitalInOut14 0
whismanoid 54:ba810c1d6264 804 #define HAS_digitalInOut15 0
whismanoid 54:ba810c1d6264 805 #define HAS_digitalInOut16 0
whismanoid 54:ba810c1d6264 806 #define HAS_digitalInOut17 0
whismanoid 54:ba810c1d6264 807 #else // HAS_I2C
whismanoid 54:ba810c1d6264 808 #define HAS_digitalInOut14 1
whismanoid 54:ba810c1d6264 809 #define HAS_digitalInOut15 1
whismanoid 54:ba810c1d6264 810 #define HAS_digitalInOut16 0
whismanoid 54:ba810c1d6264 811 #define HAS_digitalInOut17 0
whismanoid 54:ba810c1d6264 812 #endif // HAS_I2C
whismanoid 54:ba810c1d6264 813 #if HAS_digitalInOut0
whismanoid 54:ba810c1d6264 814 DigitalInOut digitalInOut0(D0, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 815 #endif
whismanoid 54:ba810c1d6264 816 #if HAS_digitalInOut1
whismanoid 54:ba810c1d6264 817 DigitalInOut digitalInOut1(D1, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 818 #endif
whismanoid 54:ba810c1d6264 819 #if HAS_digitalInOut2
whismanoid 54:ba810c1d6264 820 DigitalInOut digitalInOut2(D2, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 821 #endif
whismanoid 54:ba810c1d6264 822 #if HAS_digitalInOut3
whismanoid 54:ba810c1d6264 823 DigitalInOut digitalInOut3(D3, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 824 #endif
whismanoid 54:ba810c1d6264 825 #if HAS_digitalInOut4
whismanoid 54:ba810c1d6264 826 DigitalInOut digitalInOut4(D4, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 827 #endif
whismanoid 54:ba810c1d6264 828 #if HAS_digitalInOut5
whismanoid 54:ba810c1d6264 829 DigitalInOut digitalInOut5(D5, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 830 #endif
whismanoid 54:ba810c1d6264 831 #if HAS_digitalInOut6
whismanoid 54:ba810c1d6264 832 DigitalInOut digitalInOut6(D6, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 833 #endif
whismanoid 54:ba810c1d6264 834 #if HAS_digitalInOut7
whismanoid 54:ba810c1d6264 835 DigitalInOut digitalInOut7(D7, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 836 #endif
whismanoid 54:ba810c1d6264 837 #if HAS_digitalInOut8
whismanoid 54:ba810c1d6264 838 DigitalInOut digitalInOut8(D8, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 839 #endif
whismanoid 54:ba810c1d6264 840 #if HAS_digitalInOut9
whismanoid 54:ba810c1d6264 841 DigitalInOut digitalInOut9(D9, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 842 #endif
whismanoid 54:ba810c1d6264 843 #if HAS_digitalInOut10
whismanoid 54:ba810c1d6264 844 // Arduino digital pin D10 SPI function is CS/10
whismanoid 54:ba810c1d6264 845 DigitalInOut digitalInOut10(D10, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 846 #endif
whismanoid 54:ba810c1d6264 847 #if HAS_digitalInOut11
whismanoid 54:ba810c1d6264 848 // Arduino digital pin D11 SPI function is MOSI/11
whismanoid 54:ba810c1d6264 849 DigitalInOut digitalInOut11(D11, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 850 #endif
whismanoid 54:ba810c1d6264 851 #if HAS_digitalInOut12
whismanoid 54:ba810c1d6264 852 // Arduino digital pin D12 SPI function is MISO/12
whismanoid 54:ba810c1d6264 853 DigitalInOut digitalInOut12(D12, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 854 #endif
whismanoid 54:ba810c1d6264 855 #if HAS_digitalInOut13
whismanoid 54:ba810c1d6264 856 // Arduino digital pin D13 SPI function is SCK/13
whismanoid 54:ba810c1d6264 857 DigitalInOut digitalInOut13(D13, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 858 #endif
whismanoid 54:ba810c1d6264 859 #if HAS_digitalInOut14
whismanoid 54:ba810c1d6264 860 // Arduino digital pin D14 I2C function is A4/SDA (10pin digital connector)
whismanoid 54:ba810c1d6264 861 DigitalInOut digitalInOut14(D14, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 862 #endif
whismanoid 54:ba810c1d6264 863 #if HAS_digitalInOut15
whismanoid 54:ba810c1d6264 864 // Arduino digital pin D15 I2C function is A5/SCL (10pin digital connector)
whismanoid 54:ba810c1d6264 865 DigitalInOut digitalInOut15(D15, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 866 #endif
whismanoid 54:ba810c1d6264 867 #if HAS_digitalInOut16
whismanoid 54:ba810c1d6264 868 // Arduino digital pin D16 I2C function is A4/SDA (6pin analog connector)
whismanoid 54:ba810c1d6264 869 DigitalInOut digitalInOut16(D16, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 870 #endif
whismanoid 54:ba810c1d6264 871 #if HAS_digitalInOut17
whismanoid 54:ba810c1d6264 872 // Arduino digital pin D17 I2C function is A5/SCL (6pin analog connector)
whismanoid 54:ba810c1d6264 873 DigitalInOut digitalInOut17(D17, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 874 #endif
whismanoid 54:ba810c1d6264 875 //--------------------------------------------------
whismanoid 54:ba810c1d6264 876 #elif defined(TARGET_LPC1768)
whismanoid 54:ba810c1d6264 877 #define HAS_digitalInOut0 1
whismanoid 54:ba810c1d6264 878 #define HAS_digitalInOut1 1
whismanoid 54:ba810c1d6264 879 #define HAS_digitalInOut2 1
whismanoid 54:ba810c1d6264 880 #define HAS_digitalInOut3 1
whismanoid 54:ba810c1d6264 881 #define HAS_digitalInOut4 1
whismanoid 54:ba810c1d6264 882 #define HAS_digitalInOut5 1
whismanoid 54:ba810c1d6264 883 #define HAS_digitalInOut6 1
whismanoid 54:ba810c1d6264 884 #define HAS_digitalInOut7 1
whismanoid 54:ba810c1d6264 885 #define HAS_digitalInOut8 1
whismanoid 54:ba810c1d6264 886 #define HAS_digitalInOut9 1
whismanoid 54:ba810c1d6264 887 // #define HAS_digitalInOut10 1
whismanoid 54:ba810c1d6264 888 // #define HAS_digitalInOut11 1
whismanoid 54:ba810c1d6264 889 // #define HAS_digitalInOut12 1
whismanoid 54:ba810c1d6264 890 // #define HAS_digitalInOut13 1
whismanoid 54:ba810c1d6264 891 // #define HAS_digitalInOut14 1
whismanoid 54:ba810c1d6264 892 // #define HAS_digitalInOut15 1
whismanoid 54:ba810c1d6264 893 #if HAS_digitalInOut0
whismanoid 54:ba810c1d6264 894 DigitalInOut digitalInOut0(p5, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.9/I2STX_SDA/MOSI1/MAT2.3
whismanoid 54:ba810c1d6264 895 #endif
whismanoid 54:ba810c1d6264 896 #if HAS_digitalInOut1
whismanoid 54:ba810c1d6264 897 DigitalInOut digitalInOut1(p6, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.8/I2STX_WS/MISO1/MAT2.2
whismanoid 54:ba810c1d6264 898 #endif
whismanoid 54:ba810c1d6264 899 #if HAS_digitalInOut2
whismanoid 54:ba810c1d6264 900 DigitalInOut digitalInOut2(p7, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.7/I2STX_CLK/SCK1/MAT2.1
whismanoid 54:ba810c1d6264 901 #endif
whismanoid 54:ba810c1d6264 902 #if HAS_digitalInOut3
whismanoid 54:ba810c1d6264 903 DigitalInOut digitalInOut3(p8, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.6/I2SRX_SDA/SSEL1/MAT2.0
whismanoid 54:ba810c1d6264 904 #endif
whismanoid 54:ba810c1d6264 905 #if HAS_digitalInOut4
whismanoid 54:ba810c1d6264 906 DigitalInOut digitalInOut4(p9, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.0/CAN_RX1/TXD3/SDA1
whismanoid 54:ba810c1d6264 907 #endif
whismanoid 54:ba810c1d6264 908 #if HAS_digitalInOut5
whismanoid 54:ba810c1d6264 909 DigitalInOut digitalInOut5(p10, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.1/CAN_TX1/RXD3/SCL1
whismanoid 54:ba810c1d6264 910 #endif
whismanoid 54:ba810c1d6264 911 #if HAS_digitalInOut6
whismanoid 54:ba810c1d6264 912 DigitalInOut digitalInOut6(p11, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.18/DCD1/MOSI0/MOSI1
whismanoid 54:ba810c1d6264 913 #endif
whismanoid 54:ba810c1d6264 914 #if HAS_digitalInOut7
whismanoid 54:ba810c1d6264 915 DigitalInOut digitalInOut7(p12, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.17/CTS1/MISO0/MISO
whismanoid 54:ba810c1d6264 916 #endif
whismanoid 54:ba810c1d6264 917 #if HAS_digitalInOut8
whismanoid 54:ba810c1d6264 918 DigitalInOut digitalInOut8(p13, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.15/TXD1/SCK0/SCK
whismanoid 54:ba810c1d6264 919 #endif
whismanoid 54:ba810c1d6264 920 #if HAS_digitalInOut9
whismanoid 54:ba810c1d6264 921 DigitalInOut digitalInOut9(p14, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.16/RXD1/SSEL0/SSEL
whismanoid 54:ba810c1d6264 922 #endif
whismanoid 54:ba810c1d6264 923 //
whismanoid 54:ba810c1d6264 924 // these pins support analog input analogIn0 .. analogIn5
whismanoid 54:ba810c1d6264 925 //DigitalInOut digitalInOut_(p15, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.23/AD0.0/I2SRX_CLK/CAP3.0
whismanoid 54:ba810c1d6264 926 //DigitalInOut digitalInOut_(p16, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.24/AD0.1/I2SRX_WS/CAP3.1
whismanoid 54:ba810c1d6264 927 //DigitalInOut digitalInOut_(p17, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.25/AD0.2/I2SRX_SDA/TXD3
whismanoid 54:ba810c1d6264 928 //DigitalInOut digitalInOut_(p18, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.26/AD0.3/AOUT/RXD3
whismanoid 54:ba810c1d6264 929 //DigitalInOut digitalInOut_(p19, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P1.30/VBUS/AD0.4
whismanoid 54:ba810c1d6264 930 //DigitalInOut digitalInOut_(p20, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P1.31/SCK1/AD0.5
whismanoid 54:ba810c1d6264 931 //
whismanoid 54:ba810c1d6264 932 // these pins support PWM pwmDriver1 .. pwmDriver6
whismanoid 54:ba810c1d6264 933 //DigitalInOut digitalInOut_(p21, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.5/PWM1.6/DTR1/TRACEDATA0
whismanoid 54:ba810c1d6264 934 //DigitalInOut digitalInOut_(p22, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.4/PWM1.5/DSR1/TRACEDATA1
whismanoid 54:ba810c1d6264 935 //DigitalInOut digitalInOut_(p23, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.3/PWM1.4/DCD1/TRACEDATA2
whismanoid 54:ba810c1d6264 936 //DigitalInOut digitalInOut_(p24, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.2/PWM1.3/CTS1/TRACEDATA3
whismanoid 54:ba810c1d6264 937 //DigitalInOut digitalInOut_(p25, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.1/PWM1.2/RXD1
whismanoid 54:ba810c1d6264 938 //DigitalInOut digitalInOut_(p26, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.0/PWM1.1/TXD1/TRACECLK
whismanoid 54:ba810c1d6264 939 //
whismanoid 54:ba810c1d6264 940 // these could be additional digitalInOut pins
whismanoid 54:ba810c1d6264 941 #if HAS_digitalInOut10
whismanoid 54:ba810c1d6264 942 DigitalInOut digitalInOut10(p27, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.11/RXD2/SCL2/MAT3.1
whismanoid 54:ba810c1d6264 943 #endif
whismanoid 54:ba810c1d6264 944 #if HAS_digitalInOut11
whismanoid 54:ba810c1d6264 945 DigitalInOut digitalInOut11(p28, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.10/TXD2/SDA2/MAT3.0
whismanoid 54:ba810c1d6264 946 #endif
whismanoid 54:ba810c1d6264 947 #if HAS_digitalInOut12
whismanoid 54:ba810c1d6264 948 DigitalInOut digitalInOut12(p29, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.5/I2SRX_WS/CAN_TX2/CAP2.1
whismanoid 54:ba810c1d6264 949 #endif
whismanoid 54:ba810c1d6264 950 #if HAS_digitalInOut13
whismanoid 54:ba810c1d6264 951 DigitalInOut digitalInOut13(p30, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.4/I2SRX_CLK/CAN_RX2/CAP2.0
whismanoid 54:ba810c1d6264 952 #endif
whismanoid 54:ba810c1d6264 953 #if HAS_digitalInOut14
whismanoid 54:ba810c1d6264 954 DigitalInOut digitalInOut14(___, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 955 #endif
whismanoid 54:ba810c1d6264 956 #if HAS_digitalInOut15
whismanoid 54:ba810c1d6264 957 DigitalInOut digitalInOut15(___, PIN_INPUT, PullUp, 1);
whismanoid 54:ba810c1d6264 958 #endif
whismanoid 54:ba810c1d6264 959 #else
whismanoid 54:ba810c1d6264 960 // unknown target
whismanoid 54:ba810c1d6264 961 #endif
whismanoid 54:ba810c1d6264 962 // uncrustify-0.66.1 *INDENT-ON*
whismanoid 54:ba810c1d6264 963 #if HAS_digitalInOut0 || HAS_digitalInOut1 \
whismanoid 54:ba810c1d6264 964 || HAS_digitalInOut2 || HAS_digitalInOut3 \
whismanoid 54:ba810c1d6264 965 || HAS_digitalInOut4 || HAS_digitalInOut5 \
whismanoid 54:ba810c1d6264 966 || HAS_digitalInOut6 || HAS_digitalInOut7 \
whismanoid 54:ba810c1d6264 967 || HAS_digitalInOut8 || HAS_digitalInOut9 \
whismanoid 54:ba810c1d6264 968 || HAS_digitalInOut10 || HAS_digitalInOut11 \
whismanoid 54:ba810c1d6264 969 || HAS_digitalInOut12 || HAS_digitalInOut13 \
whismanoid 54:ba810c1d6264 970 || HAS_digitalInOut14 || HAS_digitalInOut15 \
whismanoid 54:ba810c1d6264 971 || HAS_digitalInOut16 || HAS_digitalInOut17
whismanoid 54:ba810c1d6264 972 #define HAS_digitalInOuts 1
whismanoid 57:dc118969c848 973 #else
whismanoid 57:dc118969c848 974 #warning "Note: There are no digitalInOut resources defined"
whismanoid 54:ba810c1d6264 975 #endif
whismanoid 52:d3fb6f1722bf 976
whismanoid 52:d3fb6f1722bf 977 // uncrustify-0.66.1 *INDENT-OFF*
whismanoid 52:d3fb6f1722bf 978 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 979 // Declare the AnalogIn driver
whismanoid 52:d3fb6f1722bf 980 // Optional analogIn support. If there is only one it should be analogIn1.
whismanoid 52:d3fb6f1722bf 981 // A) analog input
whismanoid 52:d3fb6f1722bf 982 #if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 983 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 984 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 985 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 986 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 987 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 988 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 989 #define HAS_analogIn6 1
whismanoid 52:d3fb6f1722bf 990 #define HAS_analogIn7 1
whismanoid 52:d3fb6f1722bf 991 #define HAS_analogIn8 1
whismanoid 52:d3fb6f1722bf 992 #define HAS_analogIn9 1
whismanoid 52:d3fb6f1722bf 993 // #define HAS_analogIn10 0
whismanoid 52:d3fb6f1722bf 994 // #define HAS_analogIn11 0
whismanoid 52:d3fb6f1722bf 995 // #define HAS_analogIn12 0
whismanoid 52:d3fb6f1722bf 996 // #define HAS_analogIn13 0
whismanoid 52:d3fb6f1722bf 997 // #define HAS_analogIn14 0
whismanoid 52:d3fb6f1722bf 998 // #define HAS_analogIn15 0
whismanoid 52:d3fb6f1722bf 999 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1000 AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1001 #endif
whismanoid 52:d3fb6f1722bf 1002 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1003 AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1004 #endif
whismanoid 52:d3fb6f1722bf 1005 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1006 AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1007 #endif
whismanoid 52:d3fb6f1722bf 1008 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1009 AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1010 #endif
whismanoid 52:d3fb6f1722bf 1011 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1012 AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1013 #endif
whismanoid 52:d3fb6f1722bf 1014 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1015 AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1016 #endif
whismanoid 52:d3fb6f1722bf 1017 #if HAS_analogIn6
whismanoid 52:d3fb6f1722bf 1018 AnalogIn analogIn6(AIN_6); // TARGET_MAX32630 AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1019 #endif
whismanoid 52:d3fb6f1722bf 1020 #if HAS_analogIn7
whismanoid 52:d3fb6f1722bf 1021 AnalogIn analogIn7(AIN_7); // TARGET_MAX32630 AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1022 #endif
whismanoid 52:d3fb6f1722bf 1023 #if HAS_analogIn8
whismanoid 52:d3fb6f1722bf 1024 AnalogIn analogIn8(AIN_8); // TARGET_MAX32630 AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1025 #endif
whismanoid 52:d3fb6f1722bf 1026 #if HAS_analogIn9
whismanoid 52:d3fb6f1722bf 1027 AnalogIn analogIn9(AIN_9); // TARGET_MAX32630 AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 1028 #endif
whismanoid 52:d3fb6f1722bf 1029 #if HAS_analogIn10
whismanoid 52:d3fb6f1722bf 1030 AnalogIn analogIn10(____); // TARGET_MAX32630 AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 1031 #endif
whismanoid 52:d3fb6f1722bf 1032 #if HAS_analogIn11
whismanoid 52:d3fb6f1722bf 1033 AnalogIn analogIn11(____); // TARGET_MAX32630 AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1034 #endif
whismanoid 52:d3fb6f1722bf 1035 #if HAS_analogIn12
whismanoid 52:d3fb6f1722bf 1036 AnalogIn analogIn12(____); // TARGET_MAX32630 AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1037 #endif
whismanoid 52:d3fb6f1722bf 1038 #if HAS_analogIn13
whismanoid 52:d3fb6f1722bf 1039 AnalogIn analogIn13(____);
whismanoid 52:d3fb6f1722bf 1040 #endif
whismanoid 52:d3fb6f1722bf 1041 #if HAS_analogIn14
whismanoid 52:d3fb6f1722bf 1042 AnalogIn analogIn14(____);
whismanoid 52:d3fb6f1722bf 1043 #endif
whismanoid 52:d3fb6f1722bf 1044 #if HAS_analogIn15
whismanoid 52:d3fb6f1722bf 1045 AnalogIn analogIn15(____);
whismanoid 52:d3fb6f1722bf 1046 #endif
whismanoid 52:d3fb6f1722bf 1047 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1048 #elif defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 1049 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1050 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1051 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1052 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1053 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1054 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1055 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1056 AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1057 #endif
whismanoid 52:d3fb6f1722bf 1058 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1059 AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1060 #endif
whismanoid 52:d3fb6f1722bf 1061 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1062 AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1063 #endif
whismanoid 52:d3fb6f1722bf 1064 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1065 AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1066 #endif
whismanoid 52:d3fb6f1722bf 1067 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1068 AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1069 #endif
whismanoid 52:d3fb6f1722bf 1070 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1071 AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1072 #endif
whismanoid 52:d3fb6f1722bf 1073 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1074 #elif defined(TARGET_MAX32620FTHR)
whismanoid 52:d3fb6f1722bf 1075 #warning "TARGET_MAX32620FTHR not previously tested; need to verify analogIn0..."
whismanoid 52:d3fb6f1722bf 1076 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1077 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1078 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1079 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1080 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1081 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1082 #define HAS_analogIn6 1
whismanoid 52:d3fb6f1722bf 1083 #define HAS_analogIn7 1
whismanoid 52:d3fb6f1722bf 1084 #define HAS_analogIn8 1
whismanoid 52:d3fb6f1722bf 1085 #define HAS_analogIn9 1
whismanoid 52:d3fb6f1722bf 1086 // #define HAS_analogIn10 0
whismanoid 52:d3fb6f1722bf 1087 // #define HAS_analogIn11 0
whismanoid 52:d3fb6f1722bf 1088 // #define HAS_analogIn12 0
whismanoid 52:d3fb6f1722bf 1089 // #define HAS_analogIn13 0
whismanoid 52:d3fb6f1722bf 1090 // #define HAS_analogIn14 0
whismanoid 52:d3fb6f1722bf 1091 // #define HAS_analogIn15 0
whismanoid 52:d3fb6f1722bf 1092 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1093 AnalogIn analogIn0(AIN_0); // TARGET_MAX32620FTHR J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1094 #endif
whismanoid 52:d3fb6f1722bf 1095 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1096 AnalogIn analogIn1(AIN_1); // TARGET_MAX32620FTHR J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1097 #endif
whismanoid 52:d3fb6f1722bf 1098 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1099 AnalogIn analogIn2(AIN_2); // TARGET_MAX32620FTHR J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1100 #endif
whismanoid 52:d3fb6f1722bf 1101 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1102 AnalogIn analogIn3(AIN_3); // TARGET_MAX32620FTHR J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1103 #endif
whismanoid 52:d3fb6f1722bf 1104 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1105 AnalogIn analogIn4(AIN_4); // TARGET_MAX32620FTHR J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1106 #endif
whismanoid 52:d3fb6f1722bf 1107 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1108 AnalogIn analogIn5(AIN_5); // TARGET_MAX32620FTHR J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1109 #endif
whismanoid 52:d3fb6f1722bf 1110 #if HAS_analogIn6
whismanoid 52:d3fb6f1722bf 1111 AnalogIn analogIn6(AIN_6); // TARGET_MAX32620FTHR AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1112 #endif
whismanoid 52:d3fb6f1722bf 1113 #if HAS_analogIn7
whismanoid 52:d3fb6f1722bf 1114 AnalogIn analogIn7(AIN_7); // TARGET_MAX32620FTHR AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1115 #endif
whismanoid 52:d3fb6f1722bf 1116 #if HAS_analogIn8
whismanoid 52:d3fb6f1722bf 1117 AnalogIn analogIn8(AIN_8); // TARGET_MAX32620FTHR AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1118 #endif
whismanoid 52:d3fb6f1722bf 1119 #if HAS_analogIn9
whismanoid 52:d3fb6f1722bf 1120 AnalogIn analogIn9(AIN_9); // TARGET_MAX32620FTHR AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 1121 #endif
whismanoid 52:d3fb6f1722bf 1122 #if HAS_analogIn10
whismanoid 52:d3fb6f1722bf 1123 AnalogIn analogIn10(____); // TARGET_MAX32620FTHR AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 1124 #endif
whismanoid 52:d3fb6f1722bf 1125 #if HAS_analogIn11
whismanoid 52:d3fb6f1722bf 1126 AnalogIn analogIn11(____); // TARGET_MAX32620FTHR AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1127 #endif
whismanoid 52:d3fb6f1722bf 1128 #if HAS_analogIn12
whismanoid 52:d3fb6f1722bf 1129 AnalogIn analogIn12(____); // TARGET_MAX32620FTHR AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1130 #endif
whismanoid 52:d3fb6f1722bf 1131 #if HAS_analogIn13
whismanoid 52:d3fb6f1722bf 1132 AnalogIn analogIn13(____);
whismanoid 52:d3fb6f1722bf 1133 #endif
whismanoid 52:d3fb6f1722bf 1134 #if HAS_analogIn14
whismanoid 52:d3fb6f1722bf 1135 AnalogIn analogIn14(____);
whismanoid 52:d3fb6f1722bf 1136 #endif
whismanoid 52:d3fb6f1722bf 1137 #if HAS_analogIn15
whismanoid 52:d3fb6f1722bf 1138 AnalogIn analogIn15(____);
whismanoid 52:d3fb6f1722bf 1139 #endif
whismanoid 52:d3fb6f1722bf 1140 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1141 #elif defined(TARGET_MAX32625PICO)
whismanoid 52:d3fb6f1722bf 1142 #warning "TARGET_MAX32625PICO not previously tested; need to verify analogIn0..."
whismanoid 52:d3fb6f1722bf 1143 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1144 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1145 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1146 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1147 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1148 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1149 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1150 AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1151 #endif
whismanoid 52:d3fb6f1722bf 1152 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1153 AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1154 #endif
whismanoid 52:d3fb6f1722bf 1155 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1156 AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1157 #endif
whismanoid 52:d3fb6f1722bf 1158 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1159 AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1160 #endif
whismanoid 52:d3fb6f1722bf 1161 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1162 AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1163 #endif
whismanoid 52:d3fb6f1722bf 1164 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1165 AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1166 #endif
whismanoid 52:d3fb6f1722bf 1167 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1168 #elif defined(TARGET_MAX32600)
whismanoid 52:d3fb6f1722bf 1169 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1170 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1171 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1172 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1173 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1174 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1175 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1176 AnalogIn analogIn0(A0);
whismanoid 52:d3fb6f1722bf 1177 #endif
whismanoid 52:d3fb6f1722bf 1178 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1179 AnalogIn analogIn1(A1);
whismanoid 52:d3fb6f1722bf 1180 #endif
whismanoid 52:d3fb6f1722bf 1181 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1182 AnalogIn analogIn2(A2);
whismanoid 52:d3fb6f1722bf 1183 #endif
whismanoid 52:d3fb6f1722bf 1184 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1185 AnalogIn analogIn3(A3);
whismanoid 52:d3fb6f1722bf 1186 #endif
whismanoid 52:d3fb6f1722bf 1187 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1188 AnalogIn analogIn4(A4);
whismanoid 52:d3fb6f1722bf 1189 #endif
whismanoid 52:d3fb6f1722bf 1190 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1191 AnalogIn analogIn5(A5);
whismanoid 52:d3fb6f1722bf 1192 #endif
whismanoid 52:d3fb6f1722bf 1193 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1194 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 52:d3fb6f1722bf 1195 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1196 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1197 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1198 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1199 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1200 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1201 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1202 AnalogIn analogIn0(A0);
whismanoid 52:d3fb6f1722bf 1203 #endif
whismanoid 52:d3fb6f1722bf 1204 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1205 AnalogIn analogIn1(A1);
whismanoid 52:d3fb6f1722bf 1206 #endif
whismanoid 52:d3fb6f1722bf 1207 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1208 AnalogIn analogIn2(A2);
whismanoid 52:d3fb6f1722bf 1209 #endif
whismanoid 52:d3fb6f1722bf 1210 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1211 AnalogIn analogIn3(A3);
whismanoid 52:d3fb6f1722bf 1212 #endif
whismanoid 52:d3fb6f1722bf 1213 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1214 AnalogIn analogIn4(A4);
whismanoid 52:d3fb6f1722bf 1215 #endif
whismanoid 52:d3fb6f1722bf 1216 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1217 AnalogIn analogIn5(A5);
whismanoid 52:d3fb6f1722bf 1218 #endif
whismanoid 52:d3fb6f1722bf 1219 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1220 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 52:d3fb6f1722bf 1221 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1222 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1223 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1224 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1225 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1226 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1227 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1228 AnalogIn analogIn0(A0);
whismanoid 52:d3fb6f1722bf 1229 #endif
whismanoid 52:d3fb6f1722bf 1230 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1231 AnalogIn analogIn1(A1);
whismanoid 52:d3fb6f1722bf 1232 #endif
whismanoid 52:d3fb6f1722bf 1233 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1234 AnalogIn analogIn2(A2);
whismanoid 52:d3fb6f1722bf 1235 #endif
whismanoid 52:d3fb6f1722bf 1236 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1237 AnalogIn analogIn3(A3);
whismanoid 52:d3fb6f1722bf 1238 #endif
whismanoid 52:d3fb6f1722bf 1239 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1240 AnalogIn analogIn4(A4);
whismanoid 52:d3fb6f1722bf 1241 #endif
whismanoid 52:d3fb6f1722bf 1242 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1243 AnalogIn analogIn5(A5);
whismanoid 52:d3fb6f1722bf 1244 #endif
whismanoid 52:d3fb6f1722bf 1245 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1246 // TODO1: TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 52:d3fb6f1722bf 1247 #elif defined(TARGET_LPC1768)
whismanoid 52:d3fb6f1722bf 1248 #define HAS_analogIn0 1
whismanoid 52:d3fb6f1722bf 1249 #define HAS_analogIn1 1
whismanoid 52:d3fb6f1722bf 1250 #define HAS_analogIn2 1
whismanoid 52:d3fb6f1722bf 1251 #define HAS_analogIn3 1
whismanoid 52:d3fb6f1722bf 1252 #define HAS_analogIn4 1
whismanoid 52:d3fb6f1722bf 1253 #define HAS_analogIn5 1
whismanoid 52:d3fb6f1722bf 1254 // #define HAS_analogIn6 1
whismanoid 52:d3fb6f1722bf 1255 // #define HAS_analogIn7 1
whismanoid 52:d3fb6f1722bf 1256 // #define HAS_analogIn8 1
whismanoid 52:d3fb6f1722bf 1257 // #define HAS_analogIn9 1
whismanoid 52:d3fb6f1722bf 1258 // #define HAS_analogIn10 1
whismanoid 52:d3fb6f1722bf 1259 // #define HAS_analogIn11 1
whismanoid 52:d3fb6f1722bf 1260 // #define HAS_analogIn12 1
whismanoid 52:d3fb6f1722bf 1261 // #define HAS_analogIn13 1
whismanoid 52:d3fb6f1722bf 1262 // #define HAS_analogIn14 1
whismanoid 52:d3fb6f1722bf 1263 // #define HAS_analogIn15 1
whismanoid 52:d3fb6f1722bf 1264 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1265 AnalogIn analogIn0(p15); // TARGET_LPC1768 P0.23/AD0.0/I2SRX_CLK/CAP3.0
whismanoid 52:d3fb6f1722bf 1266 #endif
whismanoid 52:d3fb6f1722bf 1267 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1268 AnalogIn analogIn1(p16); // TARGET_LPC1768 P0.24/AD0.1/I2SRX_WS/CAP3.1
whismanoid 52:d3fb6f1722bf 1269 #endif
whismanoid 52:d3fb6f1722bf 1270 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1271 AnalogIn analogIn2(p17); // TARGET_LPC1768 P0.25/AD0.2/I2SRX_SDA/TXD3
whismanoid 52:d3fb6f1722bf 1272 #endif
whismanoid 52:d3fb6f1722bf 1273 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1274 AnalogIn analogIn3(p18); // TARGET_LPC1768 P0.26/AD0.3/AOUT/RXD3
whismanoid 52:d3fb6f1722bf 1275 #endif
whismanoid 52:d3fb6f1722bf 1276 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1277 AnalogIn analogIn4(p19); // TARGET_LPC1768 P1.30/VBUS/AD0.4
whismanoid 52:d3fb6f1722bf 1278 #endif
whismanoid 52:d3fb6f1722bf 1279 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1280 AnalogIn analogIn5(p20); // TARGET_LPC1768 P1.31/SCK1/AD0.5
whismanoid 52:d3fb6f1722bf 1281 #endif
whismanoid 52:d3fb6f1722bf 1282 #if HAS_analogIn6
whismanoid 52:d3fb6f1722bf 1283 AnalogIn analogIn6(____);
whismanoid 52:d3fb6f1722bf 1284 #endif
whismanoid 52:d3fb6f1722bf 1285 #if HAS_analogIn7
whismanoid 52:d3fb6f1722bf 1286 AnalogIn analogIn7(____);
whismanoid 52:d3fb6f1722bf 1287 #endif
whismanoid 52:d3fb6f1722bf 1288 #if HAS_analogIn8
whismanoid 52:d3fb6f1722bf 1289 AnalogIn analogIn8(____);
whismanoid 52:d3fb6f1722bf 1290 #endif
whismanoid 52:d3fb6f1722bf 1291 #if HAS_analogIn9
whismanoid 52:d3fb6f1722bf 1292 AnalogIn analogIn9(____);
whismanoid 52:d3fb6f1722bf 1293 #endif
whismanoid 52:d3fb6f1722bf 1294 #if HAS_analogIn10
whismanoid 52:d3fb6f1722bf 1295 AnalogIn analogIn10(____);
whismanoid 52:d3fb6f1722bf 1296 #endif
whismanoid 52:d3fb6f1722bf 1297 #if HAS_analogIn11
whismanoid 52:d3fb6f1722bf 1298 AnalogIn analogIn11(____);
whismanoid 52:d3fb6f1722bf 1299 #endif
whismanoid 52:d3fb6f1722bf 1300 #if HAS_analogIn12
whismanoid 52:d3fb6f1722bf 1301 AnalogIn analogIn12(____);
whismanoid 52:d3fb6f1722bf 1302 #endif
whismanoid 52:d3fb6f1722bf 1303 #if HAS_analogIn13
whismanoid 52:d3fb6f1722bf 1304 AnalogIn analogIn13(____);
whismanoid 52:d3fb6f1722bf 1305 #endif
whismanoid 52:d3fb6f1722bf 1306 #if HAS_analogIn14
whismanoid 52:d3fb6f1722bf 1307 AnalogIn analogIn14(____);
whismanoid 52:d3fb6f1722bf 1308 #endif
whismanoid 52:d3fb6f1722bf 1309 #if HAS_analogIn15
whismanoid 52:d3fb6f1722bf 1310 AnalogIn analogIn15(____);
whismanoid 52:d3fb6f1722bf 1311 #endif
whismanoid 52:d3fb6f1722bf 1312 #else
whismanoid 52:d3fb6f1722bf 1313 // unknown target
whismanoid 52:d3fb6f1722bf 1314 #endif
whismanoid 52:d3fb6f1722bf 1315 // uncrustify-0.66.1 *INDENT-ON*
whismanoid 52:d3fb6f1722bf 1316 #if HAS_analogIn0 || HAS_analogIn1 \
whismanoid 52:d3fb6f1722bf 1317 || HAS_analogIn2 || HAS_analogIn3 \
whismanoid 52:d3fb6f1722bf 1318 || HAS_analogIn4 || HAS_analogIn5 \
whismanoid 52:d3fb6f1722bf 1319 || HAS_analogIn6 || HAS_analogIn7 \
whismanoid 52:d3fb6f1722bf 1320 || HAS_analogIn8 || HAS_analogIn9 \
whismanoid 52:d3fb6f1722bf 1321 || HAS_analogIn10 || HAS_analogIn11 \
whismanoid 52:d3fb6f1722bf 1322 || HAS_analogIn12 || HAS_analogIn13 \
whismanoid 52:d3fb6f1722bf 1323 || HAS_analogIn14 || HAS_analogIn15
whismanoid 52:d3fb6f1722bf 1324 #define HAS_analogIns 1
whismanoid 57:dc118969c848 1325 #else
whismanoid 57:dc118969c848 1326 #warning "Note: There are no analogIn resources defined"
whismanoid 52:d3fb6f1722bf 1327 #endif
whismanoid 52:d3fb6f1722bf 1328
whismanoid 54:ba810c1d6264 1329 // DigitalInOut pin resource: print the pin index names to serial
whismanoid 54:ba810c1d6264 1330 #if HAS_digitalInOuts
whismanoid 54:ba810c1d6264 1331 void list_digitalInOutPins(Stream& serialStream)
whismanoid 54:ba810c1d6264 1332 {
whismanoid 54:ba810c1d6264 1333 #if HAS_digitalInOut0
whismanoid 54:ba810c1d6264 1334 serialStream.printf(" 0");
whismanoid 54:ba810c1d6264 1335 #endif
whismanoid 54:ba810c1d6264 1336 #if HAS_digitalInOut1
whismanoid 54:ba810c1d6264 1337 serialStream.printf(" 1");
whismanoid 54:ba810c1d6264 1338 #endif
whismanoid 54:ba810c1d6264 1339 #if HAS_digitalInOut2
whismanoid 54:ba810c1d6264 1340 serialStream.printf(" 2");
whismanoid 54:ba810c1d6264 1341 #endif
whismanoid 54:ba810c1d6264 1342 #if HAS_digitalInOut3
whismanoid 54:ba810c1d6264 1343 serialStream.printf(" 3");
whismanoid 54:ba810c1d6264 1344 #endif
whismanoid 54:ba810c1d6264 1345 #if HAS_digitalInOut4
whismanoid 54:ba810c1d6264 1346 serialStream.printf(" 4");
whismanoid 54:ba810c1d6264 1347 #endif
whismanoid 54:ba810c1d6264 1348 #if HAS_digitalInOut5
whismanoid 54:ba810c1d6264 1349 serialStream.printf(" 5");
whismanoid 54:ba810c1d6264 1350 #endif
whismanoid 54:ba810c1d6264 1351 #if HAS_digitalInOut6
whismanoid 54:ba810c1d6264 1352 serialStream.printf(" 6");
whismanoid 54:ba810c1d6264 1353 #endif
whismanoid 54:ba810c1d6264 1354 #if HAS_digitalInOut7
whismanoid 54:ba810c1d6264 1355 serialStream.printf(" 7");
whismanoid 54:ba810c1d6264 1356 #endif
whismanoid 54:ba810c1d6264 1357 #if HAS_digitalInOut8
whismanoid 54:ba810c1d6264 1358 serialStream.printf(" 8");
whismanoid 54:ba810c1d6264 1359 #endif
whismanoid 54:ba810c1d6264 1360 #if HAS_digitalInOut9
whismanoid 54:ba810c1d6264 1361 serialStream.printf(" 9");
whismanoid 54:ba810c1d6264 1362 #endif
whismanoid 54:ba810c1d6264 1363 #if HAS_digitalInOut10
whismanoid 54:ba810c1d6264 1364 serialStream.printf(" 10");
whismanoid 54:ba810c1d6264 1365 #endif
whismanoid 54:ba810c1d6264 1366 #if HAS_digitalInOut11
whismanoid 54:ba810c1d6264 1367 serialStream.printf(" 11");
whismanoid 54:ba810c1d6264 1368 #endif
whismanoid 54:ba810c1d6264 1369 #if HAS_digitalInOut12
whismanoid 54:ba810c1d6264 1370 serialStream.printf(" 12");
whismanoid 54:ba810c1d6264 1371 #endif
whismanoid 54:ba810c1d6264 1372 #if HAS_digitalInOut13
whismanoid 54:ba810c1d6264 1373 serialStream.printf(" 13");
whismanoid 54:ba810c1d6264 1374 #endif
whismanoid 54:ba810c1d6264 1375 #if HAS_digitalInOut14
whismanoid 54:ba810c1d6264 1376 serialStream.printf(" 14");
whismanoid 54:ba810c1d6264 1377 #endif
whismanoid 54:ba810c1d6264 1378 #if HAS_digitalInOut15
whismanoid 54:ba810c1d6264 1379 serialStream.printf(" 15");
whismanoid 54:ba810c1d6264 1380 #endif
whismanoid 54:ba810c1d6264 1381 #if HAS_digitalInOut16
whismanoid 54:ba810c1d6264 1382 serialStream.printf(" 16");
whismanoid 54:ba810c1d6264 1383 #endif
whismanoid 54:ba810c1d6264 1384 #if HAS_digitalInOut17
whismanoid 54:ba810c1d6264 1385 serialStream.printf(" 17");
whismanoid 54:ba810c1d6264 1386 #endif
whismanoid 54:ba810c1d6264 1387 }
whismanoid 54:ba810c1d6264 1388 #endif
whismanoid 54:ba810c1d6264 1389
whismanoid 54:ba810c1d6264 1390
whismanoid 54:ba810c1d6264 1391 // DigitalInOut pin resource: search index
whismanoid 54:ba810c1d6264 1392 #if HAS_digitalInOuts
whismanoid 54:ba810c1d6264 1393 DigitalInOut& find_digitalInOutPin(int cPinIndex)
whismanoid 54:ba810c1d6264 1394 {
whismanoid 54:ba810c1d6264 1395 switch (cPinIndex)
whismanoid 54:ba810c1d6264 1396 {
whismanoid 54:ba810c1d6264 1397 default: // default to the first defined digitalInOut pin
whismanoid 54:ba810c1d6264 1398 #if HAS_digitalInOut0
whismanoid 54:ba810c1d6264 1399 case '0': case 0x00: return digitalInOut0;
whismanoid 54:ba810c1d6264 1400 #endif
whismanoid 54:ba810c1d6264 1401 #if HAS_digitalInOut1
whismanoid 54:ba810c1d6264 1402 case '1': case 0x01: return digitalInOut1;
whismanoid 54:ba810c1d6264 1403 #endif
whismanoid 54:ba810c1d6264 1404 #if HAS_digitalInOut2
whismanoid 54:ba810c1d6264 1405 case '2': case 0x02: return digitalInOut2;
whismanoid 54:ba810c1d6264 1406 #endif
whismanoid 54:ba810c1d6264 1407 #if HAS_digitalInOut3
whismanoid 54:ba810c1d6264 1408 case '3': case 0x03: return digitalInOut3;
whismanoid 54:ba810c1d6264 1409 #endif
whismanoid 54:ba810c1d6264 1410 #if HAS_digitalInOut4
whismanoid 54:ba810c1d6264 1411 case '4': case 0x04: return digitalInOut4;
whismanoid 54:ba810c1d6264 1412 #endif
whismanoid 54:ba810c1d6264 1413 #if HAS_digitalInOut5
whismanoid 54:ba810c1d6264 1414 case '5': case 0x05: return digitalInOut5;
whismanoid 54:ba810c1d6264 1415 #endif
whismanoid 54:ba810c1d6264 1416 #if HAS_digitalInOut6
whismanoid 54:ba810c1d6264 1417 case '6': case 0x06: return digitalInOut6;
whismanoid 54:ba810c1d6264 1418 #endif
whismanoid 54:ba810c1d6264 1419 #if HAS_digitalInOut7
whismanoid 54:ba810c1d6264 1420 case '7': case 0x07: return digitalInOut7;
whismanoid 54:ba810c1d6264 1421 #endif
whismanoid 54:ba810c1d6264 1422 #if HAS_digitalInOut8
whismanoid 54:ba810c1d6264 1423 case '8': case 0x08: return digitalInOut8;
whismanoid 54:ba810c1d6264 1424 #endif
whismanoid 54:ba810c1d6264 1425 #if HAS_digitalInOut9
whismanoid 54:ba810c1d6264 1426 case '9': case 0x09: return digitalInOut9;
whismanoid 54:ba810c1d6264 1427 #endif
whismanoid 54:ba810c1d6264 1428 #if HAS_digitalInOut10
whismanoid 54:ba810c1d6264 1429 case 'a': case 0x0a: return digitalInOut10;
whismanoid 54:ba810c1d6264 1430 #endif
whismanoid 54:ba810c1d6264 1431 #if HAS_digitalInOut11
whismanoid 54:ba810c1d6264 1432 case 'b': case 0x0b: return digitalInOut11;
whismanoid 54:ba810c1d6264 1433 #endif
whismanoid 54:ba810c1d6264 1434 #if HAS_digitalInOut12
whismanoid 54:ba810c1d6264 1435 case 'c': case 0x0c: return digitalInOut12;
whismanoid 54:ba810c1d6264 1436 #endif
whismanoid 54:ba810c1d6264 1437 #if HAS_digitalInOut13
whismanoid 54:ba810c1d6264 1438 case 'd': case 0x0d: return digitalInOut13;
whismanoid 54:ba810c1d6264 1439 #endif
whismanoid 54:ba810c1d6264 1440 #if HAS_digitalInOut14
whismanoid 54:ba810c1d6264 1441 case 'e': case 0x0e: return digitalInOut14;
whismanoid 54:ba810c1d6264 1442 #endif
whismanoid 54:ba810c1d6264 1443 #if HAS_digitalInOut15
whismanoid 54:ba810c1d6264 1444 case 'f': case 0x0f: return digitalInOut15;
whismanoid 54:ba810c1d6264 1445 #endif
whismanoid 54:ba810c1d6264 1446 #if HAS_digitalInOut16
whismanoid 54:ba810c1d6264 1447 case 'g': case 0x10: return digitalInOut16;
whismanoid 54:ba810c1d6264 1448 #endif
whismanoid 54:ba810c1d6264 1449 #if HAS_digitalInOut17
whismanoid 54:ba810c1d6264 1450 case 'h': case 0x11: return digitalInOut17;
whismanoid 54:ba810c1d6264 1451 #endif
whismanoid 54:ba810c1d6264 1452 }
whismanoid 54:ba810c1d6264 1453 }
whismanoid 54:ba810c1d6264 1454 #endif
whismanoid 52:d3fb6f1722bf 1455
whismanoid 52:d3fb6f1722bf 1456
whismanoid 52:d3fb6f1722bf 1457 // AnalogIn pin resource: search index
whismanoid 52:d3fb6f1722bf 1458 #if HAS_analogIns
whismanoid 52:d3fb6f1722bf 1459 AnalogIn& find_analogInPin(int cPinIndex)
whismanoid 52:d3fb6f1722bf 1460 {
whismanoid 52:d3fb6f1722bf 1461 switch (cPinIndex)
whismanoid 52:d3fb6f1722bf 1462 {
whismanoid 52:d3fb6f1722bf 1463 default: // default to the first defined analogIn pin
whismanoid 52:d3fb6f1722bf 1464 #if HAS_analogIn0
whismanoid 52:d3fb6f1722bf 1465 case '0': case 0x00: return analogIn0;
whismanoid 52:d3fb6f1722bf 1466 #endif
whismanoid 52:d3fb6f1722bf 1467 #if HAS_analogIn1
whismanoid 52:d3fb6f1722bf 1468 case '1': case 0x01: return analogIn1;
whismanoid 52:d3fb6f1722bf 1469 #endif
whismanoid 52:d3fb6f1722bf 1470 #if HAS_analogIn2
whismanoid 52:d3fb6f1722bf 1471 case '2': case 0x02: return analogIn2;
whismanoid 52:d3fb6f1722bf 1472 #endif
whismanoid 52:d3fb6f1722bf 1473 #if HAS_analogIn3
whismanoid 52:d3fb6f1722bf 1474 case '3': case 0x03: return analogIn3;
whismanoid 52:d3fb6f1722bf 1475 #endif
whismanoid 52:d3fb6f1722bf 1476 #if HAS_analogIn4
whismanoid 52:d3fb6f1722bf 1477 case '4': case 0x04: return analogIn4;
whismanoid 52:d3fb6f1722bf 1478 #endif
whismanoid 52:d3fb6f1722bf 1479 #if HAS_analogIn5
whismanoid 52:d3fb6f1722bf 1480 case '5': case 0x05: return analogIn5;
whismanoid 52:d3fb6f1722bf 1481 #endif
whismanoid 52:d3fb6f1722bf 1482 #if HAS_analogIn6
whismanoid 52:d3fb6f1722bf 1483 case '6': case 0x06: return analogIn6;
whismanoid 52:d3fb6f1722bf 1484 #endif
whismanoid 52:d3fb6f1722bf 1485 #if HAS_analogIn7
whismanoid 52:d3fb6f1722bf 1486 case '7': case 0x07: return analogIn7;
whismanoid 52:d3fb6f1722bf 1487 #endif
whismanoid 52:d3fb6f1722bf 1488 #if HAS_analogIn8
whismanoid 52:d3fb6f1722bf 1489 case '8': case 0x08: return analogIn8;
whismanoid 52:d3fb6f1722bf 1490 #endif
whismanoid 52:d3fb6f1722bf 1491 #if HAS_analogIn9
whismanoid 52:d3fb6f1722bf 1492 case '9': case 0x09: return analogIn9;
whismanoid 52:d3fb6f1722bf 1493 #endif
whismanoid 52:d3fb6f1722bf 1494 #if HAS_analogIn10
whismanoid 52:d3fb6f1722bf 1495 case 'a': case 0x0a: return analogIn10;
whismanoid 52:d3fb6f1722bf 1496 #endif
whismanoid 52:d3fb6f1722bf 1497 #if HAS_analogIn11
whismanoid 52:d3fb6f1722bf 1498 case 'b': case 0x0b: return analogIn11;
whismanoid 52:d3fb6f1722bf 1499 #endif
whismanoid 52:d3fb6f1722bf 1500 #if HAS_analogIn12
whismanoid 52:d3fb6f1722bf 1501 case 'c': case 0x0c: return analogIn12;
whismanoid 52:d3fb6f1722bf 1502 #endif
whismanoid 52:d3fb6f1722bf 1503 #if HAS_analogIn13
whismanoid 52:d3fb6f1722bf 1504 case 'd': case 0x0d: return analogIn13;
whismanoid 52:d3fb6f1722bf 1505 #endif
whismanoid 52:d3fb6f1722bf 1506 #if HAS_analogIn14
whismanoid 52:d3fb6f1722bf 1507 case 'e': case 0x0e: return analogIn14;
whismanoid 52:d3fb6f1722bf 1508 #endif
whismanoid 52:d3fb6f1722bf 1509 #if HAS_analogIn15
whismanoid 52:d3fb6f1722bf 1510 case 'f': case 0x0f: return analogIn15;
whismanoid 52:d3fb6f1722bf 1511 #endif
whismanoid 52:d3fb6f1722bf 1512 }
whismanoid 52:d3fb6f1722bf 1513 }
whismanoid 52:d3fb6f1722bf 1514 #endif
whismanoid 52:d3fb6f1722bf 1515
whismanoid 52:d3fb6f1722bf 1516 #if HAS_analogIns
whismanoid 52:d3fb6f1722bf 1517 const float analogInPin_fullScaleVoltage[] = {
whismanoid 52:d3fb6f1722bf 1518 # if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 1519 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 52:d3fb6f1722bf 1520 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 52:d3fb6f1722bf 1521 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 52:d3fb6f1722bf 1522 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 52:d3fb6f1722bf 1523 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1524 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1525 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1526 ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1527 ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1528 ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 1529 ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 1530 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1531 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1532 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 52:d3fb6f1722bf 1533 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 52:d3fb6f1722bf 1534 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 52:d3fb6f1722bf 1535 # elif defined(TARGET_MAX32620FTHR)
whismanoid 52:d3fb6f1722bf 1536 #warning "TARGET_MAX32620FTHR not previously tested; need to verify analogIn0..."
whismanoid 52:d3fb6f1722bf 1537 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 52:d3fb6f1722bf 1538 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 52:d3fb6f1722bf 1539 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 52:d3fb6f1722bf 1540 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 52:d3fb6f1722bf 1541 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1542 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1543 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1544 ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1545 ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1546 ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 1547 ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 1548 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1549 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1550 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 52:d3fb6f1722bf 1551 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 52:d3fb6f1722bf 1552 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 52:d3fb6f1722bf 1553 #elif defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 1554 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn0 // fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1555 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn1 // fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1556 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn2 // fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1557 ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn3 // fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1558 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1559 ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 1560 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1561 ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1562 ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V
whismanoid 52:d3fb6f1722bf 1563 ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V
whismanoid 52:d3fb6f1722bf 1564 ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined?
whismanoid 52:d3fb6f1722bf 1565 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1566 ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V
whismanoid 52:d3fb6f1722bf 1567 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 52:d3fb6f1722bf 1568 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 52:d3fb6f1722bf 1569 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 52:d3fb6f1722bf 1570 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 52:d3fb6f1722bf 1571 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 52:d3fb6f1722bf 1572 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 52:d3fb6f1722bf 1573 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 52:d3fb6f1722bf 1574 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 52:d3fb6f1722bf 1575 ADC_FULL_SCALE_VOLTAGE, // analogIn4
whismanoid 52:d3fb6f1722bf 1576 ADC_FULL_SCALE_VOLTAGE, // analogIn5
whismanoid 52:d3fb6f1722bf 1577 ADC_FULL_SCALE_VOLTAGE, // analogIn6
whismanoid 52:d3fb6f1722bf 1578 ADC_FULL_SCALE_VOLTAGE, // analogIn7
whismanoid 52:d3fb6f1722bf 1579 ADC_FULL_SCALE_VOLTAGE, // analogIn8
whismanoid 52:d3fb6f1722bf 1580 ADC_FULL_SCALE_VOLTAGE, // analogIn9
whismanoid 52:d3fb6f1722bf 1581 ADC_FULL_SCALE_VOLTAGE, // analogIn10
whismanoid 52:d3fb6f1722bf 1582 ADC_FULL_SCALE_VOLTAGE, // analogIn11
whismanoid 52:d3fb6f1722bf 1583 ADC_FULL_SCALE_VOLTAGE, // analogIn12
whismanoid 52:d3fb6f1722bf 1584 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 52:d3fb6f1722bf 1585 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 52:d3fb6f1722bf 1586 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 52:d3fb6f1722bf 1587 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 52:d3fb6f1722bf 1588 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 52:d3fb6f1722bf 1589 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 52:d3fb6f1722bf 1590 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 52:d3fb6f1722bf 1591 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 52:d3fb6f1722bf 1592 ADC_FULL_SCALE_VOLTAGE, // analogIn4
whismanoid 52:d3fb6f1722bf 1593 ADC_FULL_SCALE_VOLTAGE, // analogIn5
whismanoid 52:d3fb6f1722bf 1594 ADC_FULL_SCALE_VOLTAGE, // analogIn6
whismanoid 52:d3fb6f1722bf 1595 ADC_FULL_SCALE_VOLTAGE, // analogIn7
whismanoid 52:d3fb6f1722bf 1596 ADC_FULL_SCALE_VOLTAGE, // analogIn8
whismanoid 52:d3fb6f1722bf 1597 ADC_FULL_SCALE_VOLTAGE, // analogIn9
whismanoid 52:d3fb6f1722bf 1598 ADC_FULL_SCALE_VOLTAGE, // analogIn10
whismanoid 52:d3fb6f1722bf 1599 ADC_FULL_SCALE_VOLTAGE, // analogIn11
whismanoid 52:d3fb6f1722bf 1600 ADC_FULL_SCALE_VOLTAGE, // analogIn12
whismanoid 52:d3fb6f1722bf 1601 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 52:d3fb6f1722bf 1602 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 52:d3fb6f1722bf 1603 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 52:d3fb6f1722bf 1604 //#elif defined(TARGET_LPC1768)
whismanoid 52:d3fb6f1722bf 1605 #else
whismanoid 52:d3fb6f1722bf 1606 // unknown target
whismanoid 52:d3fb6f1722bf 1607 ADC_FULL_SCALE_VOLTAGE, // analogIn0
whismanoid 52:d3fb6f1722bf 1608 ADC_FULL_SCALE_VOLTAGE, // analogIn1
whismanoid 52:d3fb6f1722bf 1609 ADC_FULL_SCALE_VOLTAGE, // analogIn2
whismanoid 52:d3fb6f1722bf 1610 ADC_FULL_SCALE_VOLTAGE, // analogIn3
whismanoid 52:d3fb6f1722bf 1611 ADC_FULL_SCALE_VOLTAGE, // analogIn4
whismanoid 52:d3fb6f1722bf 1612 ADC_FULL_SCALE_VOLTAGE, // analogIn5
whismanoid 52:d3fb6f1722bf 1613 ADC_FULL_SCALE_VOLTAGE, // analogIn6
whismanoid 52:d3fb6f1722bf 1614 ADC_FULL_SCALE_VOLTAGE, // analogIn7
whismanoid 52:d3fb6f1722bf 1615 ADC_FULL_SCALE_VOLTAGE, // analogIn8
whismanoid 52:d3fb6f1722bf 1616 ADC_FULL_SCALE_VOLTAGE, // analogIn9
whismanoid 52:d3fb6f1722bf 1617 ADC_FULL_SCALE_VOLTAGE, // analogIn10
whismanoid 52:d3fb6f1722bf 1618 ADC_FULL_SCALE_VOLTAGE, // analogIn11
whismanoid 52:d3fb6f1722bf 1619 ADC_FULL_SCALE_VOLTAGE, // analogIn12
whismanoid 52:d3fb6f1722bf 1620 ADC_FULL_SCALE_VOLTAGE, // analogIn13
whismanoid 52:d3fb6f1722bf 1621 ADC_FULL_SCALE_VOLTAGE, // analogIn14
whismanoid 52:d3fb6f1722bf 1622 ADC_FULL_SCALE_VOLTAGE // analogIn15
whismanoid 52:d3fb6f1722bf 1623 # endif
whismanoid 52:d3fb6f1722bf 1624 };
whismanoid 52:d3fb6f1722bf 1625 #endif
whismanoid 52:d3fb6f1722bf 1626
whismanoid 52:d3fb6f1722bf 1627
whismanoid 52:d3fb6f1722bf 1628
whismanoid 52:d3fb6f1722bf 1629
whismanoid 52:d3fb6f1722bf 1630 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1631 // Option to use LEDs to show status
whismanoid 52:d3fb6f1722bf 1632 #ifndef USE_LEDS
whismanoid 52:d3fb6f1722bf 1633 #define USE_LEDS 1
whismanoid 52:d3fb6f1722bf 1634 #endif
whismanoid 52:d3fb6f1722bf 1635 #if USE_LEDS
whismanoid 52:d3fb6f1722bf 1636 #if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 1637 # define LED_ON 0
whismanoid 52:d3fb6f1722bf 1638 # define LED_OFF 1
whismanoid 52:d3fb6f1722bf 1639 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1640 #elif defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 1641 # define LED_ON 0
whismanoid 52:d3fb6f1722bf 1642 # define LED_OFF 1
whismanoid 52:d3fb6f1722bf 1643 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1644 // TODO1: TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM
whismanoid 52:d3fb6f1722bf 1645 #elif defined(TARGET_LPC1768)
whismanoid 52:d3fb6f1722bf 1646 # define LED_ON 1
whismanoid 52:d3fb6f1722bf 1647 # define LED_OFF 0
whismanoid 52:d3fb6f1722bf 1648 #else // not defined(TARGET_LPC1768 etc.)
whismanoid 52:d3fb6f1722bf 1649 // USE_LEDS with some platform other than MAX32630, MAX32625MBED, LPC1768
whismanoid 52:d3fb6f1722bf 1650 // bugfix for MAX32600MBED LED blink pattern: check if LED_ON/LED_OFF already defined
whismanoid 52:d3fb6f1722bf 1651 # ifndef LED_ON
whismanoid 52:d3fb6f1722bf 1652 # define LED_ON 0
whismanoid 52:d3fb6f1722bf 1653 # endif
whismanoid 52:d3fb6f1722bf 1654 # ifndef LED_OFF
whismanoid 52:d3fb6f1722bf 1655 # define LED_OFF 1
whismanoid 52:d3fb6f1722bf 1656 # endif
whismanoid 52:d3fb6f1722bf 1657 //# define LED_ON 1
whismanoid 52:d3fb6f1722bf 1658 //# define LED_OFF 0
whismanoid 52:d3fb6f1722bf 1659 #endif // target definition
whismanoid 52:d3fb6f1722bf 1660 DigitalOut led1(LED1, LED_OFF); // MAX32630FTHR: LED1 = LED_RED
whismanoid 52:d3fb6f1722bf 1661 DigitalOut led2(LED2, LED_OFF); // MAX32630FTHR: LED2 = LED_GREEN
whismanoid 52:d3fb6f1722bf 1662 DigitalOut led3(LED3, LED_OFF); // MAX32630FTHR: LED3 = LED_BLUE
whismanoid 52:d3fb6f1722bf 1663 DigitalOut led4(LED4, LED_OFF);
whismanoid 52:d3fb6f1722bf 1664 #else // USE_LEDS=0
whismanoid 52:d3fb6f1722bf 1665 // issue #41 support Nucleo_F446RE
whismanoid 52:d3fb6f1722bf 1666 // there are no LED indicators on the board, LED1 interferes with SPI;
whismanoid 52:d3fb6f1722bf 1667 // but we still need placeholders led1 led2 led3 led4.
whismanoid 52:d3fb6f1722bf 1668 // Declare DigitalOut led1 led2 led3 led4 targeting safe pins.
whismanoid 52:d3fb6f1722bf 1669 // PinName NC means NOT_CONNECTED; DigitalOut::is_connected() returns false
whismanoid 52:d3fb6f1722bf 1670 # define LED_ON 0
whismanoid 52:d3fb6f1722bf 1671 # define LED_OFF 1
whismanoid 52:d3fb6f1722bf 1672 DigitalOut led1(NC, LED_OFF);
whismanoid 52:d3fb6f1722bf 1673 DigitalOut led2(NC, LED_OFF);
whismanoid 52:d3fb6f1722bf 1674 DigitalOut led3(NC, LED_OFF);
whismanoid 52:d3fb6f1722bf 1675 DigitalOut led4(NC, LED_OFF);
whismanoid 52:d3fb6f1722bf 1676 #endif // USE_LEDS
whismanoid 52:d3fb6f1722bf 1677 #define led1_RFailLED led1
whismanoid 52:d3fb6f1722bf 1678 #define led2_GPassLED led2
whismanoid 52:d3fb6f1722bf 1679 #define led3_BBusyLED led3
whismanoid 52:d3fb6f1722bf 1680
whismanoid 52:d3fb6f1722bf 1681 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1682
whismanoid 52:d3fb6f1722bf 1683
whismanoid 52:d3fb6f1722bf 1684 // example code board support
whismanoid 52:d3fb6f1722bf 1685 //MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3);
whismanoid 52:d3fb6f1722bf 1686 //DigitalOut rLED(LED1);
whismanoid 52:d3fb6f1722bf 1687 //DigitalOut gLED(LED2);
whismanoid 52:d3fb6f1722bf 1688 //DigitalOut bLED(LED3);
whismanoid 52:d3fb6f1722bf 1689 //
whismanoid 52:d3fb6f1722bf 1690 // Arduino "shield" connector port definitions (MAX32625MBED shown)
whismanoid 52:d3fb6f1722bf 1691 #if defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 1692 #define A0 AIN_0
whismanoid 52:d3fb6f1722bf 1693 #define A1 AIN_1
whismanoid 52:d3fb6f1722bf 1694 #define A2 AIN_2
whismanoid 52:d3fb6f1722bf 1695 #define A3 AIN_3
whismanoid 52:d3fb6f1722bf 1696 #define D0 P0_0
whismanoid 52:d3fb6f1722bf 1697 #define D1 P0_1
whismanoid 52:d3fb6f1722bf 1698 #define D2 P0_2
whismanoid 52:d3fb6f1722bf 1699 #define D3 P0_3
whismanoid 52:d3fb6f1722bf 1700 #define D4 P0_4
whismanoid 52:d3fb6f1722bf 1701 #define D5 P0_5
whismanoid 52:d3fb6f1722bf 1702 #define D6 P0_6
whismanoid 52:d3fb6f1722bf 1703 #define D7 P0_7
whismanoid 52:d3fb6f1722bf 1704 #define D8 P1_4
whismanoid 52:d3fb6f1722bf 1705 #define D9 P1_5
whismanoid 52:d3fb6f1722bf 1706 #define D10 P1_3
whismanoid 52:d3fb6f1722bf 1707 #define D11 P1_1
whismanoid 52:d3fb6f1722bf 1708 #define D12 P1_2
whismanoid 52:d3fb6f1722bf 1709 #define D13 P1_0
whismanoid 52:d3fb6f1722bf 1710 #endif
whismanoid 52:d3fb6f1722bf 1711
whismanoid 57:dc118969c848 1712 // example code declare SPI interface (GPIO controlled CS)
whismanoid 52:d3fb6f1722bf 1713 #if defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 1714 SPI spi(SPI1_MOSI, SPI1_MISO, SPI1_SCK); // mosi, miso, sclk spi1 TARGET_MAX32625MBED: P1_1 P1_2 P1_0 Arduino 10-pin header D11 D12 D13
whismanoid 52:d3fb6f1722bf 1715 DigitalOut spi_cs(SPI1_SS); // TARGET_MAX32625MBED: P1_3 Arduino 10-pin header D10
whismanoid 52:d3fb6f1722bf 1716 #elif defined(TARGET_MAX32600MBED)
whismanoid 52:d3fb6f1722bf 1717 SPI spi(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi1 TARGET_MAX32600MBED: Arduino 10-pin header D11 D12 D13
whismanoid 52:d3fb6f1722bf 1718 DigitalOut spi_cs(SPI2_SS); // Generic: Arduino 10-pin header D10
whismanoid 57:dc118969c848 1719 #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE)
whismanoid 57:dc118969c848 1720 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 1721 // TODO1: avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut
whismanoid 57:dc118969c848 1722 // void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel)
whismanoid 57:dc118969c848 1723 //
whismanoid 57:dc118969c848 1724 // TODO1: NUCLEO_F446RE SPI not working; CS and MOSI data looks OK but no SCLK clock pulses.
whismanoid 57:dc118969c848 1725 SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK); // mosi, miso, sclk spi1 TARGET_NUCLEO_F446RE: Arduino 10-pin header D11 D12 D13
whismanoid 57:dc118969c848 1726 DigitalOut spi_cs(SPI_CS); // TARGET_NUCLEO_F446RE: PB_6 Arduino 10-pin header D10
whismanoid 57:dc118969c848 1727 //
whismanoid 52:d3fb6f1722bf 1728 #else
whismanoid 52:d3fb6f1722bf 1729 SPI spi(D11, D12, D13); // mosi, miso, sclk spi1 TARGET_MAX32600MBED: Arduino 10-pin header D11 D12 D13
whismanoid 52:d3fb6f1722bf 1730 DigitalOut spi_cs(D10); // Generic: Arduino 10-pin header D10
whismanoid 52:d3fb6f1722bf 1731 #endif
whismanoid 52:d3fb6f1722bf 1732
whismanoid 52:d3fb6f1722bf 1733 // example code declare GPIO interface pins
whismanoid 52:d3fb6f1722bf 1734 // example code declare device instance
whismanoid 52:d3fb6f1722bf 1735 MAX11410 g_MAX11410_device(spi, spi_cs, MAX11410::MAX11410_IC);
whismanoid 52:d3fb6f1722bf 1736
whismanoid 52:d3fb6f1722bf 1737
whismanoid 52:d3fb6f1722bf 1738 //----------------------------------------
whismanoid 52:d3fb6f1722bf 1739 // Global SPI options
whismanoid 52:d3fb6f1722bf 1740 //
whismanoid 52:d3fb6f1722bf 1741
whismanoid 52:d3fb6f1722bf 1742 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1743 // Optional Diagnostic function to print SPI transactions
whismanoid 52:d3fb6f1722bf 1744 #ifndef MAX11410_ONSPIPRINT
whismanoid 52:d3fb6f1722bf 1745 #define MAX11410_ONSPIPRINT 1
whismanoid 52:d3fb6f1722bf 1746 #endif // MAX11410_ONSPIPRINT
whismanoid 52:d3fb6f1722bf 1747
whismanoid 52:d3fb6f1722bf 1748 //----------------------------------------
whismanoid 52:d3fb6f1722bf 1749 // Global I2C options
whismanoid 52:d3fb6f1722bf 1750 //
whismanoid 52:d3fb6f1722bf 1751
whismanoid 52:d3fb6f1722bf 1752 #define APPLICATION_ArduinoPinsMonitor 1
whismanoid 52:d3fb6f1722bf 1753
whismanoid 52:d3fb6f1722bf 1754 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1755 // use BUTTON1 trigger some action
whismanoid 52:d3fb6f1722bf 1756 #if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 1757 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1758 #define HAS_BUTTON2_DEMO 0
whismanoid 52:d3fb6f1722bf 1759 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1760 #elif defined(TARGET_MAX32625PICO)
whismanoid 52:d3fb6f1722bf 1761 #warning "TARGET_MAX32625PICO not previously tested; need to define buttons..."
whismanoid 52:d3fb6f1722bf 1762 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1763 #define HAS_BUTTON2_DEMO 0
whismanoid 52:d3fb6f1722bf 1764 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1765 #elif defined(TARGET_MAX32625)
whismanoid 52:d3fb6f1722bf 1766 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1767 #define HAS_BUTTON2_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1768 #elif defined(TARGET_MAX32620FTHR)
whismanoid 52:d3fb6f1722bf 1769 #warning "TARGET_MAX32620FTHR not previously tested; need to define buttons..."
whismanoid 52:d3fb6f1722bf 1770 #define BUTTON1 SW1
whismanoid 52:d3fb6f1722bf 1771 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1772 #define HAS_BUTTON2_DEMO 0
whismanoid 52:d3fb6f1722bf 1773 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1774 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 52:d3fb6f1722bf 1775 #define HAS_BUTTON1_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1776 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1777 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 52:d3fb6f1722bf 1778 #define HAS_BUTTON1_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1779 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 52:d3fb6f1722bf 1780 #else
whismanoid 52:d3fb6f1722bf 1781 #warning "target not previously tested; need to define buttons..."
whismanoid 52:d3fb6f1722bf 1782 #endif
whismanoid 52:d3fb6f1722bf 1783 //
whismanoid 52:d3fb6f1722bf 1784 #ifndef HAS_BUTTON1_DEMO
whismanoid 52:d3fb6f1722bf 1785 #define HAS_BUTTON1_DEMO 0
whismanoid 52:d3fb6f1722bf 1786 #endif
whismanoid 52:d3fb6f1722bf 1787 #ifndef HAS_BUTTON2_DEMO
whismanoid 52:d3fb6f1722bf 1788 #define HAS_BUTTON2_DEMO 0
whismanoid 52:d3fb6f1722bf 1789 #endif
whismanoid 52:d3fb6f1722bf 1790 //
whismanoid 52:d3fb6f1722bf 1791 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 52:d3fb6f1722bf 1792 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 52:d3fb6f1722bf 1793 #ifndef HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 52:d3fb6f1722bf 1794 #define HAS_BUTTON1_DEMO_INTERRUPT_POLLING 1
whismanoid 52:d3fb6f1722bf 1795 #endif
whismanoid 52:d3fb6f1722bf 1796 //
whismanoid 52:d3fb6f1722bf 1797 #ifndef HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1798 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1799 #endif
whismanoid 52:d3fb6f1722bf 1800 #ifndef HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1801 #define HAS_BUTTON2_DEMO_INTERRUPT 1
whismanoid 52:d3fb6f1722bf 1802 #endif
whismanoid 52:d3fb6f1722bf 1803 //
whismanoid 52:d3fb6f1722bf 1804 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1805 # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 52:d3fb6f1722bf 1806 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 52:d3fb6f1722bf 1807 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 52:d3fb6f1722bf 1808 DigitalIn button1(BUTTON1);
whismanoid 52:d3fb6f1722bf 1809 # else
whismanoid 52:d3fb6f1722bf 1810 InterruptIn button1(BUTTON1);
whismanoid 52:d3fb6f1722bf 1811 # endif
whismanoid 52:d3fb6f1722bf 1812 #elif HAS_BUTTON1_DEMO
whismanoid 52:d3fb6f1722bf 1813 DigitalIn button1(BUTTON1);
whismanoid 52:d3fb6f1722bf 1814 #endif
whismanoid 52:d3fb6f1722bf 1815 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1816 # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 52:d3fb6f1722bf 1817 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 52:d3fb6f1722bf 1818 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 52:d3fb6f1722bf 1819 DigitalIn button2(BUTTON2);
whismanoid 52:d3fb6f1722bf 1820 # else
whismanoid 52:d3fb6f1722bf 1821 InterruptIn button2(BUTTON2);
whismanoid 52:d3fb6f1722bf 1822 # endif
whismanoid 52:d3fb6f1722bf 1823 #elif HAS_BUTTON2_DEMO
whismanoid 52:d3fb6f1722bf 1824 DigitalIn button2(BUTTON2);
whismanoid 52:d3fb6f1722bf 1825 #endif
whismanoid 52:d3fb6f1722bf 1826
whismanoid 52:d3fb6f1722bf 1827 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1828 // functions tested by SelfTest()
whismanoid 55:73d886c105f5 1829 extern uint8_t fn_MAX11410_Configure_CTRL_REF(uint8_t ref_sel);
whismanoid 56:6e9c52cc9abe 1830 extern uint8_t fn_MAX11410_Configure_PGA(uint8_t sigpath, uint8_t gain);
whismanoid 52:d3fb6f1722bf 1831 extern double fn_MAX11410_VoltageOfCode_Unipolar(uint32_t value_u24);
whismanoid 52:d3fb6f1722bf 1832 extern double fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary(uint32_t value_u24);
whismanoid 52:d3fb6f1722bf 1833 extern double fn_MAX11410_VoltageOfCode_Bipolar_2sComplement(uint32_t value_u24);
whismanoid 52:d3fb6f1722bf 1834 extern double fn_MAX11410_TemperatureOfRTD_PT1000(double rtd_resistance);
whismanoid 56:6e9c52cc9abe 1835 extern double fn_MAX11410_TemperatureOfRTD_PT100(double rtd_resistance);
whismanoid 56:6e9c52cc9abe 1836 extern double fn_MAX11410_TemperatureOfRTD(double rtd_resistance);
whismanoid 52:d3fb6f1722bf 1837 extern double fn_MAX11410_TemperatureOfTC_TypeK(double tc_voltage);
whismanoid 52:d3fb6f1722bf 1838
whismanoid 52:d3fb6f1722bf 1839 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1840 // optional self-test groups for function SelfTest()
whismanoid 52:d3fb6f1722bf 1841 // enable by changing the #define value from 0 to 1
whismanoid 52:d3fb6f1722bf 1842 #ifndef MAX11410_SELFTEST_UNIPOLAR
whismanoid 52:d3fb6f1722bf 1843 #define MAX11410_SELFTEST_UNIPOLAR 1
whismanoid 52:d3fb6f1722bf 1844 #endif
whismanoid 52:d3fb6f1722bf 1845
whismanoid 52:d3fb6f1722bf 1846 #ifndef MAX11410_SELFTEST_BIPOB
whismanoid 52:d3fb6f1722bf 1847 #define MAX11410_SELFTEST_BIPOB 1
whismanoid 52:d3fb6f1722bf 1848 #endif
whismanoid 52:d3fb6f1722bf 1849
whismanoid 52:d3fb6f1722bf 1850 #ifndef MAX11410_SELFTEST_BIP2C
whismanoid 52:d3fb6f1722bf 1851 #define MAX11410_SELFTEST_BIP2C 1
whismanoid 52:d3fb6f1722bf 1852 #endif
whismanoid 52:d3fb6f1722bf 1853
whismanoid 52:d3fb6f1722bf 1854 #ifndef MAX11410_SELFTEST_RTD_PT1000
whismanoid 52:d3fb6f1722bf 1855 #define MAX11410_SELFTEST_RTD_PT1000 1
whismanoid 52:d3fb6f1722bf 1856 #endif
whismanoid 52:d3fb6f1722bf 1857
whismanoid 56:6e9c52cc9abe 1858 #ifndef MAX11410_SELFTEST_RTD_PT100
whismanoid 56:6e9c52cc9abe 1859 #define MAX11410_SELFTEST_RTD_PT100 1
whismanoid 56:6e9c52cc9abe 1860 #endif
whismanoid 56:6e9c52cc9abe 1861
whismanoid 56:6e9c52cc9abe 1862 #ifndef MAX11410_SELFTEST_RTD
whismanoid 56:6e9c52cc9abe 1863 #define MAX11410_SELFTEST_RTD 1
whismanoid 56:6e9c52cc9abe 1864 #endif
whismanoid 56:6e9c52cc9abe 1865
whismanoid 52:d3fb6f1722bf 1866 #ifndef MAX11410_SELFTEST_TC_1
whismanoid 52:d3fb6f1722bf 1867 #define MAX11410_SELFTEST_TC_1 1
whismanoid 52:d3fb6f1722bf 1868 #endif
whismanoid 52:d3fb6f1722bf 1869
whismanoid 52:d3fb6f1722bf 1870 #ifndef MAX11410_SELFTEST_TC_2
whismanoid 52:d3fb6f1722bf 1871 #define MAX11410_SELFTEST_TC_2 1
whismanoid 52:d3fb6f1722bf 1872 #endif
whismanoid 52:d3fb6f1722bf 1873
whismanoid 52:d3fb6f1722bf 1874 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1875 // When user presses button BUTTON1, perform self test
whismanoid 52:d3fb6f1722bf 1876 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1877 void onButton1FallingEdge(void)
whismanoid 52:d3fb6f1722bf 1878 {
whismanoid 52:d3fb6f1722bf 1879 void SelfTest(CmdLine & cmdLine);
whismanoid 52:d3fb6f1722bf 1880 SelfTest(cmdLine_serial);
whismanoid 52:d3fb6f1722bf 1881 }
whismanoid 52:d3fb6f1722bf 1882 #endif // HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1883
whismanoid 52:d3fb6f1722bf 1884 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1885 // When user presses button BUTTON2, perform demo configuration
whismanoid 52:d3fb6f1722bf 1886 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1887 void onButton2FallingEdge(void)
whismanoid 52:d3fb6f1722bf 1888 {
whismanoid 52:d3fb6f1722bf 1889 // TBD demo configuration
whismanoid 55:73d886c105f5 1890 // CODE GENERATOR: example code: has no member function Configure_Demo
whismanoid 52:d3fb6f1722bf 1891 // TODO diagnostic LED
whismanoid 55:73d886c105f5 1892 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 52:d3fb6f1722bf 1893 }
whismanoid 52:d3fb6f1722bf 1894 #endif // HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 1895
whismanoid 52:d3fb6f1722bf 1896 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1897 void SelfTest(CmdLine & cmdLine)
whismanoid 52:d3fb6f1722bf 1898 {
whismanoid 52:d3fb6f1722bf 1899 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 1900 #if analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 52:d3fb6f1722bf 1901 // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,..
whismanoid 52:d3fb6f1722bf 1902 MaximTinyTester tinyTester(cmdLine, analogIn4, analogIn5, analogIn2, analogIn3, analogIn0, analogIn4, led1_RFailLED, led2_GPassLED, led3_BBusyLED);
whismanoid 52:d3fb6f1722bf 1903 tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[4]; // board support
whismanoid 52:d3fb6f1722bf 1904 tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[5]; // board support
whismanoid 52:d3fb6f1722bf 1905 tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support
whismanoid 52:d3fb6f1722bf 1906 tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support
whismanoid 52:d3fb6f1722bf 1907 tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[0]; // board support
whismanoid 52:d3fb6f1722bf 1908 tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[1]; // board support
whismanoid 52:d3fb6f1722bf 1909 // low range channels AIN0, AIN1, AIN2, AIN3
whismanoid 52:d3fb6f1722bf 1910 #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 52:d3fb6f1722bf 1911 // Platform board uses simple analog inputs
whismanoid 52:d3fb6f1722bf 1912 MaximTinyTester tinyTester(cmdLine, analogIn0, analogIn1, analogIn2, analogIn3, analogIn4, analogIn5, led1_RFailLED, led2_GPassLED, led3_BBusyLED);
whismanoid 52:d3fb6f1722bf 1913 tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[0]; // board support
whismanoid 52:d3fb6f1722bf 1914 tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[1]; // board support
whismanoid 52:d3fb6f1722bf 1915 tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support
whismanoid 52:d3fb6f1722bf 1916 tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support
whismanoid 52:d3fb6f1722bf 1917 tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[4]; // board support
whismanoid 52:d3fb6f1722bf 1918 tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[5]; // board support
whismanoid 52:d3fb6f1722bf 1919 #endif
whismanoid 52:d3fb6f1722bf 1920 tinyTester.clear();
whismanoid 52:d3fb6f1722bf 1921
whismanoid 52:d3fb6f1722bf 1922 // CODE GENERATOR: generate SelfTest based on function docstrings @test lines
whismanoid 52:d3fb6f1722bf 1923
whismanoid 55:73d886c105f5 1924 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test Configure_CTRL_REF(2) expect 1 These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 1925 // ASSERT_EQ(g_MAX11410_device.Configure_CTRL_REF(2), 1); // These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 1926 tinyTester.FunctionCall_Expect("MAX11410.Configure_CTRL_REF", fn_MAX11410_Configure_CTRL_REF, 2, 1); // These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 1927
whismanoid 56:6e9c52cc9abe 1928 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test Configure_PGA(0,0) expect 1 These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 1929 // ASSERT_EQ(g_MAX11410_device.Configure_PGA(0,0), 1); // These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 1930 tinyTester.FunctionCall_Expect("MAX11410.Configure_PGA", fn_MAX11410_Configure_PGA, 0,0, 1); // These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 1931
whismanoid 52:d3fb6f1722bf 1932 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0xFFFFFF) expect 2.500 within 0.030 Full Scale
whismanoid 52:d3fb6f1722bf 1933 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Full Scale
whismanoid 52:d3fb6f1722bf 1934 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0xFFFFFF), 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 1935 tinyTester.err_threshold = 0.030; // within 0.030
whismanoid 52:d3fb6f1722bf 1936 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0xFFFFFF, 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 1937 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1938
whismanoid 52:d3fb6f1722bf 1939 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0xFFFFFE) expect 2.500 Full Scale
whismanoid 52:d3fb6f1722bf 1940 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Full Scale
whismanoid 52:d3fb6f1722bf 1941 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0xFFFFFE), 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 1942 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0xFFFFFE, 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 1943 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1944
whismanoid 52:d3fb6f1722bf 1945 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0xCCCCCC) expect 2.000 Two Volts
whismanoid 52:d3fb6f1722bf 1946 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Two Volts
whismanoid 52:d3fb6f1722bf 1947 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0xCCCCCC), 2.000); // Two Volts
whismanoid 52:d3fb6f1722bf 1948 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0xCCCCCC, 2.000); // Two Volts
whismanoid 52:d3fb6f1722bf 1949 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1950
whismanoid 52:d3fb6f1722bf 1951 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0xC00000) expect 1.875 75% Scale
whismanoid 52:d3fb6f1722bf 1952 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar 75% Scale
whismanoid 52:d3fb6f1722bf 1953 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0xC00000), 1.875); // 75% Scale
whismanoid 52:d3fb6f1722bf 1954 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0xC00000, 1.875); // 75% Scale
whismanoid 52:d3fb6f1722bf 1955 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1956
whismanoid 52:d3fb6f1722bf 1957 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x800000) expect 1.250 Mid Scale
whismanoid 52:d3fb6f1722bf 1958 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Mid Scale
whismanoid 52:d3fb6f1722bf 1959 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x800000), 1.250); // Mid Scale
whismanoid 52:d3fb6f1722bf 1960 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x800000, 1.250); // Mid Scale
whismanoid 52:d3fb6f1722bf 1961 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1962
whismanoid 52:d3fb6f1722bf 1963 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x666666) expect 1.000 One Volt
whismanoid 52:d3fb6f1722bf 1964 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar One Volt
whismanoid 52:d3fb6f1722bf 1965 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x666666), 1.000); // One Volt
whismanoid 52:d3fb6f1722bf 1966 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x666666, 1.000); // One Volt
whismanoid 52:d3fb6f1722bf 1967 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1968
whismanoid 52:d3fb6f1722bf 1969 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x400000) expect 0.625 25% Scale
whismanoid 52:d3fb6f1722bf 1970 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar 25% Scale
whismanoid 52:d3fb6f1722bf 1971 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x400000), 0.625); // 25% Scale
whismanoid 52:d3fb6f1722bf 1972 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x400000, 0.625); // 25% Scale
whismanoid 52:d3fb6f1722bf 1973 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1974
whismanoid 52:d3fb6f1722bf 1975 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x0A3D70) expect 0.100 100mV
whismanoid 52:d3fb6f1722bf 1976 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar 100mV
whismanoid 52:d3fb6f1722bf 1977 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x0A3D70), 0.100); // 100mV
whismanoid 52:d3fb6f1722bf 1978 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x0A3D70, 0.100); // 100mV
whismanoid 52:d3fb6f1722bf 1979 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1980
whismanoid 52:d3fb6f1722bf 1981 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x000064) expect 0.000014901162 100 LSB
whismanoid 52:d3fb6f1722bf 1982 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar 100 LSB
whismanoid 52:d3fb6f1722bf 1983 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x000064), 0.000014901162); // 100 LSB
whismanoid 52:d3fb6f1722bf 1984 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x000064, 0.000014901162); // 100 LSB
whismanoid 52:d3fb6f1722bf 1985 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1986
whismanoid 52:d3fb6f1722bf 1987 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x00000A) expect 0.0000014901162 Ten LSB
whismanoid 52:d3fb6f1722bf 1988 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Ten LSB
whismanoid 52:d3fb6f1722bf 1989 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x00000A), 0.0000014901162); // Ten LSB
whismanoid 52:d3fb6f1722bf 1990 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x00000A, 0.0000014901162); // Ten LSB
whismanoid 52:d3fb6f1722bf 1991 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1992
whismanoid 52:d3fb6f1722bf 1993 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x000003) expect 0.00000044703483 Three LSB
whismanoid 52:d3fb6f1722bf 1994 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Three LSB
whismanoid 52:d3fb6f1722bf 1995 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x000003), 0.00000044703483); // Three LSB
whismanoid 52:d3fb6f1722bf 1996 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x000003, 0.00000044703483); // Three LSB
whismanoid 52:d3fb6f1722bf 1997 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 1998
whismanoid 52:d3fb6f1722bf 1999 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x000002) expect 0.00000029802326 Two LSB
whismanoid 52:d3fb6f1722bf 2000 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Two LSB
whismanoid 52:d3fb6f1722bf 2001 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x000002), 0.00000029802326); // Two LSB
whismanoid 52:d3fb6f1722bf 2002 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x000002, 0.00000029802326); // Two LSB
whismanoid 52:d3fb6f1722bf 2003 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 2004
whismanoid 52:d3fb6f1722bf 2005 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x000001) expect 0.00000014901162 One LSB
whismanoid 52:d3fb6f1722bf 2006 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar One LSB
whismanoid 52:d3fb6f1722bf 2007 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x000001), 0.00000014901162); // One LSB
whismanoid 52:d3fb6f1722bf 2008 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x000001, 0.00000014901162); // One LSB
whismanoid 52:d3fb6f1722bf 2009 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 2010
whismanoid 52:d3fb6f1722bf 2011 // CODE GENERATOR: SelfTest VoltageOfCode_Unipolar @test group UNIPOLAR VoltageOfCode_Unipolar(0x000000) expect 0.0 Zero Scale
whismanoid 52:d3fb6f1722bf 2012 #if MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR VoltageOfCode_Unipolar Zero Scale
whismanoid 52:d3fb6f1722bf 2013 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Unipolar(0x000000), 0.0); // Zero Scale
whismanoid 52:d3fb6f1722bf 2014 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Unipolar", fn_MAX11410_VoltageOfCode_Unipolar, 0x000000, 0.0); // Zero Scale
whismanoid 52:d3fb6f1722bf 2015 #endif // MAX11410_SELFTEST_UNIPOLAR // group UNIPOLAR
whismanoid 52:d3fb6f1722bf 2016
whismanoid 55:73d886c105f5 2017 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test Configure_CTRL_REF(2) expect 1 These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 2018 // ASSERT_EQ(g_MAX11410_device.Configure_CTRL_REF(2), 1); // These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 2019 tinyTester.FunctionCall_Expect("MAX11410.Configure_CTRL_REF", fn_MAX11410_Configure_CTRL_REF, 2, 1); // These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 2020
whismanoid 56:6e9c52cc9abe 2021 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test Configure_PGA(0,0) expect 1 These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 2022 // ASSERT_EQ(g_MAX11410_device.Configure_PGA(0,0), 1); // These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 2023 tinyTester.FunctionCall_Expect("MAX11410.Configure_PGA", fn_MAX11410_Configure_PGA, 0,0, 1); // These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 2024
whismanoid 52:d3fb6f1722bf 2025 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0xFFFFFF) expect 2.5 within 0.030 Full Scale
whismanoid 52:d3fb6f1722bf 2026 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Full Scale
whismanoid 52:d3fb6f1722bf 2027 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0xFFFFFF), 2.5); // Full Scale
whismanoid 52:d3fb6f1722bf 2028 tinyTester.err_threshold = 0.030; // within 0.030
whismanoid 52:d3fb6f1722bf 2029 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0xFFFFFF, 2.5); // Full Scale
whismanoid 52:d3fb6f1722bf 2030 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2031
whismanoid 52:d3fb6f1722bf 2032 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0xFFFFFE) expect 2.5 Full Scale
whismanoid 52:d3fb6f1722bf 2033 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Full Scale
whismanoid 52:d3fb6f1722bf 2034 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0xFFFFFE), 2.5); // Full Scale
whismanoid 52:d3fb6f1722bf 2035 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0xFFFFFE, 2.5); // Full Scale
whismanoid 52:d3fb6f1722bf 2036 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2037
whismanoid 52:d3fb6f1722bf 2038 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0xC00000) expect 1.25 Mid Scale
whismanoid 52:d3fb6f1722bf 2039 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Mid Scale
whismanoid 52:d3fb6f1722bf 2040 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0xC00000), 1.25); // Mid Scale
whismanoid 52:d3fb6f1722bf 2041 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0xC00000, 1.25); // Mid Scale
whismanoid 52:d3fb6f1722bf 2042 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2043
whismanoid 52:d3fb6f1722bf 2044 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x800003) expect 0.00000894069671 Three LSB
whismanoid 52:d3fb6f1722bf 2045 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Three LSB
whismanoid 52:d3fb6f1722bf 2046 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x800003), 0.00000894069671); // Three LSB
whismanoid 52:d3fb6f1722bf 2047 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x800003, 0.00000894069671); // Three LSB
whismanoid 52:d3fb6f1722bf 2048 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2049
whismanoid 52:d3fb6f1722bf 2050 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x800002) expect 0.00000596046447 Two LSB
whismanoid 52:d3fb6f1722bf 2051 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Two LSB
whismanoid 52:d3fb6f1722bf 2052 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x800002), 0.00000596046447); // Two LSB
whismanoid 52:d3fb6f1722bf 2053 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x800002, 0.00000596046447); // Two LSB
whismanoid 52:d3fb6f1722bf 2054 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2055
whismanoid 52:d3fb6f1722bf 2056 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x800001) expect 0.0000029802326 One LSB
whismanoid 52:d3fb6f1722bf 2057 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary One LSB
whismanoid 52:d3fb6f1722bf 2058 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x800001), 0.0000029802326); // One LSB
whismanoid 52:d3fb6f1722bf 2059 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x800001, 0.0000029802326); // One LSB
whismanoid 52:d3fb6f1722bf 2060 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2061
whismanoid 52:d3fb6f1722bf 2062 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x800000) expect 0.0 Zero Scale
whismanoid 52:d3fb6f1722bf 2063 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Zero Scale
whismanoid 52:d3fb6f1722bf 2064 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x800000), 0.0); // Zero Scale
whismanoid 52:d3fb6f1722bf 2065 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x800000, 0.0); // Zero Scale
whismanoid 52:d3fb6f1722bf 2066 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2067
whismanoid 52:d3fb6f1722bf 2068 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x7FFFFF) expect -0.0000029802326 Negative One LSB
whismanoid 52:d3fb6f1722bf 2069 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Negative One LSB
whismanoid 52:d3fb6f1722bf 2070 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x7FFFFF), -0.0000029802326); // Negative One LSB
whismanoid 52:d3fb6f1722bf 2071 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x7FFFFF, -0.0000029802326); // Negative One LSB
whismanoid 52:d3fb6f1722bf 2072 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2073
whismanoid 52:d3fb6f1722bf 2074 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x7FFFFE) expect -0.0000059604644 Negative Two LSB
whismanoid 52:d3fb6f1722bf 2075 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Negative Two LSB
whismanoid 52:d3fb6f1722bf 2076 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x7FFFFE), -0.0000059604644); // Negative Two LSB
whismanoid 52:d3fb6f1722bf 2077 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x7FFFFE, -0.0000059604644); // Negative Two LSB
whismanoid 52:d3fb6f1722bf 2078 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2079
whismanoid 52:d3fb6f1722bf 2080 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x7FFFFD) expect -0.0000089406967 Negative Three LSB
whismanoid 52:d3fb6f1722bf 2081 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Negative Three LSB
whismanoid 52:d3fb6f1722bf 2082 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x7FFFFD), -0.0000089406967); // Negative Three LSB
whismanoid 52:d3fb6f1722bf 2083 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x7FFFFD, -0.0000089406967); // Negative Three LSB
whismanoid 52:d3fb6f1722bf 2084 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2085
whismanoid 52:d3fb6f1722bf 2086 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x400000) expect -1.25 Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2087 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2088 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x400000), -1.25); // Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2089 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x400000, -1.25); // Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2090 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2091
whismanoid 52:d3fb6f1722bf 2092 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x000001) expect -2.5 Negative Full Scale
whismanoid 52:d3fb6f1722bf 2093 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Negative Full Scale
whismanoid 52:d3fb6f1722bf 2094 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x000001), -2.5); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2095 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x000001, -2.5); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2096 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2097
whismanoid 52:d3fb6f1722bf 2098 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_OffsetBinary @test group BIPOB VoltageOfCode_Bipolar_OffsetBinary(0x000000) expect -2.5 Negative Full Scale
whismanoid 52:d3fb6f1722bf 2099 #if MAX11410_SELFTEST_BIPOB // group BIPOB VoltageOfCode_Bipolar_OffsetBinary Negative Full Scale
whismanoid 52:d3fb6f1722bf 2100 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(0x000000), -2.5); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2101 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_OffsetBinary", fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary, 0x000000, -2.5); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2102 #endif // MAX11410_SELFTEST_BIPOB // group BIPOB
whismanoid 52:d3fb6f1722bf 2103
whismanoid 55:73d886c105f5 2104 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test Configure_CTRL_REF(2) expect 1 These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 2105 // ASSERT_EQ(g_MAX11410_device.Configure_CTRL_REF(2), 1); // These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 2106 tinyTester.FunctionCall_Expect("MAX11410.Configure_CTRL_REF", fn_MAX11410_Configure_CTRL_REF, 2, 1); // These tests require REF2 = 2.500V
whismanoid 55:73d886c105f5 2107
whismanoid 56:6e9c52cc9abe 2108 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test Configure_PGA(0,0) expect 1 These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 2109 // ASSERT_EQ(g_MAX11410_device.Configure_PGA(0,0), 1); // These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 2110 tinyTester.FunctionCall_Expect("MAX11410.Configure_PGA", fn_MAX11410_Configure_PGA, 0,0, 1); // These tests require PGA gain=1
whismanoid 56:6e9c52cc9abe 2111
whismanoid 52:d3fb6f1722bf 2112 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x7FFFFF) expect 2.500 within 0.030 Full Scale
whismanoid 52:d3fb6f1722bf 2113 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Full Scale
whismanoid 52:d3fb6f1722bf 2114 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x7FFFFF), 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 2115 tinyTester.err_threshold = 0.030; // within 0.030
whismanoid 52:d3fb6f1722bf 2116 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x7FFFFF, 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 2117 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2118
whismanoid 52:d3fb6f1722bf 2119 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x7FFFFE) expect 2.500 Full Scale
whismanoid 52:d3fb6f1722bf 2120 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Full Scale
whismanoid 52:d3fb6f1722bf 2121 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x7FFFFE), 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 2122 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x7FFFFE, 2.500); // Full Scale
whismanoid 52:d3fb6f1722bf 2123 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2124
whismanoid 52:d3fb6f1722bf 2125 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x666666) expect 2.000 Two Volts
whismanoid 52:d3fb6f1722bf 2126 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Two Volts
whismanoid 52:d3fb6f1722bf 2127 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x666666), 2.000); // Two Volts
whismanoid 52:d3fb6f1722bf 2128 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x666666, 2.000); // Two Volts
whismanoid 52:d3fb6f1722bf 2129 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2130
whismanoid 52:d3fb6f1722bf 2131 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x600000) expect 1.875 75% Scale
whismanoid 52:d3fb6f1722bf 2132 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement 75% Scale
whismanoid 52:d3fb6f1722bf 2133 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x600000), 1.875); // 75% Scale
whismanoid 52:d3fb6f1722bf 2134 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x600000, 1.875); // 75% Scale
whismanoid 52:d3fb6f1722bf 2135 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2136
whismanoid 52:d3fb6f1722bf 2137 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x400000) expect 1.250 Mid Scale
whismanoid 52:d3fb6f1722bf 2138 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Mid Scale
whismanoid 52:d3fb6f1722bf 2139 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x400000), 1.250); // Mid Scale
whismanoid 52:d3fb6f1722bf 2140 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x400000, 1.250); // Mid Scale
whismanoid 52:d3fb6f1722bf 2141 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2142
whismanoid 52:d3fb6f1722bf 2143 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x333333) expect 1.000 One Volt
whismanoid 52:d3fb6f1722bf 2144 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement One Volt
whismanoid 52:d3fb6f1722bf 2145 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x333333), 1.000); // One Volt
whismanoid 52:d3fb6f1722bf 2146 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x333333, 1.000); // One Volt
whismanoid 52:d3fb6f1722bf 2147 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2148
whismanoid 52:d3fb6f1722bf 2149 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x200000) expect 0.625 25% Scale
whismanoid 52:d3fb6f1722bf 2150 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement 25% Scale
whismanoid 52:d3fb6f1722bf 2151 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x200000), 0.625); // 25% Scale
whismanoid 52:d3fb6f1722bf 2152 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x200000, 0.625); // 25% Scale
whismanoid 52:d3fb6f1722bf 2153 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2154
whismanoid 52:d3fb6f1722bf 2155 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x051eb8) expect 0.100 100mV
whismanoid 52:d3fb6f1722bf 2156 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement 100mV
whismanoid 52:d3fb6f1722bf 2157 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x051eb8), 0.100); // 100mV
whismanoid 52:d3fb6f1722bf 2158 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x051eb8, 0.100); // 100mV
whismanoid 52:d3fb6f1722bf 2159 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2160
whismanoid 52:d3fb6f1722bf 2161 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x000003) expect 0.00000894069671 Three LSB
whismanoid 52:d3fb6f1722bf 2162 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Three LSB
whismanoid 52:d3fb6f1722bf 2163 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x000003), 0.00000894069671); // Three LSB
whismanoid 52:d3fb6f1722bf 2164 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x000003, 0.00000894069671); // Three LSB
whismanoid 52:d3fb6f1722bf 2165 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2166
whismanoid 52:d3fb6f1722bf 2167 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x000002) expect 0.00000596046447 Two LSB
whismanoid 52:d3fb6f1722bf 2168 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Two LSB
whismanoid 52:d3fb6f1722bf 2169 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x000002), 0.00000596046447); // Two LSB
whismanoid 52:d3fb6f1722bf 2170 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x000002, 0.00000596046447); // Two LSB
whismanoid 52:d3fb6f1722bf 2171 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2172
whismanoid 52:d3fb6f1722bf 2173 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x000001) expect 0.0000029802326 One LSB
whismanoid 52:d3fb6f1722bf 2174 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement One LSB
whismanoid 52:d3fb6f1722bf 2175 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x000001), 0.0000029802326); // One LSB
whismanoid 52:d3fb6f1722bf 2176 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x000001, 0.0000029802326); // One LSB
whismanoid 52:d3fb6f1722bf 2177 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2178
whismanoid 52:d3fb6f1722bf 2179 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x000000) expect 0.0 Zero Scale
whismanoid 52:d3fb6f1722bf 2180 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Zero Scale
whismanoid 52:d3fb6f1722bf 2181 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x000000), 0.0); // Zero Scale
whismanoid 52:d3fb6f1722bf 2182 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x000000, 0.0); // Zero Scale
whismanoid 52:d3fb6f1722bf 2183 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2184
whismanoid 52:d3fb6f1722bf 2185 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xFFFFFF) expect -0.0000029802326 Negative One LSB
whismanoid 52:d3fb6f1722bf 2186 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative One LSB
whismanoid 52:d3fb6f1722bf 2187 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xFFFFFF), -0.0000029802326); // Negative One LSB
whismanoid 52:d3fb6f1722bf 2188 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xFFFFFF, -0.0000029802326); // Negative One LSB
whismanoid 52:d3fb6f1722bf 2189 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2190
whismanoid 52:d3fb6f1722bf 2191 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xFFFFFE) expect -0.0000059604644 Negative Two LSB
whismanoid 52:d3fb6f1722bf 2192 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative Two LSB
whismanoid 52:d3fb6f1722bf 2193 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xFFFFFE), -0.0000059604644); // Negative Two LSB
whismanoid 52:d3fb6f1722bf 2194 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xFFFFFE, -0.0000059604644); // Negative Two LSB
whismanoid 52:d3fb6f1722bf 2195 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2196
whismanoid 52:d3fb6f1722bf 2197 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xFFFFFD) expect -0.0000089406967 Negative Three LSB
whismanoid 52:d3fb6f1722bf 2198 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative Three LSB
whismanoid 52:d3fb6f1722bf 2199 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xFFFFFD), -0.0000089406967); // Negative Three LSB
whismanoid 52:d3fb6f1722bf 2200 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xFFFFFD, -0.0000089406967); // Negative Three LSB
whismanoid 52:d3fb6f1722bf 2201 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2202
whismanoid 52:d3fb6f1722bf 2203 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xFAE148) expect -0.100 Negative 100mV
whismanoid 52:d3fb6f1722bf 2204 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative 100mV
whismanoid 52:d3fb6f1722bf 2205 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xFAE148), -0.100); // Negative 100mV
whismanoid 52:d3fb6f1722bf 2206 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xFAE148, -0.100); // Negative 100mV
whismanoid 52:d3fb6f1722bf 2207 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2208
whismanoid 52:d3fb6f1722bf 2209 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xE00000) expect -0.625 Negative 25% Scale
whismanoid 52:d3fb6f1722bf 2210 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative 25% Scale
whismanoid 52:d3fb6f1722bf 2211 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xE00000), -0.625); // Negative 25% Scale
whismanoid 52:d3fb6f1722bf 2212 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xE00000, -0.625); // Negative 25% Scale
whismanoid 52:d3fb6f1722bf 2213 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2214
whismanoid 52:d3fb6f1722bf 2215 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xCCCCCD) expect -1.000 Negative One Volt
whismanoid 52:d3fb6f1722bf 2216 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative One Volt
whismanoid 52:d3fb6f1722bf 2217 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xCCCCCD), -1.000); // Negative One Volt
whismanoid 52:d3fb6f1722bf 2218 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xCCCCCD, -1.000); // Negative One Volt
whismanoid 52:d3fb6f1722bf 2219 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2220
whismanoid 52:d3fb6f1722bf 2221 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xC00000) expect -1.250 Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2222 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2223 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xC00000), -1.250); // Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2224 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xC00000, -1.250); // Negative Mid Scale
whismanoid 52:d3fb6f1722bf 2225 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2226
whismanoid 52:d3fb6f1722bf 2227 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0xA00000) expect -1.875 Negative 75% Scale
whismanoid 52:d3fb6f1722bf 2228 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative 75% Scale
whismanoid 52:d3fb6f1722bf 2229 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0xA00000), -1.875); // Negative 75% Scale
whismanoid 52:d3fb6f1722bf 2230 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0xA00000, -1.875); // Negative 75% Scale
whismanoid 52:d3fb6f1722bf 2231 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2232
whismanoid 52:d3fb6f1722bf 2233 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x99999A) expect -2.000 Negative Two Volts
whismanoid 52:d3fb6f1722bf 2234 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative Two Volts
whismanoid 52:d3fb6f1722bf 2235 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x99999A), -2.000); // Negative Two Volts
whismanoid 52:d3fb6f1722bf 2236 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x99999A, -2.000); // Negative Two Volts
whismanoid 52:d3fb6f1722bf 2237 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2238
whismanoid 52:d3fb6f1722bf 2239 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x800001) expect -2.500 Negative Full Scale
whismanoid 52:d3fb6f1722bf 2240 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative Full Scale
whismanoid 52:d3fb6f1722bf 2241 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x800001), -2.500); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2242 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x800001, -2.500); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2243 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2244
whismanoid 52:d3fb6f1722bf 2245 // CODE GENERATOR: SelfTest VoltageOfCode_Bipolar_2sComplement @test group BIP2C VoltageOfCode_Bipolar_2sComplement(0x800000) expect -2.500 Negative Full Scale
whismanoid 52:d3fb6f1722bf 2246 #if MAX11410_SELFTEST_BIP2C // group BIP2C VoltageOfCode_Bipolar_2sComplement Negative Full Scale
whismanoid 52:d3fb6f1722bf 2247 // ASSERT_EQ(g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(0x800000), -2.500); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2248 tinyTester.FunctionCall_Expect("MAX11410.VoltageOfCode_Bipolar_2sComplement", fn_MAX11410_VoltageOfCode_Bipolar_2sComplement, 0x800000, -2.500); // Negative Full Scale
whismanoid 52:d3fb6f1722bf 2249 #endif // MAX11410_SELFTEST_BIP2C // group BIP2C
whismanoid 52:d3fb6f1722bf 2250
whismanoid 52:d3fb6f1722bf 2251 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT1000 @test group RTD_PT1000 TemperatureOfRTD_PT1000(842.94) expect -40.0 within 0.1 PT-1000 RTD at -40C
whismanoid 52:d3fb6f1722bf 2252 #if MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000 TemperatureOfRTD_PT1000 PT-1000 RTD at -40C
whismanoid 52:d3fb6f1722bf 2253 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT1000(842.94), -40.0); // PT-1000 RTD at -40C
whismanoid 52:d3fb6f1722bf 2254 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2255 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT1000", fn_MAX11410_TemperatureOfRTD_PT1000, 842.94, -40.0); // PT-1000 RTD at -40C
whismanoid 52:d3fb6f1722bf 2256 #endif // MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000
whismanoid 52:d3fb6f1722bf 2257
whismanoid 52:d3fb6f1722bf 2258 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT1000 @test group RTD_PT1000 TemperatureOfRTD_PT1000(1000.0) expect 0.0 within 0.1 PT-1000 RTD at 0C
whismanoid 52:d3fb6f1722bf 2259 #if MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000 TemperatureOfRTD_PT1000 PT-1000 RTD at 0C
whismanoid 52:d3fb6f1722bf 2260 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT1000(1000.0), 0.0); // PT-1000 RTD at 0C
whismanoid 52:d3fb6f1722bf 2261 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2262 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT1000", fn_MAX11410_TemperatureOfRTD_PT1000, 1000.0, 0.0); // PT-1000 RTD at 0C
whismanoid 52:d3fb6f1722bf 2263 #endif // MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000
whismanoid 52:d3fb6f1722bf 2264
whismanoid 52:d3fb6f1722bf 2265 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT1000 @test group RTD_PT1000 TemperatureOfRTD_PT1000(1097.3) expect 25.0 within 0.1 PT-1000 RTD at 25C
whismanoid 52:d3fb6f1722bf 2266 #if MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000 TemperatureOfRTD_PT1000 PT-1000 RTD at 25C
whismanoid 52:d3fb6f1722bf 2267 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT1000(1097.3), 25.0); // PT-1000 RTD at 25C
whismanoid 52:d3fb6f1722bf 2268 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2269 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT1000", fn_MAX11410_TemperatureOfRTD_PT1000, 1097.3, 25.0); // PT-1000 RTD at 25C
whismanoid 52:d3fb6f1722bf 2270 #endif // MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000
whismanoid 52:d3fb6f1722bf 2271
whismanoid 52:d3fb6f1722bf 2272 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT1000 @test group RTD_PT1000 TemperatureOfRTD_PT1000(1328.1) expect 85.0 within 0.1 PT-1000 RTD at 85C
whismanoid 52:d3fb6f1722bf 2273 #if MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000 TemperatureOfRTD_PT1000 PT-1000 RTD at 85C
whismanoid 52:d3fb6f1722bf 2274 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT1000(1328.1), 85.0); // PT-1000 RTD at 85C
whismanoid 52:d3fb6f1722bf 2275 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2276 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT1000", fn_MAX11410_TemperatureOfRTD_PT1000, 1328.1, 85.0); // PT-1000 RTD at 85C
whismanoid 52:d3fb6f1722bf 2277 #endif // MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000
whismanoid 52:d3fb6f1722bf 2278
whismanoid 52:d3fb6f1722bf 2279 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT1000 @test group RTD_PT1000 TemperatureOfRTD_PT1000(1479.5) expect 125.0 within 0.1 PT-1000 RTD at 125C
whismanoid 52:d3fb6f1722bf 2280 #if MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000 TemperatureOfRTD_PT1000 PT-1000 RTD at 125C
whismanoid 52:d3fb6f1722bf 2281 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT1000(1479.5), 125.0); // PT-1000 RTD at 125C
whismanoid 52:d3fb6f1722bf 2282 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2283 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT1000", fn_MAX11410_TemperatureOfRTD_PT1000, 1479.5, 125.0); // PT-1000 RTD at 125C
whismanoid 52:d3fb6f1722bf 2284 #endif // MAX11410_SELFTEST_RTD_PT1000 // group RTD_PT1000
whismanoid 52:d3fb6f1722bf 2285
whismanoid 56:6e9c52cc9abe 2286 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT100 @test group RTD_PT100 TemperatureOfRTD_PT100(84.294) expect -40.0 within 0.1 PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2287 #if MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100 TemperatureOfRTD_PT100 PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2288 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT100(84.294), -40.0); // PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2289 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2290 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT100", fn_MAX11410_TemperatureOfRTD_PT100, 84.294, -40.0); // PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2291 #endif // MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100
whismanoid 56:6e9c52cc9abe 2292
whismanoid 56:6e9c52cc9abe 2293 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT100 @test group RTD_PT100 TemperatureOfRTD_PT100(100.00) expect 0.0 within 0.1 PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2294 #if MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100 TemperatureOfRTD_PT100 PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2295 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT100(100.00), 0.0); // PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2296 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2297 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT100", fn_MAX11410_TemperatureOfRTD_PT100, 100.00, 0.0); // PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2298 #endif // MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100
whismanoid 56:6e9c52cc9abe 2299
whismanoid 56:6e9c52cc9abe 2300 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT100 @test group RTD_PT100 TemperatureOfRTD_PT100(109.73) expect 25.0 within 0.1 PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2301 #if MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100 TemperatureOfRTD_PT100 PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2302 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT100(109.73), 25.0); // PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2303 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2304 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT100", fn_MAX11410_TemperatureOfRTD_PT100, 109.73, 25.0); // PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2305 #endif // MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100
whismanoid 56:6e9c52cc9abe 2306
whismanoid 56:6e9c52cc9abe 2307 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT100 @test group RTD_PT100 TemperatureOfRTD_PT100(132.81) expect 85.0 within 0.1 PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2308 #if MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100 TemperatureOfRTD_PT100 PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2309 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT100(132.81), 85.0); // PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2310 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2311 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT100", fn_MAX11410_TemperatureOfRTD_PT100, 132.81, 85.0); // PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2312 #endif // MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100
whismanoid 56:6e9c52cc9abe 2313
whismanoid 56:6e9c52cc9abe 2314 // CODE GENERATOR: SelfTest TemperatureOfRTD_PT100 @test group RTD_PT100 TemperatureOfRTD_PT100(147.95) expect 125.0 within 0.1 PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2315 #if MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100 TemperatureOfRTD_PT100 PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2316 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD_PT100(147.95), 125.0); // PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2317 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2318 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD_PT100", fn_MAX11410_TemperatureOfRTD_PT100, 147.95, 125.0); // PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2319 #endif // MAX11410_SELFTEST_RTD_PT100 // group RTD_PT100
whismanoid 56:6e9c52cc9abe 2320
whismanoid 56:6e9c52cc9abe 2321 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(84.294) expect -40.0 within 0.1 PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2322 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2323 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(84.294), -40.0); // PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2324 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2325 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 84.294, -40.0); // PT-100 RTD at -40C
whismanoid 56:6e9c52cc9abe 2326 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2327
whismanoid 56:6e9c52cc9abe 2328 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(100.00) expect 0.0 within 0.1 PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2329 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2330 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(100.00), 0.0); // PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2331 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2332 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 100.00, 0.0); // PT-100 RTD at 0C
whismanoid 56:6e9c52cc9abe 2333 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2334
whismanoid 56:6e9c52cc9abe 2335 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(109.73) expect 25.0 within 0.1 PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2336 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2337 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(109.73), 25.0); // PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2338 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2339 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 109.73, 25.0); // PT-100 RTD at 25C
whismanoid 56:6e9c52cc9abe 2340 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2341
whismanoid 56:6e9c52cc9abe 2342 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(132.81) expect 85.0 within 0.1 PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2343 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2344 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(132.81), 85.0); // PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2345 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2346 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 132.81, 85.0); // PT-100 RTD at 85C
whismanoid 56:6e9c52cc9abe 2347 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2348
whismanoid 56:6e9c52cc9abe 2349 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(147.95) expect 125.0 within 0.1 PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2350 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2351 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(147.95), 125.0); // PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2352 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2353 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 147.95, 125.0); // PT-100 RTD at 125C
whismanoid 56:6e9c52cc9abe 2354 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2355
whismanoid 56:6e9c52cc9abe 2356 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(842.94) expect -40.0 within 0.1 PT-1000 RTD at -40C
whismanoid 56:6e9c52cc9abe 2357 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-1000 RTD at -40C
whismanoid 56:6e9c52cc9abe 2358 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(842.94), -40.0); // PT-1000 RTD at -40C
whismanoid 56:6e9c52cc9abe 2359 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2360 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 842.94, -40.0); // PT-1000 RTD at -40C
whismanoid 56:6e9c52cc9abe 2361 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2362
whismanoid 56:6e9c52cc9abe 2363 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(1000.0) expect 0.0 within 0.1 PT-1000 RTD at 0C
whismanoid 56:6e9c52cc9abe 2364 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-1000 RTD at 0C
whismanoid 56:6e9c52cc9abe 2365 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(1000.0), 0.0); // PT-1000 RTD at 0C
whismanoid 56:6e9c52cc9abe 2366 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2367 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 1000.0, 0.0); // PT-1000 RTD at 0C
whismanoid 56:6e9c52cc9abe 2368 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2369
whismanoid 56:6e9c52cc9abe 2370 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(1097.3) expect 25.0 within 0.1 PT-1000 RTD at 25C
whismanoid 56:6e9c52cc9abe 2371 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-1000 RTD at 25C
whismanoid 56:6e9c52cc9abe 2372 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(1097.3), 25.0); // PT-1000 RTD at 25C
whismanoid 56:6e9c52cc9abe 2373 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2374 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 1097.3, 25.0); // PT-1000 RTD at 25C
whismanoid 56:6e9c52cc9abe 2375 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2376
whismanoid 56:6e9c52cc9abe 2377 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(1328.1) expect 85.0 within 0.1 PT-1000 RTD at 85C
whismanoid 56:6e9c52cc9abe 2378 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-1000 RTD at 85C
whismanoid 56:6e9c52cc9abe 2379 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(1328.1), 85.0); // PT-1000 RTD at 85C
whismanoid 56:6e9c52cc9abe 2380 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2381 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 1328.1, 85.0); // PT-1000 RTD at 85C
whismanoid 56:6e9c52cc9abe 2382 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2383
whismanoid 56:6e9c52cc9abe 2384 // CODE GENERATOR: SelfTest TemperatureOfRTD @test group RTD TemperatureOfRTD(1479.5) expect 125.0 within 0.1 PT-1000 RTD at 125C
whismanoid 56:6e9c52cc9abe 2385 #if MAX11410_SELFTEST_RTD // group RTD TemperatureOfRTD PT-1000 RTD at 125C
whismanoid 56:6e9c52cc9abe 2386 // ASSERT_EQ(g_MAX11410_device.TemperatureOfRTD(1479.5), 125.0); // PT-1000 RTD at 125C
whismanoid 56:6e9c52cc9abe 2387 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 56:6e9c52cc9abe 2388 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfRTD", fn_MAX11410_TemperatureOfRTD, 1479.5, 125.0); // PT-1000 RTD at 125C
whismanoid 56:6e9c52cc9abe 2389 #endif // MAX11410_SELFTEST_RTD // group RTD
whismanoid 56:6e9c52cc9abe 2390
whismanoid 52:d3fb6f1722bf 2391 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(0.000e-3) expect 0.0 within 0.1 TC_TypeK at 0C = 0.000mV
whismanoid 52:d3fb6f1722bf 2392 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 0C = 0.000mV
whismanoid 52:d3fb6f1722bf 2393 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.000e-3), 0.0); // TC_TypeK at 0C = 0.000mV
whismanoid 52:d3fb6f1722bf 2394 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2395 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.000e-3, 0.0); // TC_TypeK at 0C = 0.000mV
whismanoid 52:d3fb6f1722bf 2396 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2397
whismanoid 52:d3fb6f1722bf 2398 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(0.039e-3) expect 1.0 within 0.1 TC_TypeK at 1C = 0.039mV
whismanoid 52:d3fb6f1722bf 2399 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 1C = 0.039mV
whismanoid 52:d3fb6f1722bf 2400 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.039e-3), 1.0); // TC_TypeK at 1C = 0.039mV
whismanoid 52:d3fb6f1722bf 2401 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2402 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.039e-3, 1.0); // TC_TypeK at 1C = 0.039mV
whismanoid 52:d3fb6f1722bf 2403 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2404
whismanoid 52:d3fb6f1722bf 2405 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(0.079e-3) expect 2.0 within 0.1 TC_TypeK at 2C = 0.079mV
whismanoid 52:d3fb6f1722bf 2406 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 2C = 0.079mV
whismanoid 52:d3fb6f1722bf 2407 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.079e-3), 2.0); // TC_TypeK at 2C = 0.079mV
whismanoid 52:d3fb6f1722bf 2408 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2409 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.079e-3, 2.0); // TC_TypeK at 2C = 0.079mV
whismanoid 52:d3fb6f1722bf 2410 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2411
whismanoid 52:d3fb6f1722bf 2412 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(0.119e-3) expect 3.0 within 0.1 TC_TypeK at 3C = 0.119mV
whismanoid 52:d3fb6f1722bf 2413 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 3C = 0.119mV
whismanoid 52:d3fb6f1722bf 2414 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.119e-3), 3.0); // TC_TypeK at 3C = 0.119mV
whismanoid 52:d3fb6f1722bf 2415 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2416 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.119e-3, 3.0); // TC_TypeK at 3C = 0.119mV
whismanoid 52:d3fb6f1722bf 2417 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2418
whismanoid 52:d3fb6f1722bf 2419 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(0.158e-3) expect 4.0 within 0.1 TC_TypeK at 4C = 0.158mV
whismanoid 52:d3fb6f1722bf 2420 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 4C = 0.158mV
whismanoid 52:d3fb6f1722bf 2421 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.158e-3), 4.0); // TC_TypeK at 4C = 0.158mV
whismanoid 52:d3fb6f1722bf 2422 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2423 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.158e-3, 4.0); // TC_TypeK at 4C = 0.158mV
whismanoid 52:d3fb6f1722bf 2424 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2425
whismanoid 52:d3fb6f1722bf 2426 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(0.198e-3) expect 5.0 within 0.1 TC_TypeK at 5C = 0.198mV
whismanoid 52:d3fb6f1722bf 2427 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 5C = 0.198mV
whismanoid 52:d3fb6f1722bf 2428 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.198e-3), 5.0); // TC_TypeK at 5C = 0.198mV
whismanoid 52:d3fb6f1722bf 2429 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2430 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.198e-3, 5.0); // TC_TypeK at 5C = 0.198mV
whismanoid 52:d3fb6f1722bf 2431 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2432
whismanoid 52:d3fb6f1722bf 2433 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(0.238e-3) expect 6.0 within 0.1 TC_TypeK at 6C = 0.238mV
whismanoid 52:d3fb6f1722bf 2434 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 6C = 0.238mV
whismanoid 52:d3fb6f1722bf 2435 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.238e-3), 6.0); // TC_TypeK at 6C = 0.238mV
whismanoid 52:d3fb6f1722bf 2436 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2437 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.238e-3, 6.0); // TC_TypeK at 6C = 0.238mV
whismanoid 52:d3fb6f1722bf 2438 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2439
whismanoid 52:d3fb6f1722bf 2440 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(0.2775e-3) expect 7.0 within 0.1 TC_TypeK at 7C = 0.2775mV
whismanoid 52:d3fb6f1722bf 2441 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 7C = 0.2775mV
whismanoid 52:d3fb6f1722bf 2442 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.2775e-3), 7.0); // TC_TypeK at 7C = 0.2775mV
whismanoid 52:d3fb6f1722bf 2443 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2444 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.2775e-3, 7.0); // TC_TypeK at 7C = 0.2775mV
whismanoid 52:d3fb6f1722bf 2445 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2446
whismanoid 52:d3fb6f1722bf 2447 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(0.317e-3) expect 8.0 within 0.1 TC_TypeK at 8C = 0.317mV
whismanoid 52:d3fb6f1722bf 2448 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 8C = 0.317mV
whismanoid 52:d3fb6f1722bf 2449 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.317e-3), 8.0); // TC_TypeK at 8C = 0.317mV
whismanoid 52:d3fb6f1722bf 2450 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2451 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.317e-3, 8.0); // TC_TypeK at 8C = 0.317mV
whismanoid 52:d3fb6f1722bf 2452 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2453
whismanoid 52:d3fb6f1722bf 2454 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(0.357e-3) expect 9.0 within 0.1 TC_TypeK at 9C = 0.357mV
whismanoid 52:d3fb6f1722bf 2455 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 9C = 0.357mV
whismanoid 52:d3fb6f1722bf 2456 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.357e-3), 9.0); // TC_TypeK at 9C = 0.357mV
whismanoid 52:d3fb6f1722bf 2457 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2458 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.357e-3, 9.0); // TC_TypeK at 9C = 0.357mV
whismanoid 52:d3fb6f1722bf 2459 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2460
whismanoid 52:d3fb6f1722bf 2461 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(0.397e-3) expect 10.0 within 0.1 TC_TypeK at 10C = 0.397mV
whismanoid 52:d3fb6f1722bf 2462 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 10C = 0.397mV
whismanoid 52:d3fb6f1722bf 2463 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.397e-3), 10.0); // TC_TypeK at 10C = 0.397mV
whismanoid 52:d3fb6f1722bf 2464 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2465 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.397e-3, 10.0); // TC_TypeK at 10C = 0.397mV
whismanoid 52:d3fb6f1722bf 2466 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2467
whismanoid 52:d3fb6f1722bf 2468 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(0.798e-3) expect 20.0 within 0.1 TC_TypeK at 20C = 0.798mV
whismanoid 52:d3fb6f1722bf 2469 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 20C = 0.798mV
whismanoid 52:d3fb6f1722bf 2470 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(0.798e-3), 20.0); // TC_TypeK at 20C = 0.798mV
whismanoid 52:d3fb6f1722bf 2471 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2472 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 0.798e-3, 20.0); // TC_TypeK at 20C = 0.798mV
whismanoid 52:d3fb6f1722bf 2473 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2474
whismanoid 52:d3fb6f1722bf 2475 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(1.081e-3) expect 27.0 within 0.1 TC_TypeK at 27C = 1.081mV
whismanoid 52:d3fb6f1722bf 2476 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 27C = 1.081mV
whismanoid 52:d3fb6f1722bf 2477 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(1.081e-3), 27.0); // TC_TypeK at 27C = 1.081mV
whismanoid 52:d3fb6f1722bf 2478 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2479 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 1.081e-3, 27.0); // TC_TypeK at 27C = 1.081mV
whismanoid 52:d3fb6f1722bf 2480 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2481
whismanoid 52:d3fb6f1722bf 2482 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(1.203e-3) expect 30.0 within 0.1 TC_TypeK at 30C = 1.203mV
whismanoid 52:d3fb6f1722bf 2483 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 30C = 1.203mV
whismanoid 52:d3fb6f1722bf 2484 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(1.203e-3), 30.0); // TC_TypeK at 30C = 1.203mV
whismanoid 52:d3fb6f1722bf 2485 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2486 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 1.203e-3, 30.0); // TC_TypeK at 30C = 1.203mV
whismanoid 52:d3fb6f1722bf 2487 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2488
whismanoid 52:d3fb6f1722bf 2489 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(1.612e-3) expect 40.0 within 0.1 TC_TypeK at 40C = 1.612mV
whismanoid 52:d3fb6f1722bf 2490 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 40C = 1.612mV
whismanoid 52:d3fb6f1722bf 2491 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(1.612e-3), 40.0); // TC_TypeK at 40C = 1.612mV
whismanoid 52:d3fb6f1722bf 2492 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2493 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 1.612e-3, 40.0); // TC_TypeK at 40C = 1.612mV
whismanoid 52:d3fb6f1722bf 2494 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2495
whismanoid 52:d3fb6f1722bf 2496 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(2.023e-3) expect 50.0 within 0.1 TC_TypeK at 50C = 2.023mV
whismanoid 52:d3fb6f1722bf 2497 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 50C = 2.023mV
whismanoid 52:d3fb6f1722bf 2498 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(2.023e-3), 50.0); // TC_TypeK at 50C = 2.023mV
whismanoid 52:d3fb6f1722bf 2499 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2500 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 2.023e-3, 50.0); // TC_TypeK at 50C = 2.023mV
whismanoid 52:d3fb6f1722bf 2501 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2502
whismanoid 52:d3fb6f1722bf 2503 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(2.436e-3) expect 60.0 within 0.1 TC_TypeK at 60C = 2.436mV
whismanoid 52:d3fb6f1722bf 2504 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 60C = 2.436mV
whismanoid 52:d3fb6f1722bf 2505 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(2.436e-3), 60.0); // TC_TypeK at 60C = 2.436mV
whismanoid 52:d3fb6f1722bf 2506 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2507 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 2.436e-3, 60.0); // TC_TypeK at 60C = 2.436mV
whismanoid 52:d3fb6f1722bf 2508 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2509
whismanoid 52:d3fb6f1722bf 2510 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(2.851e-3) expect 70.0 within 0.1 TC_TypeK at 70C = 2.851mV
whismanoid 52:d3fb6f1722bf 2511 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 70C = 2.851mV
whismanoid 52:d3fb6f1722bf 2512 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(2.851e-3), 70.0); // TC_TypeK at 70C = 2.851mV
whismanoid 52:d3fb6f1722bf 2513 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2514 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 2.851e-3, 70.0); // TC_TypeK at 70C = 2.851mV
whismanoid 52:d3fb6f1722bf 2515 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2516
whismanoid 52:d3fb6f1722bf 2517 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(3.267e-3) expect 80.0 within 0.1 TC_TypeK at 80C = 3.267mV
whismanoid 52:d3fb6f1722bf 2518 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 80C = 3.267mV
whismanoid 52:d3fb6f1722bf 2519 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(3.267e-3), 80.0); // TC_TypeK at 80C = 3.267mV
whismanoid 52:d3fb6f1722bf 2520 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2521 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 3.267e-3, 80.0); // TC_TypeK at 80C = 3.267mV
whismanoid 52:d3fb6f1722bf 2522 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2523
whismanoid 52:d3fb6f1722bf 2524 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(3.682e-3) expect 90.0 within 0.1 TC_TypeK at 90C = 3.682mV
whismanoid 52:d3fb6f1722bf 2525 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 90C = 3.682mV
whismanoid 52:d3fb6f1722bf 2526 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(3.682e-3), 90.0); // TC_TypeK at 90C = 3.682mV
whismanoid 52:d3fb6f1722bf 2527 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2528 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 3.682e-3, 90.0); // TC_TypeK at 90C = 3.682mV
whismanoid 52:d3fb6f1722bf 2529 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2530
whismanoid 52:d3fb6f1722bf 2531 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(4.096e-3) expect 100.0 within 0.1 TC_TypeK at 100C = 4.096mV
whismanoid 52:d3fb6f1722bf 2532 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 100C = 4.096mV
whismanoid 52:d3fb6f1722bf 2533 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(4.096e-3), 100.0); // TC_TypeK at 100C = 4.096mV
whismanoid 52:d3fb6f1722bf 2534 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2535 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 4.096e-3, 100.0); // TC_TypeK at 100C = 4.096mV
whismanoid 52:d3fb6f1722bf 2536 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2537
whismanoid 52:d3fb6f1722bf 2538 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(4.509e-3) expect 110.0 within 0.1 TC_TypeK at 110C = 4.509mV
whismanoid 52:d3fb6f1722bf 2539 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 110C = 4.509mV
whismanoid 52:d3fb6f1722bf 2540 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(4.509e-3), 110.0); // TC_TypeK at 110C = 4.509mV
whismanoid 52:d3fb6f1722bf 2541 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2542 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 4.509e-3, 110.0); // TC_TypeK at 110C = 4.509mV
whismanoid 52:d3fb6f1722bf 2543 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2544
whismanoid 52:d3fb6f1722bf 2545 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(4.920e-3) expect 120.0 within 0.1 TC_TypeK at 120C = 4.920mV
whismanoid 52:d3fb6f1722bf 2546 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 120C = 4.920mV
whismanoid 52:d3fb6f1722bf 2547 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(4.920e-3), 120.0); // TC_TypeK at 120C = 4.920mV
whismanoid 52:d3fb6f1722bf 2548 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2549 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 4.920e-3, 120.0); // TC_TypeK at 120C = 4.920mV
whismanoid 52:d3fb6f1722bf 2550 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2551
whismanoid 52:d3fb6f1722bf 2552 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(5.328e-3) expect 130.0 within 0.1 TC_TypeK at 130C = 5.328mV
whismanoid 52:d3fb6f1722bf 2553 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 130C = 5.328mV
whismanoid 52:d3fb6f1722bf 2554 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(5.328e-3), 130.0); // TC_TypeK at 130C = 5.328mV
whismanoid 52:d3fb6f1722bf 2555 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2556 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 5.328e-3, 130.0); // TC_TypeK at 130C = 5.328mV
whismanoid 52:d3fb6f1722bf 2557 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2558
whismanoid 52:d3fb6f1722bf 2559 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(5.735e-3) expect 140.0 within 0.1 TC_TypeK at 140C = 5.735mV
whismanoid 52:d3fb6f1722bf 2560 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 140C = 5.735mV
whismanoid 52:d3fb6f1722bf 2561 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(5.735e-3), 140.0); // TC_TypeK at 140C = 5.735mV
whismanoid 52:d3fb6f1722bf 2562 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2563 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 5.735e-3, 140.0); // TC_TypeK at 140C = 5.735mV
whismanoid 52:d3fb6f1722bf 2564 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2565
whismanoid 52:d3fb6f1722bf 2566 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(6.138e-3) expect 150.0 within 0.1 TC_TypeK at 150C = 6.138mV
whismanoid 52:d3fb6f1722bf 2567 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 150C = 6.138mV
whismanoid 52:d3fb6f1722bf 2568 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(6.138e-3), 150.0); // TC_TypeK at 150C = 6.138mV
whismanoid 52:d3fb6f1722bf 2569 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2570 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 6.138e-3, 150.0); // TC_TypeK at 150C = 6.138mV
whismanoid 52:d3fb6f1722bf 2571 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2572
whismanoid 52:d3fb6f1722bf 2573 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(6.540e-3) expect 160.0 within 0.1 TC_TypeK at 160C = 6.540mV
whismanoid 52:d3fb6f1722bf 2574 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 160C = 6.540mV
whismanoid 52:d3fb6f1722bf 2575 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(6.540e-3), 160.0); // TC_TypeK at 160C = 6.540mV
whismanoid 52:d3fb6f1722bf 2576 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2577 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 6.540e-3, 160.0); // TC_TypeK at 160C = 6.540mV
whismanoid 52:d3fb6f1722bf 2578 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2579
whismanoid 52:d3fb6f1722bf 2580 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(6.941e-3) expect 170.0 within 0.1 TC_TypeK at 170C = 6.941mV
whismanoid 52:d3fb6f1722bf 2581 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 170C = 6.941mV
whismanoid 52:d3fb6f1722bf 2582 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(6.941e-3), 170.0); // TC_TypeK at 170C = 6.941mV
whismanoid 52:d3fb6f1722bf 2583 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2584 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 6.941e-3, 170.0); // TC_TypeK at 170C = 6.941mV
whismanoid 52:d3fb6f1722bf 2585 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2586
whismanoid 52:d3fb6f1722bf 2587 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(7.340e-3) expect 180.0 within 0.1 TC_TypeK at 180C = 7.340mV
whismanoid 52:d3fb6f1722bf 2588 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 180C = 7.340mV
whismanoid 52:d3fb6f1722bf 2589 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(7.340e-3), 180.0); // TC_TypeK at 180C = 7.340mV
whismanoid 52:d3fb6f1722bf 2590 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2591 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 7.340e-3, 180.0); // TC_TypeK at 180C = 7.340mV
whismanoid 52:d3fb6f1722bf 2592 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2593
whismanoid 52:d3fb6f1722bf 2594 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(7.739e-3) expect 190.0 within 0.1 TC_TypeK at 190C = 7.739mV
whismanoid 52:d3fb6f1722bf 2595 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 190C = 7.739mV
whismanoid 52:d3fb6f1722bf 2596 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(7.739e-3), 190.0); // TC_TypeK at 190C = 7.739mV
whismanoid 52:d3fb6f1722bf 2597 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2598 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 7.739e-3, 190.0); // TC_TypeK at 190C = 7.739mV
whismanoid 52:d3fb6f1722bf 2599 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2600
whismanoid 52:d3fb6f1722bf 2601 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(8.138e-3) expect 200.0 within 0.1 TC_TypeK at 200C = 8.138mV
whismanoid 52:d3fb6f1722bf 2602 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 200C = 8.138mV
whismanoid 52:d3fb6f1722bf 2603 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(8.138e-3), 200.0); // TC_TypeK at 200C = 8.138mV
whismanoid 52:d3fb6f1722bf 2604 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2605 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 8.138e-3, 200.0); // TC_TypeK at 200C = 8.138mV
whismanoid 52:d3fb6f1722bf 2606 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2607
whismanoid 52:d3fb6f1722bf 2608 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(8.539e-3) expect 210.0 within 0.1 TC_TypeK at 210C = 8.539mV
whismanoid 52:d3fb6f1722bf 2609 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 210C = 8.539mV
whismanoid 52:d3fb6f1722bf 2610 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(8.539e-3), 210.0); // TC_TypeK at 210C = 8.539mV
whismanoid 52:d3fb6f1722bf 2611 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2612 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 8.539e-3, 210.0); // TC_TypeK at 210C = 8.539mV
whismanoid 52:d3fb6f1722bf 2613 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2614
whismanoid 52:d3fb6f1722bf 2615 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(8.940e-3) expect 220.0 within 0.1 TC_TypeK at 220C = 8.940mV
whismanoid 52:d3fb6f1722bf 2616 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 220C = 8.940mV
whismanoid 52:d3fb6f1722bf 2617 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(8.940e-3), 220.0); // TC_TypeK at 220C = 8.940mV
whismanoid 52:d3fb6f1722bf 2618 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2619 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 8.940e-3, 220.0); // TC_TypeK at 220C = 8.940mV
whismanoid 52:d3fb6f1722bf 2620 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2621
whismanoid 52:d3fb6f1722bf 2622 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(9.343e-3) expect 230.0 within 0.1 TC_TypeK at 230C = 9.343mV
whismanoid 52:d3fb6f1722bf 2623 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 230C = 9.343mV
whismanoid 52:d3fb6f1722bf 2624 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(9.343e-3), 230.0); // TC_TypeK at 230C = 9.343mV
whismanoid 52:d3fb6f1722bf 2625 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2626 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 9.343e-3, 230.0); // TC_TypeK at 230C = 9.343mV
whismanoid 52:d3fb6f1722bf 2627 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2628
whismanoid 52:d3fb6f1722bf 2629 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(9.747e-3) expect 240.0 within 0.1 TC_TypeK at 240C = 9.747mV
whismanoid 52:d3fb6f1722bf 2630 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 240C = 9.747mV
whismanoid 52:d3fb6f1722bf 2631 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(9.747e-3), 240.0); // TC_TypeK at 240C = 9.747mV
whismanoid 52:d3fb6f1722bf 2632 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2633 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 9.747e-3, 240.0); // TC_TypeK at 240C = 9.747mV
whismanoid 52:d3fb6f1722bf 2634 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2635
whismanoid 52:d3fb6f1722bf 2636 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(10.153e-3) expect 250.0 within 0.1 TC_TypeK at 250C = 10.153mV
whismanoid 52:d3fb6f1722bf 2637 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 250C = 10.153mV
whismanoid 52:d3fb6f1722bf 2638 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(10.153e-3), 250.0); // TC_TypeK at 250C = 10.153mV
whismanoid 52:d3fb6f1722bf 2639 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2640 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 10.153e-3, 250.0); // TC_TypeK at 250C = 10.153mV
whismanoid 52:d3fb6f1722bf 2641 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2642
whismanoid 52:d3fb6f1722bf 2643 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(10.561e-3) expect 260.0 within 0.1 TC_TypeK at 260C = 10.561mV
whismanoid 52:d3fb6f1722bf 2644 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 260C = 10.561mV
whismanoid 52:d3fb6f1722bf 2645 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(10.561e-3), 260.0); // TC_TypeK at 260C = 10.561mV
whismanoid 52:d3fb6f1722bf 2646 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2647 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 10.561e-3, 260.0); // TC_TypeK at 260C = 10.561mV
whismanoid 52:d3fb6f1722bf 2648 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2649
whismanoid 52:d3fb6f1722bf 2650 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(10.971e-3) expect 270.0 within 0.1 TC_TypeK at 270C = 10.971mV
whismanoid 52:d3fb6f1722bf 2651 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 270C = 10.971mV
whismanoid 52:d3fb6f1722bf 2652 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(10.971e-3), 270.0); // TC_TypeK at 270C = 10.971mV
whismanoid 52:d3fb6f1722bf 2653 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2654 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 10.971e-3, 270.0); // TC_TypeK at 270C = 10.971mV
whismanoid 52:d3fb6f1722bf 2655 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2656
whismanoid 52:d3fb6f1722bf 2657 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(11.382e-3) expect 280.0 within 0.1 TC_TypeK at 280C = 11.382mV
whismanoid 52:d3fb6f1722bf 2658 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 280C = 11.382mV
whismanoid 52:d3fb6f1722bf 2659 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(11.382e-3), 280.0); // TC_TypeK at 280C = 11.382mV
whismanoid 52:d3fb6f1722bf 2660 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2661 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 11.382e-3, 280.0); // TC_TypeK at 280C = 11.382mV
whismanoid 52:d3fb6f1722bf 2662 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2663
whismanoid 52:d3fb6f1722bf 2664 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(11.795e-3) expect 290.0 within 0.1 TC_TypeK at 290C = 11.795mV
whismanoid 52:d3fb6f1722bf 2665 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 290C = 11.795mV
whismanoid 52:d3fb6f1722bf 2666 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(11.795e-3), 290.0); // TC_TypeK at 290C = 11.795mV
whismanoid 52:d3fb6f1722bf 2667 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2668 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 11.795e-3, 290.0); // TC_TypeK at 290C = 11.795mV
whismanoid 52:d3fb6f1722bf 2669 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2670
whismanoid 52:d3fb6f1722bf 2671 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(12.209e-3) expect 300.0 within 0.1 TC_TypeK at 300C = 12.209mV
whismanoid 52:d3fb6f1722bf 2672 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 300C = 12.209mV
whismanoid 52:d3fb6f1722bf 2673 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(12.209e-3), 300.0); // TC_TypeK at 300C = 12.209mV
whismanoid 52:d3fb6f1722bf 2674 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2675 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 12.209e-3, 300.0); // TC_TypeK at 300C = 12.209mV
whismanoid 52:d3fb6f1722bf 2676 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2677
whismanoid 52:d3fb6f1722bf 2678 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_2 TemperatureOfTC_TypeK(14.293e-3) expect 350.0 within 0.1 TC_TypeK at 350C = 14.293mV
whismanoid 52:d3fb6f1722bf 2679 #if MAX11410_SELFTEST_TC_2 // group TC_2 TemperatureOfTC_TypeK TC_TypeK at 350C = 14.293mV
whismanoid 52:d3fb6f1722bf 2680 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(14.293e-3), 350.0); // TC_TypeK at 350C = 14.293mV
whismanoid 52:d3fb6f1722bf 2681 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2682 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 14.293e-3, 350.0); // TC_TypeK at 350C = 14.293mV
whismanoid 52:d3fb6f1722bf 2683 #endif // MAX11410_SELFTEST_TC_2 // group TC_2
whismanoid 52:d3fb6f1722bf 2684
whismanoid 52:d3fb6f1722bf 2685 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(16.397e-3) expect 400.0 within 0.1 TC_TypeK at 400C = 16.397mV
whismanoid 52:d3fb6f1722bf 2686 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 400C = 16.397mV
whismanoid 52:d3fb6f1722bf 2687 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(16.397e-3), 400.0); // TC_TypeK at 400C = 16.397mV
whismanoid 52:d3fb6f1722bf 2688 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2689 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 16.397e-3, 400.0); // TC_TypeK at 400C = 16.397mV
whismanoid 52:d3fb6f1722bf 2690 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2691
whismanoid 52:d3fb6f1722bf 2692 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(18.516e-3) expect 450.0 within 0.1 TC_TypeK at 450C = 18.516mV
whismanoid 52:d3fb6f1722bf 2693 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 450C = 18.516mV
whismanoid 52:d3fb6f1722bf 2694 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(18.516e-3), 450.0); // TC_TypeK at 450C = 18.516mV
whismanoid 52:d3fb6f1722bf 2695 tinyTester.err_threshold = 0.1; // within 0.1
whismanoid 52:d3fb6f1722bf 2696 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 18.516e-3, 450.0); // TC_TypeK at 450C = 18.516mV
whismanoid 52:d3fb6f1722bf 2697 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2698
whismanoid 52:d3fb6f1722bf 2699 // CODE GENERATOR: SelfTest TemperatureOfTC_TypeK @test group TC_1 TemperatureOfTC_TypeK(20.218e-3) expect 490.0 TC_TypeK at 490C = 20.218mV
whismanoid 52:d3fb6f1722bf 2700 #if MAX11410_SELFTEST_TC_1 // group TC_1 TemperatureOfTC_TypeK TC_TypeK at 490C = 20.218mV
whismanoid 52:d3fb6f1722bf 2701 // ASSERT_EQ(g_MAX11410_device.TemperatureOfTC_TypeK(20.218e-3), 490.0); // TC_TypeK at 490C = 20.218mV
whismanoid 52:d3fb6f1722bf 2702 tinyTester.FunctionCall_Expect("MAX11410.TemperatureOfTC_TypeK", fn_MAX11410_TemperatureOfTC_TypeK, 20.218e-3, 490.0); // TC_TypeK at 490C = 20.218mV
whismanoid 52:d3fb6f1722bf 2703 #endif // MAX11410_SELFTEST_TC_1 // group TC_1
whismanoid 52:d3fb6f1722bf 2704
whismanoid 52:d3fb6f1722bf 2705 //
whismanoid 52:d3fb6f1722bf 2706 #if INJECT_SELFTEST_FAIL
whismanoid 52:d3fb6f1722bf 2707 // Test of the pass/fail report mechanism
whismanoid 52:d3fb6f1722bf 2708 tinyTester.FAIL();
whismanoid 52:d3fb6f1722bf 2709 cmdLine.serial().print(F("injecting one false failure for test reporting"));
whismanoid 52:d3fb6f1722bf 2710 #endif
whismanoid 52:d3fb6f1722bf 2711 //
whismanoid 52:d3fb6f1722bf 2712 // Report number of pass and number of fail test results
whismanoid 52:d3fb6f1722bf 2713 tinyTester.Report_Summary();
whismanoid 52:d3fb6f1722bf 2714 }
whismanoid 52:d3fb6f1722bf 2715
whismanoid 52:d3fb6f1722bf 2716 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2717 // selftest: define function under test
whismanoid 55:73d886c105f5 2718 // uint8_t MAX11410::Configure_CTRL_REF(uint8_t ref_sel)
whismanoid 55:73d886c105f5 2719 uint8_t fn_MAX11410_Configure_CTRL_REF(uint8_t ref_sel)
whismanoid 55:73d886c105f5 2720 {
whismanoid 55:73d886c105f5 2721 return g_MAX11410_device.Configure_CTRL_REF(ref_sel);
whismanoid 55:73d886c105f5 2722 }
whismanoid 55:73d886c105f5 2723
whismanoid 55:73d886c105f5 2724 //--------------------------------------------------
whismanoid 55:73d886c105f5 2725 // selftest: define function under test
whismanoid 56:6e9c52cc9abe 2726 // uint8_t MAX11410::Configure_PGA(uint8_t sigpath, uint8_t gain)
whismanoid 56:6e9c52cc9abe 2727 uint8_t fn_MAX11410_Configure_PGA(uint8_t sigpath, uint8_t gain)
whismanoid 56:6e9c52cc9abe 2728 {
whismanoid 56:6e9c52cc9abe 2729 return g_MAX11410_device.Configure_PGA(sigpath, gain);
whismanoid 56:6e9c52cc9abe 2730 }
whismanoid 56:6e9c52cc9abe 2731
whismanoid 56:6e9c52cc9abe 2732 //--------------------------------------------------
whismanoid 56:6e9c52cc9abe 2733 // selftest: define function under test
whismanoid 52:d3fb6f1722bf 2734 // double MAX11410::VoltageOfCode_Unipolar(uint32_t value_u24)
whismanoid 52:d3fb6f1722bf 2735 double fn_MAX11410_VoltageOfCode_Unipolar(uint32_t value_u24)
whismanoid 52:d3fb6f1722bf 2736 {
whismanoid 52:d3fb6f1722bf 2737 return g_MAX11410_device.VoltageOfCode_Unipolar(value_u24);
whismanoid 52:d3fb6f1722bf 2738 }
whismanoid 52:d3fb6f1722bf 2739
whismanoid 52:d3fb6f1722bf 2740 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2741 // selftest: define function under test
whismanoid 52:d3fb6f1722bf 2742 // double MAX11410::VoltageOfCode_Bipolar_OffsetBinary(uint32_t value_u24)
whismanoid 52:d3fb6f1722bf 2743 double fn_MAX11410_VoltageOfCode_Bipolar_OffsetBinary(uint32_t value_u24)
whismanoid 52:d3fb6f1722bf 2744 {
whismanoid 52:d3fb6f1722bf 2745 return g_MAX11410_device.VoltageOfCode_Bipolar_OffsetBinary(value_u24);
whismanoid 52:d3fb6f1722bf 2746 }
whismanoid 52:d3fb6f1722bf 2747
whismanoid 52:d3fb6f1722bf 2748 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2749 // selftest: define function under test
whismanoid 52:d3fb6f1722bf 2750 // double MAX11410::VoltageOfCode_Bipolar_2sComplement(uint32_t value_u24)
whismanoid 52:d3fb6f1722bf 2751 double fn_MAX11410_VoltageOfCode_Bipolar_2sComplement(uint32_t value_u24)
whismanoid 52:d3fb6f1722bf 2752 {
whismanoid 52:d3fb6f1722bf 2753 return g_MAX11410_device.VoltageOfCode_Bipolar_2sComplement(value_u24);
whismanoid 52:d3fb6f1722bf 2754 }
whismanoid 52:d3fb6f1722bf 2755
whismanoid 52:d3fb6f1722bf 2756 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2757 // selftest: define function under test
whismanoid 52:d3fb6f1722bf 2758 // double MAX11410::TemperatureOfRTD_PT1000(double rtd_resistance)
whismanoid 52:d3fb6f1722bf 2759 double fn_MAX11410_TemperatureOfRTD_PT1000(double rtd_resistance)
whismanoid 52:d3fb6f1722bf 2760 {
whismanoid 52:d3fb6f1722bf 2761 return g_MAX11410_device.TemperatureOfRTD_PT1000(rtd_resistance);
whismanoid 52:d3fb6f1722bf 2762 }
whismanoid 52:d3fb6f1722bf 2763
whismanoid 52:d3fb6f1722bf 2764 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2765 // selftest: define function under test
whismanoid 56:6e9c52cc9abe 2766 // double MAX11410::TemperatureOfRTD_PT100(double rtd_resistance)
whismanoid 56:6e9c52cc9abe 2767 double fn_MAX11410_TemperatureOfRTD_PT100(double rtd_resistance)
whismanoid 56:6e9c52cc9abe 2768 {
whismanoid 56:6e9c52cc9abe 2769 return g_MAX11410_device.TemperatureOfRTD_PT100(rtd_resistance);
whismanoid 56:6e9c52cc9abe 2770 }
whismanoid 56:6e9c52cc9abe 2771
whismanoid 56:6e9c52cc9abe 2772 //--------------------------------------------------
whismanoid 56:6e9c52cc9abe 2773 // selftest: define function under test
whismanoid 56:6e9c52cc9abe 2774 // double MAX11410::TemperatureOfRTD(double rtd_resistance)
whismanoid 56:6e9c52cc9abe 2775 double fn_MAX11410_TemperatureOfRTD(double rtd_resistance)
whismanoid 56:6e9c52cc9abe 2776 {
whismanoid 56:6e9c52cc9abe 2777 return g_MAX11410_device.TemperatureOfRTD(rtd_resistance);
whismanoid 56:6e9c52cc9abe 2778 }
whismanoid 56:6e9c52cc9abe 2779
whismanoid 56:6e9c52cc9abe 2780 //--------------------------------------------------
whismanoid 56:6e9c52cc9abe 2781 // selftest: define function under test
whismanoid 52:d3fb6f1722bf 2782 // double MAX11410::TemperatureOfTC_TypeK(double tc_voltage)
whismanoid 52:d3fb6f1722bf 2783 double fn_MAX11410_TemperatureOfTC_TypeK(double tc_voltage)
whismanoid 52:d3fb6f1722bf 2784 {
whismanoid 52:d3fb6f1722bf 2785 return g_MAX11410_device.TemperatureOfTC_TypeK(tc_voltage);
whismanoid 52:d3fb6f1722bf 2786 }
whismanoid 52:d3fb6f1722bf 2787
whismanoid 52:d3fb6f1722bf 2788
whismanoid 52:d3fb6f1722bf 2789 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2790 inline void print_command_prompt()
whismanoid 52:d3fb6f1722bf 2791 {
whismanoid 52:d3fb6f1722bf 2792 cmdLine_serial.serial().printf("\r\n> ");
whismanoid 52:d3fb6f1722bf 2793
whismanoid 52:d3fb6f1722bf 2794 }
whismanoid 52:d3fb6f1722bf 2795
whismanoid 52:d3fb6f1722bf 2796
whismanoid 52:d3fb6f1722bf 2797 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 2798 void pinsMonitor_submenu_onEOLcommandParser(CmdLine& cmdLine)
whismanoid 52:d3fb6f1722bf 2799 {
whismanoid 52:d3fb6f1722bf 2800 // % diagnostic commands submenu
whismanoid 52:d3fb6f1722bf 2801 // %Hpin -- digital output high
whismanoid 52:d3fb6f1722bf 2802 // %Lpin -- digital output low
whismanoid 52:d3fb6f1722bf 2803 // %?pin -- digital input
whismanoid 52:d3fb6f1722bf 2804 // %A %Apin -- analog input
whismanoid 52:d3fb6f1722bf 2805 // %Ppin df=xx -- pwm output
whismanoid 52:d3fb6f1722bf 2806 // %Wpin -- measure high pulsewidth input in usec
whismanoid 52:d3fb6f1722bf 2807 // %wpin -- measure low pulsewidth input in usec
whismanoid 52:d3fb6f1722bf 2808 // %I... -- I2C diagnostics
whismanoid 52:d3fb6f1722bf 2809 // %IP -- I2C probe
whismanoid 52:d3fb6f1722bf 2810 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 52:d3fb6f1722bf 2811 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 52:d3fb6f1722bf 2812 // %IR ADDR=? RD=? -- read
whismanoid 52:d3fb6f1722bf 2813 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 2814 // %S... -- SPI diagnostics
whismanoid 52:d3fb6f1722bf 2815 // %SC sclk=1Mhz -- SPI configure
whismanoid 52:d3fb6f1722bf 2816 // %SW -- write (write and read)
whismanoid 52:d3fb6f1722bf 2817 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 52:d3fb6f1722bf 2818 // A-Z,a-z,0-9 reserved for application use
whismanoid 52:d3fb6f1722bf 2819 //
whismanoid 52:d3fb6f1722bf 2820 char strPinIndex[3];
whismanoid 52:d3fb6f1722bf 2821 strPinIndex[0] = cmdLine[2];
whismanoid 52:d3fb6f1722bf 2822 strPinIndex[1] = cmdLine[3];
whismanoid 52:d3fb6f1722bf 2823 strPinIndex[2] = '\0';
whismanoid 52:d3fb6f1722bf 2824 int pinIndex = strtoul(strPinIndex, NULL, 10); // strtol(str, NULL, 10): get decimal value
whismanoid 52:d3fb6f1722bf 2825 //cmdLine.serial().printf(" pinIndex=%d ", pinIndex);
whismanoid 52:d3fb6f1722bf 2826 //
whismanoid 52:d3fb6f1722bf 2827 // get next character
whismanoid 52:d3fb6f1722bf 2828 switch (cmdLine[1])
whismanoid 52:d3fb6f1722bf 2829 {
whismanoid 52:d3fb6f1722bf 2830 #if HAS_digitalInOuts
whismanoid 52:d3fb6f1722bf 2831 case 'H': case 'h':
whismanoid 52:d3fb6f1722bf 2832 {
whismanoid 52:d3fb6f1722bf 2833 // %Hpin -- digital output high
whismanoid 52:d3fb6f1722bf 2834 #if ARDUINO_STYLE
whismanoid 52:d3fb6f1722bf 2835 pinMode(pinIndex, OUTPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 52:d3fb6f1722bf 2836 digitalWrite(pinIndex, HIGH); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 52:d3fb6f1722bf 2837 #else
whismanoid 52:d3fb6f1722bf 2838 DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex);
whismanoid 52:d3fb6f1722bf 2839 digitalInOutPin.output();
whismanoid 52:d3fb6f1722bf 2840 digitalInOutPin.write(1);
whismanoid 52:d3fb6f1722bf 2841 #endif
whismanoid 52:d3fb6f1722bf 2842 cmdLine.serial().printf(" digitalInOutPin %d Output High ", pinIndex);
whismanoid 52:d3fb6f1722bf 2843 }
whismanoid 52:d3fb6f1722bf 2844 break;
whismanoid 52:d3fb6f1722bf 2845 case 'L': case 'l':
whismanoid 52:d3fb6f1722bf 2846 {
whismanoid 52:d3fb6f1722bf 2847 // %Lpin -- digital output low
whismanoid 52:d3fb6f1722bf 2848 #if ARDUINO_STYLE
whismanoid 52:d3fb6f1722bf 2849 pinMode(pinIndex, OUTPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 52:d3fb6f1722bf 2850 digitalWrite(pinIndex, LOW); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 52:d3fb6f1722bf 2851 #else
whismanoid 52:d3fb6f1722bf 2852 DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex);
whismanoid 52:d3fb6f1722bf 2853 digitalInOutPin.output();
whismanoid 52:d3fb6f1722bf 2854 digitalInOutPin.write(0);
whismanoid 52:d3fb6f1722bf 2855 #endif
whismanoid 52:d3fb6f1722bf 2856 cmdLine.serial().printf(" digitalInOutPin %d Output Low ", pinIndex);
whismanoid 52:d3fb6f1722bf 2857 }
whismanoid 52:d3fb6f1722bf 2858 break;
whismanoid 52:d3fb6f1722bf 2859 case '?':
whismanoid 52:d3fb6f1722bf 2860 {
whismanoid 52:d3fb6f1722bf 2861 // %?pin -- digital input
whismanoid 52:d3fb6f1722bf 2862 #if ARDUINO_STYLE
whismanoid 52:d3fb6f1722bf 2863 pinMode(pinIndex, INPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 52:d3fb6f1722bf 2864 #else
whismanoid 52:d3fb6f1722bf 2865 DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex);
whismanoid 52:d3fb6f1722bf 2866 digitalInOutPin.input();
whismanoid 52:d3fb6f1722bf 2867 #endif
whismanoid 52:d3fb6f1722bf 2868 serial.printf(" digitalInOutPin %d Input ", pinIndex);
whismanoid 52:d3fb6f1722bf 2869 #if ARDUINO_STYLE
whismanoid 52:d3fb6f1722bf 2870 int value = digitalRead(pinIndex);
whismanoid 52:d3fb6f1722bf 2871 #else
whismanoid 52:d3fb6f1722bf 2872 int value = digitalInOutPin.read();
whismanoid 52:d3fb6f1722bf 2873 #endif
whismanoid 52:d3fb6f1722bf 2874 cmdLine.serial().printf("%d ", value);
whismanoid 52:d3fb6f1722bf 2875 }
whismanoid 52:d3fb6f1722bf 2876 break;
whismanoid 52:d3fb6f1722bf 2877 #endif
whismanoid 52:d3fb6f1722bf 2878 //
whismanoid 52:d3fb6f1722bf 2879 #if HAS_analogIns
whismanoid 52:d3fb6f1722bf 2880 case 'A': case 'a':
whismanoid 52:d3fb6f1722bf 2881 {
whismanoid 52:d3fb6f1722bf 2882 // %A %Apin -- analog input
whismanoid 52:d3fb6f1722bf 2883 #if analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 52:d3fb6f1722bf 2884 // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,..
whismanoid 52:d3fb6f1722bf 2885 for (int pinIndex = 0; pinIndex < 2; pinIndex++)
whismanoid 52:d3fb6f1722bf 2886 {
whismanoid 52:d3fb6f1722bf 2887 int cPinIndex = '0' + pinIndex;
whismanoid 52:d3fb6f1722bf 2888 AnalogIn& analogInPin = find_analogInPin(cPinIndex);
whismanoid 52:d3fb6f1722bf 2889 float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex];
whismanoid 52:d3fb6f1722bf 2890 float normValue_0_1 = analogInPin.read();
whismanoid 52:d3fb6f1722bf 2891 //
whismanoid 52:d3fb6f1722bf 2892 int pinIndexH = pinIndex + 4;
whismanoid 52:d3fb6f1722bf 2893 int cPinIndexH = '0' + pinIndexH;
whismanoid 52:d3fb6f1722bf 2894 AnalogIn& analogInPinH = find_analogInPin(cPinIndexH);
whismanoid 52:d3fb6f1722bf 2895 float adc_full_scale_voltageH = analogInPin_fullScaleVoltage[pinIndexH];
whismanoid 52:d3fb6f1722bf 2896 float normValueH_0_1 = analogInPinH.read();
whismanoid 52:d3fb6f1722bf 2897 //
whismanoid 52:d3fb6f1722bf 2898 cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV AIN%c = %7.3f%% = %1.3fV \r\n",
whismanoid 52:d3fb6f1722bf 2899 cPinIndex,
whismanoid 52:d3fb6f1722bf 2900 normValue_0_1 * 100.0,
whismanoid 52:d3fb6f1722bf 2901 normValue_0_1 * adc_full_scale_voltage,
whismanoid 52:d3fb6f1722bf 2902 cPinIndexH,
whismanoid 52:d3fb6f1722bf 2903 normValueH_0_1 * 100.0,
whismanoid 52:d3fb6f1722bf 2904 normValueH_0_1 * adc_full_scale_voltageH
whismanoid 52:d3fb6f1722bf 2905 );
whismanoid 52:d3fb6f1722bf 2906 }
whismanoid 52:d3fb6f1722bf 2907 for (int pinIndex = 2; pinIndex < 4; pinIndex++)
whismanoid 52:d3fb6f1722bf 2908 {
whismanoid 52:d3fb6f1722bf 2909 int cPinIndex = '0' + pinIndex;
whismanoid 52:d3fb6f1722bf 2910 AnalogIn& analogInPin = find_analogInPin(cPinIndex);
whismanoid 52:d3fb6f1722bf 2911 float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex];
whismanoid 52:d3fb6f1722bf 2912 float normValue_0_1 = analogInPin.read();
whismanoid 52:d3fb6f1722bf 2913 //
whismanoid 52:d3fb6f1722bf 2914 cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV\r\n",
whismanoid 52:d3fb6f1722bf 2915 cPinIndex,
whismanoid 52:d3fb6f1722bf 2916 normValue_0_1 * 100.0,
whismanoid 52:d3fb6f1722bf 2917 normValue_0_1 * adc_full_scale_voltage
whismanoid 52:d3fb6f1722bf 2918 );
whismanoid 52:d3fb6f1722bf 2919 }
whismanoid 52:d3fb6f1722bf 2920 #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 52:d3fb6f1722bf 2921 // Platform board uses simple analog inputs
whismanoid 52:d3fb6f1722bf 2922 // assume standard Arduino analog inputs A0-A5
whismanoid 52:d3fb6f1722bf 2923 for (int pinIndex = 0; pinIndex < 6; pinIndex++)
whismanoid 52:d3fb6f1722bf 2924 {
whismanoid 52:d3fb6f1722bf 2925 int cPinIndex = '0' + pinIndex;
whismanoid 52:d3fb6f1722bf 2926 AnalogIn& analogInPin = find_analogInPin(cPinIndex);
whismanoid 52:d3fb6f1722bf 2927 float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex];
whismanoid 52:d3fb6f1722bf 2928 float normValue_0_1 = analogInPin.read();
whismanoid 52:d3fb6f1722bf 2929 //
whismanoid 52:d3fb6f1722bf 2930 cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV\r\n",
whismanoid 52:d3fb6f1722bf 2931 cPinIndex,
whismanoid 52:d3fb6f1722bf 2932 normValue_0_1 * 100.0,
whismanoid 52:d3fb6f1722bf 2933 normValue_0_1 * adc_full_scale_voltage
whismanoid 52:d3fb6f1722bf 2934 );
whismanoid 52:d3fb6f1722bf 2935 }
whismanoid 52:d3fb6f1722bf 2936 #endif // analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 52:d3fb6f1722bf 2937 }
whismanoid 52:d3fb6f1722bf 2938 break;
whismanoid 52:d3fb6f1722bf 2939 #endif
whismanoid 52:d3fb6f1722bf 2940 //
whismanoid 52:d3fb6f1722bf 2941 #if HAS_SPI2_MAX541
whismanoid 52:d3fb6f1722bf 2942 case 'D': case 'd':
whismanoid 52:d3fb6f1722bf 2943 {
whismanoid 52:d3fb6f1722bf 2944 // %D -- DAC output MAX541 (SPI2) -- need cmdLine.parse_float(voltageV)
whismanoid 52:d3fb6f1722bf 2945 // MAX541 max541(spi2_max541, spi2_max541_cs);
whismanoid 52:d3fb6f1722bf 2946 float voltageV = max541.Get_Voltage();
whismanoid 52:d3fb6f1722bf 2947 // if (cmdLine[2] == '+') {
whismanoid 52:d3fb6f1722bf 2948 // // %D+
whismanoid 52:d3fb6f1722bf 2949 // voltageV = voltageV * 1.25f;
whismanoid 52:d3fb6f1722bf 2950 // if (voltageV >= max541.VRef) voltageV = max541.VRef;
whismanoid 52:d3fb6f1722bf 2951 // SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 52:d3fb6f1722bf 2952 // }
whismanoid 52:d3fb6f1722bf 2953 // else if (cmdLine[2] == '-') {
whismanoid 52:d3fb6f1722bf 2954 // // %D-
whismanoid 52:d3fb6f1722bf 2955 // voltageV = voltageV * 0.75f;
whismanoid 52:d3fb6f1722bf 2956 // if (voltageV < 0.1f) voltageV = 0.1f;
whismanoid 52:d3fb6f1722bf 2957 // SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 52:d3fb6f1722bf 2958 // }
whismanoid 52:d3fb6f1722bf 2959 if (cmdLine.parse_float("V", voltageV))
whismanoid 52:d3fb6f1722bf 2960 {
whismanoid 52:d3fb6f1722bf 2961 // %D V=1.234 -- set voltage
whismanoid 52:d3fb6f1722bf 2962 max541.Set_Voltage(voltageV);
whismanoid 52:d3fb6f1722bf 2963 }
whismanoid 52:d3fb6f1722bf 2964 else if (cmdLine.parse_float("TEST", voltageV))
whismanoid 52:d3fb6f1722bf 2965 {
whismanoid 52:d3fb6f1722bf 2966 // %D TEST=1.234 -- set voltage and compare with AIN0
whismanoid 52:d3fb6f1722bf 2967 SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 52:d3fb6f1722bf 2968 }
whismanoid 52:d3fb6f1722bf 2969 else if (cmdLine.parse_float("CAL", voltageV))
whismanoid 52:d3fb6f1722bf 2970 {
whismanoid 52:d3fb6f1722bf 2971 // %D CAL=1.234 -- calibrate VRef and compare with AIN0
whismanoid 52:d3fb6f1722bf 2972
whismanoid 52:d3fb6f1722bf 2973 max541.Set_Code(0x8000); // we don't know the fullscale voltage yet, so set code to midscale
whismanoid 52:d3fb6f1722bf 2974 double max541_midscale_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 2975 const int average_count = 100;
whismanoid 52:d3fb6f1722bf 2976 const double average_K = 0.25;
whismanoid 52:d3fb6f1722bf 2977 for (int count = 0; count < average_count; count++) {
whismanoid 52:d3fb6f1722bf 2978 double measurement_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 52:d3fb6f1722bf 2979 max541_midscale_V = ((1 - average_K) * max541_midscale_V) + (average_K * measurement_V);
whismanoid 52:d3fb6f1722bf 2980 }
whismanoid 52:d3fb6f1722bf 2981 max541.VRef = 2.0 * max541_midscale_V;
whismanoid 52:d3fb6f1722bf 2982 cmdLine.serial().printf(
whismanoid 52:d3fb6f1722bf 2983 "\r\n MAX541 midscale = %1.3fV, so fullscale = %1.3fV",
whismanoid 52:d3fb6f1722bf 2984 max541_midscale_V, max541.VRef);
whismanoid 52:d3fb6f1722bf 2985 // Detect whether MAX541 is really connected to MAX32625MBED.AIN0/AIN4
whismanoid 52:d3fb6f1722bf 2986 voltageV = 1.0f;
whismanoid 52:d3fb6f1722bf 2987 SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 52:d3fb6f1722bf 2988 }
whismanoid 52:d3fb6f1722bf 2989 else {
whismanoid 52:d3fb6f1722bf 2990 // %D -- print MAX541 DAC status
whismanoid 52:d3fb6f1722bf 2991 cmdLine.serial().printf("MAX541 code=0x%4.4x = %1.3fV VRef=%1.3fV\r\n",
whismanoid 52:d3fb6f1722bf 2992 max541.Get_Code(), max541.Get_Voltage(), max541.VRef);
whismanoid 52:d3fb6f1722bf 2993 }
whismanoid 52:d3fb6f1722bf 2994 }
whismanoid 52:d3fb6f1722bf 2995 break;
whismanoid 52:d3fb6f1722bf 2996 #endif
whismanoid 52:d3fb6f1722bf 2997
whismanoid 52:d3fb6f1722bf 2998 //
whismanoid 52:d3fb6f1722bf 2999 #if HAS_I2C // SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3000 case 'I': case 'i':
whismanoid 52:d3fb6f1722bf 3001 // %I... -- I2C diagnostics
whismanoid 52:d3fb6f1722bf 3002 // %IP -- I2C probe
whismanoid 52:d3fb6f1722bf 3003 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 52:d3fb6f1722bf 3004 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 52:d3fb6f1722bf 3005 // %IR ADDR=? RD=? -- read
whismanoid 52:d3fb6f1722bf 3006 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 3007 // get next character
whismanoid 52:d3fb6f1722bf 3008 // TODO: parse cmdLine arg (ADDR=\d+)? --> g_I2C_deviceAddress7
whismanoid 52:d3fb6f1722bf 3009 cmdLine.parse_byte_hex("ADDR", g_I2C_deviceAddress7);
whismanoid 52:d3fb6f1722bf 3010 // TODO: parse cmdLine arg (RD=\d)? --> g_I2C_read_count
whismanoid 52:d3fb6f1722bf 3011 g_I2C_read_count = 0; // read count must be reset every command
whismanoid 52:d3fb6f1722bf 3012 cmdLine.parse_byte_dec("RD", g_I2C_read_count);
whismanoid 52:d3fb6f1722bf 3013 // TODO: parse cmdLine arg (CMD=\d)? --> g_I2C_command_regAddress
whismanoid 52:d3fb6f1722bf 3014 cmdLine.parse_byte_hex("CMD", g_I2C_command_regAddress);
whismanoid 52:d3fb6f1722bf 3015 switch (cmdLine[2])
whismanoid 52:d3fb6f1722bf 3016 {
whismanoid 52:d3fb6f1722bf 3017 case 'P': case 'p':
whismanoid 52:d3fb6f1722bf 3018 {
whismanoid 52:d3fb6f1722bf 3019 // %IP -- I2C probe
whismanoid 52:d3fb6f1722bf 3020 HuntAttachedI2CDevices(cmdLine, 0x03, 0x77);
whismanoid 52:d3fb6f1722bf 3021 }
whismanoid 52:d3fb6f1722bf 3022 break;
whismanoid 52:d3fb6f1722bf 3023 case 'C': case 'c':
whismanoid 52:d3fb6f1722bf 3024 {
whismanoid 52:d3fb6f1722bf 3025 bool isUpdatedI2CConfig = false;
whismanoid 52:d3fb6f1722bf 3026 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 52:d3fb6f1722bf 3027 // parse cmdLine arg (SCL=\d+(kHZ|MHZ)?)? --> g_I2C_SCL_Hz
whismanoid 52:d3fb6f1722bf 3028 if (cmdLine.parse_frequency_Hz("SCL", g_I2C_SCL_Hz))
whismanoid 52:d3fb6f1722bf 3029 {
whismanoid 52:d3fb6f1722bf 3030 isUpdatedI2CConfig = true;
whismanoid 52:d3fb6f1722bf 3031 // TODO1: validate g_I2C_SCL_Hz against system clock frequency F_CPU
whismanoid 52:d3fb6f1722bf 3032 if (g_I2C_SCL_Hz > limit_max_I2C_SCL_Hz)
whismanoid 52:d3fb6f1722bf 3033 {
whismanoid 52:d3fb6f1722bf 3034 g_I2C_SCL_Hz = limit_max_I2C_SCL_Hz;
whismanoid 52:d3fb6f1722bf 3035 }
whismanoid 52:d3fb6f1722bf 3036 if (g_I2C_SCL_Hz < limit_min_I2C_SCL_Hz)
whismanoid 52:d3fb6f1722bf 3037 {
whismanoid 52:d3fb6f1722bf 3038 g_I2C_SCL_Hz = limit_min_I2C_SCL_Hz;
whismanoid 52:d3fb6f1722bf 3039 }
whismanoid 52:d3fb6f1722bf 3040 }
whismanoid 52:d3fb6f1722bf 3041 if (isUpdatedI2CConfig)
whismanoid 52:d3fb6f1722bf 3042 {
whismanoid 52:d3fb6f1722bf 3043 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 52:d3fb6f1722bf 3044 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 52:d3fb6f1722bf 3045 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 52:d3fb6f1722bf 3046 i2cMaster.start();
whismanoid 52:d3fb6f1722bf 3047 i2cMaster.stop();
whismanoid 52:d3fb6f1722bf 3048 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 52:d3fb6f1722bf 3049 cmdLine.serial().printf(
whismanoid 52:d3fb6f1722bf 3050 "\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config",
whismanoid 52:d3fb6f1722bf 3051 g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz,
whismanoid 52:d3fb6f1722bf 3052 (g_I2C_SCL_Hz / 1000.));
whismanoid 52:d3fb6f1722bf 3053 i2cMaster.start();
whismanoid 52:d3fb6f1722bf 3054 i2cMaster.stop();
whismanoid 52:d3fb6f1722bf 3055 }
whismanoid 52:d3fb6f1722bf 3056 }
whismanoid 52:d3fb6f1722bf 3057 break;
whismanoid 52:d3fb6f1722bf 3058 case 'W': case 'w':
whismanoid 52:d3fb6f1722bf 3059 {
whismanoid 52:d3fb6f1722bf 3060 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 52:d3fb6f1722bf 3061 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 52:d3fb6f1722bf 3062 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 52:d3fb6f1722bf 3063 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 52:d3fb6f1722bf 3064 // parse cmdLine byte list --> int byteCount; int mosiData[MAX_SPI_BYTE_COUNT];
whismanoid 52:d3fb6f1722bf 3065 #define MAX_I2C_BYTE_COUNT 32
whismanoid 52:d3fb6f1722bf 3066 size_t byteCount = byteCount;
whismanoid 52:d3fb6f1722bf 3067 static char mosiData[MAX_I2C_BYTE_COUNT];
whismanoid 52:d3fb6f1722bf 3068 static char misoData[MAX_I2C_BYTE_COUNT];
whismanoid 52:d3fb6f1722bf 3069 if (cmdLine.parse_byteCount_byteList_hex(byteCount, mosiData,
whismanoid 52:d3fb6f1722bf 3070 MAX_I2C_BYTE_COUNT))
whismanoid 52:d3fb6f1722bf 3071 {
whismanoid 52:d3fb6f1722bf 3072 // hex dump mosiData[0..byteCount-1]
whismanoid 52:d3fb6f1722bf 3073 cmdLine.serial().printf(
whismanoid 52:d3fb6f1722bf 3074 "\r\nADDR=0x%2.2x=(0x%2.2x>>1) byteCount:%d RD=%d\r\nI2C MOSI->",
whismanoid 52:d3fb6f1722bf 3075 g_I2C_deviceAddress7,
whismanoid 52:d3fb6f1722bf 3076 (g_I2C_deviceAddress7 << 1), byteCount, g_I2C_read_count);
whismanoid 52:d3fb6f1722bf 3077 for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++)
whismanoid 52:d3fb6f1722bf 3078 {
whismanoid 52:d3fb6f1722bf 3079 cmdLine.serial().printf(" 0x%2.2X", mosiData[byteIndex]);
whismanoid 52:d3fb6f1722bf 3080 }
whismanoid 52:d3fb6f1722bf 3081 //
whismanoid 52:d3fb6f1722bf 3082 // TODO: i2c transfer
whismanoid 52:d3fb6f1722bf 3083 //const int addr7bit = 0x48; // 7 bit I2C address
whismanoid 52:d3fb6f1722bf 3084 //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
whismanoid 52:d3fb6f1722bf 3085 // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave.
whismanoid 52:d3fb6f1722bf 3086 // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus.
whismanoid 52:d3fb6f1722bf 3087 // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave.
whismanoid 52:d3fb6f1722bf 3088 // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus.
whismanoid 52:d3fb6f1722bf 3089 // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus.
whismanoid 52:d3fb6f1722bf 3090 // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus.
whismanoid 52:d3fb6f1722bf 3091 // /* int */ i2cMaster.transfer (int addr8bit, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, const event_callback_t &callback, int event=I2C_EVENT_TRANSFER_COMPLETE, bool repeated=false) // Start nonblocking I2C transfer. More...
whismanoid 52:d3fb6f1722bf 3092 // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More...
whismanoid 52:d3fb6f1722bf 3093 const int addr8bit = g_I2C_deviceAddress7 << 1; // 8bit I2C address, 0x90
whismanoid 52:d3fb6f1722bf 3094 unsigned int misoLength = 0;
whismanoid 52:d3fb6f1722bf 3095 bool repeated = (g_I2C_read_count > 0);
whismanoid 52:d3fb6f1722bf 3096 //
whismanoid 52:d3fb6f1722bf 3097 int writeStatus = i2cMaster.write (addr8bit, mosiData, byteCount, repeated);
whismanoid 52:d3fb6f1722bf 3098 switch (writeStatus)
whismanoid 52:d3fb6f1722bf 3099 {
whismanoid 52:d3fb6f1722bf 3100 case 0: cmdLine.serial().printf(" ack "); break;
whismanoid 52:d3fb6f1722bf 3101 case 1: cmdLine.serial().printf(" nack "); break;
whismanoid 52:d3fb6f1722bf 3102 default: cmdLine.serial().printf(" {writeStatus 0x%2.2X} ",
whismanoid 52:d3fb6f1722bf 3103 writeStatus);
whismanoid 52:d3fb6f1722bf 3104 }
whismanoid 52:d3fb6f1722bf 3105 if (repeated)
whismanoid 52:d3fb6f1722bf 3106 {
whismanoid 52:d3fb6f1722bf 3107 int readStatus =
whismanoid 52:d3fb6f1722bf 3108 i2cMaster.read (addr8bit, misoData, g_I2C_read_count, false);
whismanoid 52:d3fb6f1722bf 3109 switch (readStatus)
whismanoid 52:d3fb6f1722bf 3110 {
whismanoid 52:d3fb6f1722bf 3111 case 1: cmdLine.serial().printf(" nack "); break;
whismanoid 52:d3fb6f1722bf 3112 case 0: cmdLine.serial().printf(" ack "); break;
whismanoid 52:d3fb6f1722bf 3113 default: cmdLine.serial().printf(" {readStatus 0x%2.2X} ",
whismanoid 52:d3fb6f1722bf 3114 readStatus);
whismanoid 52:d3fb6f1722bf 3115 }
whismanoid 52:d3fb6f1722bf 3116 }
whismanoid 52:d3fb6f1722bf 3117 //
whismanoid 52:d3fb6f1722bf 3118 if (misoLength > 0)
whismanoid 52:d3fb6f1722bf 3119 {
whismanoid 52:d3fb6f1722bf 3120 // hex dump misoData[0..byteCount-1]
whismanoid 52:d3fb6f1722bf 3121 cmdLine.serial().printf(" MISO<-");
whismanoid 52:d3fb6f1722bf 3122 for (unsigned int byteIndex = 0; byteIndex < g_I2C_read_count;
whismanoid 52:d3fb6f1722bf 3123 byteIndex++)
whismanoid 52:d3fb6f1722bf 3124 {
whismanoid 52:d3fb6f1722bf 3125 cmdLine.serial().printf(" 0x%2.2X", misoData[byteIndex]);
whismanoid 52:d3fb6f1722bf 3126 }
whismanoid 52:d3fb6f1722bf 3127 }
whismanoid 52:d3fb6f1722bf 3128 cmdLine.serial().printf(" ");
whismanoid 52:d3fb6f1722bf 3129 }
whismanoid 52:d3fb6f1722bf 3130 }
whismanoid 52:d3fb6f1722bf 3131 break;
whismanoid 52:d3fb6f1722bf 3132 case 'R': case 'r':
whismanoid 52:d3fb6f1722bf 3133 {
whismanoid 52:d3fb6f1722bf 3134 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 52:d3fb6f1722bf 3135 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 52:d3fb6f1722bf 3136 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 52:d3fb6f1722bf 3137 // %IR ADDR=? RD=? -- read
whismanoid 52:d3fb6f1722bf 3138 // TODO: i2c transfer
whismanoid 52:d3fb6f1722bf 3139 //const int addr7bit = 0x48; // 7 bit I2C address
whismanoid 52:d3fb6f1722bf 3140 //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
whismanoid 52:d3fb6f1722bf 3141 // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave.
whismanoid 52:d3fb6f1722bf 3142 // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus.
whismanoid 52:d3fb6f1722bf 3143 // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave.
whismanoid 52:d3fb6f1722bf 3144 // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus.
whismanoid 52:d3fb6f1722bf 3145 // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus.
whismanoid 52:d3fb6f1722bf 3146 // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus.
whismanoid 52:d3fb6f1722bf 3147 // /* int */ i2cMaster.transfer (int addr8bit, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, const event_callback_t &callback, int event=I2C_EVENT_TRANSFER_COMPLETE, bool repeated=false) // Start nonblocking I2C transfer. More...
whismanoid 52:d3fb6f1722bf 3148 // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More...
whismanoid 52:d3fb6f1722bf 3149 }
whismanoid 52:d3fb6f1722bf 3150 break;
whismanoid 52:d3fb6f1722bf 3151 case '^':
whismanoid 52:d3fb6f1722bf 3152 {
whismanoid 52:d3fb6f1722bf 3153 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 52:d3fb6f1722bf 3154 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 52:d3fb6f1722bf 3155 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 52:d3fb6f1722bf 3156 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 3157 // TODO: i2c transfer
whismanoid 52:d3fb6f1722bf 3158 //const int addr7bit = 0x48; // 7 bit I2C address
whismanoid 52:d3fb6f1722bf 3159 //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
whismanoid 52:d3fb6f1722bf 3160 // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave.
whismanoid 52:d3fb6f1722bf 3161 // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus.
whismanoid 52:d3fb6f1722bf 3162 // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave.
whismanoid 52:d3fb6f1722bf 3163 // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus.
whismanoid 52:d3fb6f1722bf 3164 // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus.
whismanoid 52:d3fb6f1722bf 3165 // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus.
whismanoid 52:d3fb6f1722bf 3166 // /* int */ i2cMaster.transfer (int addr8bit, const char *tx_buffer, int tx_length, char *rx_buffer, int rx_length, const event_callback_t &callback, int event=I2C_EVENT_TRANSFER_COMPLETE, bool repeated=false) // Start nonblocking I2C transfer. More...
whismanoid 52:d3fb6f1722bf 3167 // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More...
whismanoid 52:d3fb6f1722bf 3168 }
whismanoid 52:d3fb6f1722bf 3169 break;
whismanoid 52:d3fb6f1722bf 3170 } // switch(cmdLine[2])
whismanoid 52:d3fb6f1722bf 3171 break;
whismanoid 52:d3fb6f1722bf 3172 #endif
whismanoid 52:d3fb6f1722bf 3173 //
whismanoid 52:d3fb6f1722bf 3174 #if HAS_SPI // SUPPORT_SPI
whismanoid 52:d3fb6f1722bf 3175 case 'S': case 's':
whismanoid 52:d3fb6f1722bf 3176 {
whismanoid 52:d3fb6f1722bf 3177 // %S... -- SPI diagnostics
whismanoid 52:d3fb6f1722bf 3178 // %SC sclk=1Mhz -- SPI configure
whismanoid 52:d3fb6f1722bf 3179 // %SW -- write (write and read)
whismanoid 52:d3fb6f1722bf 3180 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 52:d3fb6f1722bf 3181 //
whismanoid 52:d3fb6f1722bf 3182 // Process arguments SCLK=\d+(kHZ|MHZ) CPOL=\d CPHA=\d
whismanoid 52:d3fb6f1722bf 3183 bool isUpdatedSPIConfig = false;
whismanoid 52:d3fb6f1722bf 3184 // parse cmdLine arg (CPOL=\d)? --> g_SPI_dataMode | SPI_MODE2
whismanoid 52:d3fb6f1722bf 3185 // parse cmdLine arg (CPHA=\d)? --> g_SPI_dataMode | SPI_MODE1
whismanoid 52:d3fb6f1722bf 3186 if (cmdLine.parse_flag("CPOL", g_SPI_dataMode, SPI_MODE2))
whismanoid 52:d3fb6f1722bf 3187 {
whismanoid 52:d3fb6f1722bf 3188 isUpdatedSPIConfig = true;
whismanoid 52:d3fb6f1722bf 3189 }
whismanoid 52:d3fb6f1722bf 3190 if (cmdLine.parse_flag("CPHA", g_SPI_dataMode, SPI_MODE1))
whismanoid 52:d3fb6f1722bf 3191 {
whismanoid 52:d3fb6f1722bf 3192 isUpdatedSPIConfig = true;
whismanoid 52:d3fb6f1722bf 3193 }
whismanoid 52:d3fb6f1722bf 3194 if (cmdLine.parse_flag("CS", g_SPI_cs_state, 1))
whismanoid 52:d3fb6f1722bf 3195 {
whismanoid 52:d3fb6f1722bf 3196 isUpdatedSPIConfig = true;
whismanoid 52:d3fb6f1722bf 3197 }
whismanoid 52:d3fb6f1722bf 3198 // parse cmdLine arg (SCLK=\d+(kHZ|MHZ)?)? --> g_SPI_SCLK_Hz
whismanoid 52:d3fb6f1722bf 3199 if (cmdLine.parse_frequency_Hz("SCLK", g_SPI_SCLK_Hz))
whismanoid 52:d3fb6f1722bf 3200 {
whismanoid 52:d3fb6f1722bf 3201 isUpdatedSPIConfig = true;
whismanoid 52:d3fb6f1722bf 3202 // TODO1: validate g_SPI_SCLK_Hz against system clock frequency F_CPU
whismanoid 52:d3fb6f1722bf 3203 if (g_SPI_SCLK_Hz > limit_max_SPI_SCLK_Hz)
whismanoid 52:d3fb6f1722bf 3204 {
whismanoid 52:d3fb6f1722bf 3205 g_SPI_SCLK_Hz = limit_max_SPI_SCLK_Hz;
whismanoid 52:d3fb6f1722bf 3206 }
whismanoid 52:d3fb6f1722bf 3207 if (g_SPI_SCLK_Hz < limit_min_SPI_SCLK_Hz)
whismanoid 52:d3fb6f1722bf 3208 {
whismanoid 52:d3fb6f1722bf 3209 g_SPI_SCLK_Hz = limit_min_SPI_SCLK_Hz;
whismanoid 52:d3fb6f1722bf 3210 }
whismanoid 52:d3fb6f1722bf 3211 }
whismanoid 52:d3fb6f1722bf 3212 // Update SPI configuration
whismanoid 52:d3fb6f1722bf 3213 if (isUpdatedSPIConfig)
whismanoid 52:d3fb6f1722bf 3214 {
whismanoid 52:d3fb6f1722bf 3215 // %SC sclk=1Mhz -- SPI configure
whismanoid 52:d3fb6f1722bf 3216 spi_cs = g_SPI_cs_state;
whismanoid 52:d3fb6f1722bf 3217 spi.format(8,g_SPI_dataMode); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0
whismanoid 52:d3fb6f1722bf 3218 #if APPLICATION_MAX5715
whismanoid 52:d3fb6f1722bf 3219 g_MAX5715_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3220 #elif APPLICATION_MAX11131
whismanoid 52:d3fb6f1722bf 3221 g_MAX11131_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3222 #elif APPLICATION_MAX5171
whismanoid 52:d3fb6f1722bf 3223 g_MAX5171_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3224 #elif APPLICATION_MAX11410
whismanoid 52:d3fb6f1722bf 3225 g_MAX11410_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3226 #elif APPLICATION_MAX12345
whismanoid 52:d3fb6f1722bf 3227 g_MAX12345_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3228 #else
whismanoid 52:d3fb6f1722bf 3229 spi.frequency(g_SPI_SCLK_Hz); // int SCLK_Hz=1000000 = 1MHz (initial default)
whismanoid 52:d3fb6f1722bf 3230 #endif
whismanoid 52:d3fb6f1722bf 3231 //
whismanoid 52:d3fb6f1722bf 3232 double ideal_divisor = ((double)SystemCoreClock) / g_SPI_SCLK_Hz;
whismanoid 52:d3fb6f1722bf 3233 int actual_divisor = (int)(ideal_divisor + 0.0); // frequency divisor truncate
whismanoid 52:d3fb6f1722bf 3234 double actual_SCLK_Hz = SystemCoreClock / actual_divisor;
whismanoid 52:d3fb6f1722bf 3235 //
whismanoid 52:d3fb6f1722bf 3236 // fixed: mbed-os-5.11: [Warning] format '%d' expects argument of type 'int', but argument 6 has type 'uint32_t {aka long unsigned int}' [-Wformat=]
whismanoid 52:d3fb6f1722bf 3237 cmdLine.serial().printf(
whismanoid 52:d3fb6f1722bf 3238 "\r\n %%SC CPOL=%d CPHA=%d CS=%d SCLK=%ld=%1.3fMHz (%1.1fMHz/%1.2f = actual %1.3fMHz) -- SPI config",
whismanoid 52:d3fb6f1722bf 3239 ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0),
whismanoid 52:d3fb6f1722bf 3240 ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0),
whismanoid 52:d3fb6f1722bf 3241 g_SPI_cs_state,
whismanoid 52:d3fb6f1722bf 3242 g_SPI_SCLK_Hz,
whismanoid 52:d3fb6f1722bf 3243 (g_SPI_SCLK_Hz / 1000000.),
whismanoid 52:d3fb6f1722bf 3244 ((double)(SystemCoreClock / 1000000.)),
whismanoid 52:d3fb6f1722bf 3245 ideal_divisor,
whismanoid 52:d3fb6f1722bf 3246 (actual_SCLK_Hz / 1000000.)
whismanoid 52:d3fb6f1722bf 3247 );
whismanoid 52:d3fb6f1722bf 3248 }
whismanoid 52:d3fb6f1722bf 3249 // get next character
whismanoid 52:d3fb6f1722bf 3250 switch (cmdLine[2])
whismanoid 52:d3fb6f1722bf 3251 {
whismanoid 52:d3fb6f1722bf 3252 case 'C': case 's':
whismanoid 52:d3fb6f1722bf 3253 // %SC sclk=1Mhz -- SPI configure
whismanoid 52:d3fb6f1722bf 3254 break;
whismanoid 52:d3fb6f1722bf 3255 case 'D': case 'd':
whismanoid 52:d3fb6f1722bf 3256 // %SD -- SPI diagnostic messages enable
whismanoid 52:d3fb6f1722bf 3257 if (g_MAX11410_device.onSPIprint) {
whismanoid 52:d3fb6f1722bf 3258 g_MAX11410_device.onSPIprint = NULL;
whismanoid 52:d3fb6f1722bf 3259 }
whismanoid 52:d3fb6f1722bf 3260 else {
whismanoid 52:d3fb6f1722bf 3261 void onSPIprint_handler(size_t byteCount, uint8_t mosiData[], uint8_t misoData[]);
whismanoid 52:d3fb6f1722bf 3262 g_MAX11410_device.onSPIprint = onSPIprint_handler;
whismanoid 52:d3fb6f1722bf 3263 }
whismanoid 52:d3fb6f1722bf 3264 break;
whismanoid 52:d3fb6f1722bf 3265 case 'W': case 'R': case 'w': case 'r':
whismanoid 52:d3fb6f1722bf 3266 {
whismanoid 52:d3fb6f1722bf 3267 // %SW -- write (write and read)
whismanoid 52:d3fb6f1722bf 3268 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 52:d3fb6f1722bf 3269 // parse cmdLine byte list --> int byteCount; int mosiData[MAX_SPI_BYTE_COUNT];
whismanoid 52:d3fb6f1722bf 3270 #define MAX_SPI_BYTE_COUNT 32
whismanoid 52:d3fb6f1722bf 3271 size_t byteCount = byteCount;
whismanoid 52:d3fb6f1722bf 3272 static char mosiData[MAX_SPI_BYTE_COUNT];
whismanoid 52:d3fb6f1722bf 3273 static char misoData[MAX_SPI_BYTE_COUNT];
whismanoid 52:d3fb6f1722bf 3274 if (cmdLine.parse_byteCount_byteList_hex(byteCount, mosiData,
whismanoid 52:d3fb6f1722bf 3275 MAX_SPI_BYTE_COUNT))
whismanoid 52:d3fb6f1722bf 3276 {
whismanoid 52:d3fb6f1722bf 3277 // hex dump mosiData[0..byteCount-1]
whismanoid 52:d3fb6f1722bf 3278 cmdLine.serial().printf("\r\nSPI");
whismanoid 52:d3fb6f1722bf 3279 if (byteCount > 7) {
whismanoid 52:d3fb6f1722bf 3280 cmdLine.serial().printf(" byteCount:%d", byteCount);
whismanoid 52:d3fb6f1722bf 3281 }
whismanoid 52:d3fb6f1722bf 3282 cmdLine.serial().printf(" MOSI->");
whismanoid 52:d3fb6f1722bf 3283 for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++)
whismanoid 52:d3fb6f1722bf 3284 {
whismanoid 52:d3fb6f1722bf 3285 cmdLine.serial().printf(" 0x%2.2X", mosiData[byteIndex]);
whismanoid 52:d3fb6f1722bf 3286 }
whismanoid 52:d3fb6f1722bf 3287 spi_cs = 0;
whismanoid 52:d3fb6f1722bf 3288 unsigned int numBytesTransferred =
whismanoid 52:d3fb6f1722bf 3289 spi.write(mosiData, byteCount, misoData, byteCount);
whismanoid 52:d3fb6f1722bf 3290 spi_cs = 1;
whismanoid 52:d3fb6f1722bf 3291 // hex dump misoData[0..byteCount-1]
whismanoid 52:d3fb6f1722bf 3292 cmdLine.serial().printf(" MISO<-");
whismanoid 52:d3fb6f1722bf 3293 for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred;
whismanoid 52:d3fb6f1722bf 3294 byteIndex++)
whismanoid 52:d3fb6f1722bf 3295 {
whismanoid 52:d3fb6f1722bf 3296 cmdLine.serial().printf(" 0x%2.2X", misoData[byteIndex]);
whismanoid 52:d3fb6f1722bf 3297 }
whismanoid 52:d3fb6f1722bf 3298 cmdLine.serial().printf(" ");
whismanoid 52:d3fb6f1722bf 3299 }
whismanoid 52:d3fb6f1722bf 3300 }
whismanoid 52:d3fb6f1722bf 3301 break;
whismanoid 52:d3fb6f1722bf 3302 } // switch(cmdLine[2])
whismanoid 52:d3fb6f1722bf 3303 } // case 'S': // %S... -- SPI diagnostics
whismanoid 52:d3fb6f1722bf 3304 break;
whismanoid 52:d3fb6f1722bf 3305 #endif
whismanoid 52:d3fb6f1722bf 3306 //
whismanoid 52:d3fb6f1722bf 3307 // A-Z,a-z,0-9 reserved for application use
whismanoid 52:d3fb6f1722bf 3308 } // switch(cmdLine[1])
whismanoid 52:d3fb6f1722bf 3309 } // end void pinsMonitor_submenu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 52:d3fb6f1722bf 3310
whismanoid 52:d3fb6f1722bf 3311
whismanoid 52:d3fb6f1722bf 3312 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3313 void main_menu_status(CmdLine & cmdLine)
whismanoid 52:d3fb6f1722bf 3314 {
whismanoid 52:d3fb6f1722bf 3315 cmdLine.serial().printf("\r\nMain menu");
whismanoid 52:d3fb6f1722bf 3316
whismanoid 52:d3fb6f1722bf 3317 cmdLine.serial().printf(" MAX11410 24-bit 1.9ksps Delta-Sigma ADC");
whismanoid 52:d3fb6f1722bf 3318
whismanoid 52:d3fb6f1722bf 3319 //cmdLine.serial().print(" %s", TARGET_NAME);
whismanoid 52:d3fb6f1722bf 3320 if (cmdLine.nameStr())
whismanoid 52:d3fb6f1722bf 3321 {
whismanoid 52:d3fb6f1722bf 3322 cmdLine.serial().printf(" [%s]", cmdLine.nameStr());
whismanoid 52:d3fb6f1722bf 3323
whismanoid 52:d3fb6f1722bf 3324 }
whismanoid 52:d3fb6f1722bf 3325 cmdLine.serial().printf("\r\n ? -- help");
whismanoid 52:d3fb6f1722bf 3326
whismanoid 52:d3fb6f1722bf 3327 }
whismanoid 52:d3fb6f1722bf 3328
whismanoid 52:d3fb6f1722bf 3329
whismanoid 52:d3fb6f1722bf 3330 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3331 void main_menu_help(CmdLine & cmdLine)
whismanoid 52:d3fb6f1722bf 3332 {
whismanoid 52:d3fb6f1722bf 3333 // ? -- help
whismanoid 52:d3fb6f1722bf 3334 //~ cmdLine.serial().print(F("\r\nMenu:"));
whismanoid 52:d3fb6f1722bf 3335 cmdLine.serial().printf("\r\n # -- lines beginning with # are comments");
whismanoid 52:d3fb6f1722bf 3336
whismanoid 52:d3fb6f1722bf 3337 cmdLine.serial().printf("\r\n . -- SelfTest");
whismanoid 52:d3fb6f1722bf 3338
whismanoid 52:d3fb6f1722bf 3339 //cmdLine.serial().print(F("\r\n ! -- Initial Configuration"));
whismanoid 52:d3fb6f1722bf 3340 //
whismanoid 52:d3fb6f1722bf 3341 // % standardize diagnostic commands
whismanoid 52:d3fb6f1722bf 3342 // %Hpin -- digital output high
whismanoid 52:d3fb6f1722bf 3343 // %Lpin -- digital output low
whismanoid 52:d3fb6f1722bf 3344 // %?pin -- digital input
whismanoid 52:d3fb6f1722bf 3345 // %A %Apin -- analog input
whismanoid 52:d3fb6f1722bf 3346 // %Ppin df=xx -- pwm output
whismanoid 52:d3fb6f1722bf 3347 // %Wpin -- measure high pulsewidth input in usec
whismanoid 52:d3fb6f1722bf 3348 // %wpin -- measure low pulsewidth input in usec
whismanoid 52:d3fb6f1722bf 3349 // %I... -- I2C diagnostics
whismanoid 52:d3fb6f1722bf 3350 // %IP -- I2C probe
whismanoid 52:d3fb6f1722bf 3351 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 52:d3fb6f1722bf 3352 // %IW ADDR=? cmd=? data,data,data -- write
whismanoid 52:d3fb6f1722bf 3353 // %IR ADDR=? RD=? -- read
whismanoid 52:d3fb6f1722bf 3354 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 3355 // %S... -- SPI diagnostics
whismanoid 52:d3fb6f1722bf 3356 // %SC sclk=1Mhz -- SPI configure
whismanoid 52:d3fb6f1722bf 3357 // %SW -- write (write and read)
whismanoid 52:d3fb6f1722bf 3358 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 52:d3fb6f1722bf 3359 // A-Z,a-z,0-9 reserved for application use
whismanoid 52:d3fb6f1722bf 3360 //
whismanoid 52:d3fb6f1722bf 3361 #if HAS_digitalInOuts
whismanoid 52:d3fb6f1722bf 3362 // %Hpin -- digital output high
whismanoid 52:d3fb6f1722bf 3363 // %Lpin -- digital output low
whismanoid 52:d3fb6f1722bf 3364 // %?pin -- digital input
whismanoid 52:d3fb6f1722bf 3365 cmdLine.serial().printf("\r\n %%Hn {pin:");
whismanoid 52:d3fb6f1722bf 3366 list_digitalInOutPins(cmdLine.serial());
whismanoid 52:d3fb6f1722bf 3367 cmdLine.serial().printf("} -- High Output");
whismanoid 52:d3fb6f1722bf 3368 cmdLine.serial().printf("\r\n %%Ln {pin:");
whismanoid 52:d3fb6f1722bf 3369 list_digitalInOutPins(cmdLine.serial());
whismanoid 52:d3fb6f1722bf 3370 cmdLine.serial().printf("} -- Low Output");
whismanoid 52:d3fb6f1722bf 3371 cmdLine.serial().printf("\r\n %%?n {pin:");
whismanoid 52:d3fb6f1722bf 3372 list_digitalInOutPins(cmdLine.serial());
whismanoid 52:d3fb6f1722bf 3373 cmdLine.serial().printf("} -- Input");
whismanoid 52:d3fb6f1722bf 3374 #endif
whismanoid 52:d3fb6f1722bf 3375
whismanoid 52:d3fb6f1722bf 3376 #if HAS_analogIns
whismanoid 52:d3fb6f1722bf 3377 // Menu A) analogRead A0..7
whismanoid 52:d3fb6f1722bf 3378 // %A %Apin -- analog input
whismanoid 52:d3fb6f1722bf 3379 // analogRead(pinIndex) // analog input pins A0, A1, A2, A3, A4, A5; float voltage = analogRead(A0) * (5.0 / 1023.0)
whismanoid 52:d3fb6f1722bf 3380 cmdLine.serial().printf("\r\n %%A -- analogRead");
whismanoid 52:d3fb6f1722bf 3381 #endif
whismanoid 52:d3fb6f1722bf 3382
whismanoid 52:d3fb6f1722bf 3383 #if HAS_SPI2_MAX541
whismanoid 52:d3fb6f1722bf 3384 // TODO1: MAX541 max541(spi2_max541, spi2_max541_cs);
whismanoid 52:d3fb6f1722bf 3385 cmdLine.serial().printf("\r\n %%D -- DAC output MAX541 (SPI2)");
whismanoid 52:d3fb6f1722bf 3386 #endif
whismanoid 52:d3fb6f1722bf 3387
whismanoid 52:d3fb6f1722bf 3388 #if HAS_I2C // SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3389 // TODO: support I2C HAS_I2C // SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3390 // VERIFY: I2C utility commands SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3391 // VERIFY: report g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)) from last Wire_Sr.setClock(I2C_SCL_Hz);
whismanoid 52:d3fb6f1722bf 3392 // %I... -- I2C diagnostics
whismanoid 52:d3fb6f1722bf 3393 // %IP -- I2C probe
whismanoid 52:d3fb6f1722bf 3394 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 52:d3fb6f1722bf 3395 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 52:d3fb6f1722bf 3396 // %IR ADDR=? RD=? -- read
whismanoid 52:d3fb6f1722bf 3397 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 3398 //g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)); // 'F_CPU' 'TWBR' not declared in this scope
whismanoid 52:d3fb6f1722bf 3399 cmdLine.serial().printf("\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config",
whismanoid 52:d3fb6f1722bf 3400 g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz,
whismanoid 52:d3fb6f1722bf 3401 (g_I2C_SCL_Hz / 1000.));
whismanoid 52:d3fb6f1722bf 3402 cmdLine.serial().printf("\r\n %%IW byte byte ... byte RD=? ADDR=0x%2.2x -- I2C write/read",
whismanoid 52:d3fb6f1722bf 3403 g_I2C_deviceAddress7);
whismanoid 52:d3fb6f1722bf 3404 //
whismanoid 52:d3fb6f1722bf 3405 #if SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3406 // Menu ^ cmd=?) i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 3407 cmdLine.serial().printf("\r\n %%I^ cmd=? -- i2c_smbus_read_word_data");
whismanoid 52:d3fb6f1722bf 3408 // test low-level I2C i2c_smbus_read_word_data
whismanoid 52:d3fb6f1722bf 3409 #endif // SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3410 //cmdLine.serial().printf(" H) Hunt for attached I2C devices");
whismanoid 52:d3fb6f1722bf 3411 cmdLine.serial().printf("\r\n %%IP -- I2C Probe for attached devices");
whismanoid 52:d3fb6f1722bf 3412 // cmdLine.serial().printf(" s) search i2c address");
whismanoid 52:d3fb6f1722bf 3413 #endif // SUPPORT_I2C
whismanoid 52:d3fb6f1722bf 3414
whismanoid 52:d3fb6f1722bf 3415 #if HAS_SPI // SUPPORT_SPI
whismanoid 52:d3fb6f1722bf 3416 // TODO: support SPI HAS_SPI // SUPPORT_SPI
whismanoid 52:d3fb6f1722bf 3417 // SPI test command S (mosiData)+
whismanoid 52:d3fb6f1722bf 3418 // %S... -- SPI diagnostics
whismanoid 52:d3fb6f1722bf 3419 // %SC sclk=1Mhz -- SPI configure
whismanoid 52:d3fb6f1722bf 3420 // %SW -- write (write and read)
whismanoid 52:d3fb6f1722bf 3421 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 52:d3fb6f1722bf 3422 // spi.format(8,0); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 rising edge (initial default)
whismanoid 52:d3fb6f1722bf 3423 // spi.format(8,1); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=1 falling edge (initial default)
whismanoid 52:d3fb6f1722bf 3424 // spi.format(8,2); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=0 falling edge (initial default)
whismanoid 52:d3fb6f1722bf 3425 // spi.format(8,3); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=1 rising edge (initial default)
whismanoid 52:d3fb6f1722bf 3426 // spi.frequency(1000000); // int SCLK_Hz=1000000 = 1MHz (initial default)
whismanoid 52:d3fb6f1722bf 3427 // mode | POL PHA
whismanoid 52:d3fb6f1722bf 3428 // -----+--------
whismanoid 52:d3fb6f1722bf 3429 // 0 | 0 0
whismanoid 52:d3fb6f1722bf 3430 // 1 | 0 1
whismanoid 52:d3fb6f1722bf 3431 // 2 | 1 0
whismanoid 52:d3fb6f1722bf 3432 // 3 | 1 1
whismanoid 52:d3fb6f1722bf 3433 //cmdLine.serial().printf(" S) SPI mosi,mosi,...mosi hex bytes SCLK=1000000 CPOL=0 CPHA=0");
whismanoid 52:d3fb6f1722bf 3434 // fixed: mbed-os-5.11: [Warning] format '%d' expects argument of type 'int', but argument 3 has type 'uint32_t {aka long unsigned int}' [-Wformat=]
whismanoid 52:d3fb6f1722bf 3435 cmdLine.serial().printf("\r\n %%SC SCLK=%ld=%1.3fMHz CPOL=%d CPHA=%d -- SPI config",
whismanoid 52:d3fb6f1722bf 3436 g_SPI_SCLK_Hz, (g_SPI_SCLK_Hz / 1000000.),
whismanoid 52:d3fb6f1722bf 3437 ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0),
whismanoid 52:d3fb6f1722bf 3438 ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0));
whismanoid 52:d3fb6f1722bf 3439 cmdLine.serial().printf("\r\n %%SD -- SPI diagnostic messages ");
whismanoid 52:d3fb6f1722bf 3440 if (g_MAX11410_device.onSPIprint) {
whismanoid 52:d3fb6f1722bf 3441 cmdLine.serial().printf("hide");
whismanoid 52:d3fb6f1722bf 3442 }
whismanoid 52:d3fb6f1722bf 3443 else {
whismanoid 52:d3fb6f1722bf 3444 cmdLine.serial().printf("show");
whismanoid 52:d3fb6f1722bf 3445 }
whismanoid 52:d3fb6f1722bf 3446 cmdLine.serial().printf("\r\n %%SW mosi,mosi,...mosi -- SPI write hex bytes");
whismanoid 52:d3fb6f1722bf 3447 // VERIFY: parse new SPI settings parse_strCommandArgs() SCLK=1000000 CPOL=0 CPHA=0
whismanoid 52:d3fb6f1722bf 3448 #endif // SUPPORT_SPI
whismanoid 52:d3fb6f1722bf 3449 //
whismanoid 52:d3fb6f1722bf 3450 // Application-specific commands (help text) here
whismanoid 52:d3fb6f1722bf 3451 //
whismanoid 52:d3fb6f1722bf 3452 #if APPLICATION_ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3453 cmdLine.serial().printf("\r\n A-Z,a-z,0-9 -- reserved for application use"); // ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3454 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3455 //
whismanoid 52:d3fb6f1722bf 3456
whismanoid 56:6e9c52cc9abe 3457 extern void MAX11410_menu_help(CmdLine & cmdLine); // defined in Test_Menu_MAX11410.cpp\n
whismanoid 52:d3fb6f1722bf 3458 MAX11410_menu_help(cmdLine);
whismanoid 52:d3fb6f1722bf 3459 }
whismanoid 52:d3fb6f1722bf 3460
whismanoid 52:d3fb6f1722bf 3461
whismanoid 52:d3fb6f1722bf 3462
whismanoid 52:d3fb6f1722bf 3463 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3464 // main menu command-line parser
whismanoid 52:d3fb6f1722bf 3465 // invoked by CmdLine::append(char ch) or CmdLine::idleAppendIfReadable()
whismanoid 52:d3fb6f1722bf 3466 void main_menu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 52:d3fb6f1722bf 3467 {
whismanoid 52:d3fb6f1722bf 3468 // DIAGNOSTIC: print line buffer
whismanoid 52:d3fb6f1722bf 3469 //~ cmdLine.serial().printf("\r\nmain_menu_onEOLcommandParser: ~%s~\r\n", cmdLine.str());
whismanoid 52:d3fb6f1722bf 3470 //
whismanoid 52:d3fb6f1722bf 3471 switch (cmdLine[0])
whismanoid 52:d3fb6f1722bf 3472 {
whismanoid 52:d3fb6f1722bf 3473 case '?':
whismanoid 52:d3fb6f1722bf 3474 main_menu_status(cmdLine);
whismanoid 52:d3fb6f1722bf 3475 main_menu_help(cmdLine);
whismanoid 52:d3fb6f1722bf 3476 // print command prompt
whismanoid 52:d3fb6f1722bf 3477 //cmdLine.serial().printf("\r\n>");
whismanoid 52:d3fb6f1722bf 3478 break;
whismanoid 52:d3fb6f1722bf 3479 case '\r': case '\n': // ignore blank line
whismanoid 52:d3fb6f1722bf 3480 case '\0': // ignore empty line
whismanoid 52:d3fb6f1722bf 3481 case '#': // ignore comment line
whismanoid 52:d3fb6f1722bf 3482 // # -- lines beginning with # are comments
whismanoid 52:d3fb6f1722bf 3483 main_menu_status(cmdLine);
whismanoid 52:d3fb6f1722bf 3484 //~ main_menu_help(cmdLine);
whismanoid 52:d3fb6f1722bf 3485 // print command prompt
whismanoid 52:d3fb6f1722bf 3486 //cmdLine.serial().printf("\r\n>");
whismanoid 52:d3fb6f1722bf 3487 break;
whismanoid 52:d3fb6f1722bf 3488 #if ECHO_EOF_ON_EOL
whismanoid 52:d3fb6f1722bf 3489 case '\x04': // Unicode (U+0004) EOT END OF TRANSMISSION = CTRL+D as EOF end of file
whismanoid 52:d3fb6f1722bf 3490 cmdLine.serial().printf("\x04"); // immediately echo EOF for test scripting
whismanoid 52:d3fb6f1722bf 3491 diagnostic_led_EOF();
whismanoid 52:d3fb6f1722bf 3492 break;
whismanoid 52:d3fb6f1722bf 3493 case '\x1a': // Unicode (U+001A) SUB SUBSTITUTE = CTRL+Z as EOF end of file
whismanoid 52:d3fb6f1722bf 3494 cmdLine.serial().printf("\x1a"); // immediately echo EOF for test scripting
whismanoid 52:d3fb6f1722bf 3495 diagnostic_led_EOF();
whismanoid 52:d3fb6f1722bf 3496 break;
whismanoid 52:d3fb6f1722bf 3497 #endif
whismanoid 52:d3fb6f1722bf 3498 #if APPLICATION_ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3499 case '.':
whismanoid 52:d3fb6f1722bf 3500 {
whismanoid 52:d3fb6f1722bf 3501 // . -- SelfTest
whismanoid 52:d3fb6f1722bf 3502 cmdLine.serial().printf("SelfTest()");
whismanoid 52:d3fb6f1722bf 3503 SelfTest(cmdLine);
whismanoid 52:d3fb6f1722bf 3504 }
whismanoid 52:d3fb6f1722bf 3505 break;
whismanoid 52:d3fb6f1722bf 3506 case '%':
whismanoid 52:d3fb6f1722bf 3507 {
whismanoid 52:d3fb6f1722bf 3508 pinsMonitor_submenu_onEOLcommandParser(cmdLine);
whismanoid 52:d3fb6f1722bf 3509 }
whismanoid 52:d3fb6f1722bf 3510 break; // case '%'
whismanoid 52:d3fb6f1722bf 3511 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3512 //
whismanoid 52:d3fb6f1722bf 3513 // Application-specific commands here
whismanoid 52:d3fb6f1722bf 3514 // alphanumeric command codes A-Z,a-z,0-9 reserved for application use
whismanoid 52:d3fb6f1722bf 3515 //
whismanoid 52:d3fb6f1722bf 3516 #if APPLICATION_ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3517 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 52:d3fb6f1722bf 3518
whismanoid 52:d3fb6f1722bf 3519 //
whismanoid 52:d3fb6f1722bf 3520 // add new commands here
whismanoid 52:d3fb6f1722bf 3521 //
whismanoid 52:d3fb6f1722bf 3522 default:
whismanoid 52:d3fb6f1722bf 3523 extern bool MAX11410_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX11410.cpp
whismanoid 52:d3fb6f1722bf 3524 if (!MAX11410_menu_onEOLcommandParser(cmdLine))
whismanoid 52:d3fb6f1722bf 3525 { // not_handled_by_device_submenu
whismanoid 52:d3fb6f1722bf 3526 cmdLine.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", cmdLine.str()[0], cmdLine.str());
whismanoid 52:d3fb6f1722bf 3527
whismanoid 52:d3fb6f1722bf 3528 # if HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3529 cmdLine_DAPLINKserial.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", cmdLine.str()[0], cmdLine.str());
whismanoid 52:d3fb6f1722bf 3530
whismanoid 52:d3fb6f1722bf 3531 # endif // HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3532 }
whismanoid 52:d3fb6f1722bf 3533 } // switch (cmdLine[0])
whismanoid 52:d3fb6f1722bf 3534 //
whismanoid 52:d3fb6f1722bf 3535 // print command prompt
whismanoid 52:d3fb6f1722bf 3536 cmdLine.serial().printf("\r\nMAX11410 > ");
whismanoid 52:d3fb6f1722bf 3537
whismanoid 52:d3fb6f1722bf 3538 } // end void main_menu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 52:d3fb6f1722bf 3539
whismanoid 52:d3fb6f1722bf 3540 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3541 #if MAX11410_ONSPIPRINT
whismanoid 52:d3fb6f1722bf 3542 // Optional Diagnostic function to print SPI transactions
whismanoid 52:d3fb6f1722bf 3543 void onSPIprint_handler(size_t byteCount, uint8_t mosiData[], uint8_t misoData[])
whismanoid 52:d3fb6f1722bf 3544 {
whismanoid 52:d3fb6f1722bf 3545 cmdLine_serial.serial().printf("\r\nSPI MOSI->");
whismanoid 52:d3fb6f1722bf 3546 for (uint8_t index = 0; index < byteCount; index++) {
whismanoid 52:d3fb6f1722bf 3547 cmdLine_serial.serial().printf(" 0x%2.2X", mosiData[index]);
whismanoid 52:d3fb6f1722bf 3548 }
whismanoid 52:d3fb6f1722bf 3549 cmdLine_serial.serial().printf(" MISO<-");
whismanoid 52:d3fb6f1722bf 3550 for (uint8_t index = 0; index < byteCount; index++) {
whismanoid 52:d3fb6f1722bf 3551 cmdLine_serial.serial().printf(" 0x%2.2X", misoData[index]);
whismanoid 52:d3fb6f1722bf 3552 }
whismanoid 52:d3fb6f1722bf 3553 cmdLine_serial.serial().printf(" ");
whismanoid 52:d3fb6f1722bf 3554 }
whismanoid 52:d3fb6f1722bf 3555 #endif // MAX11410_ONSPIPRINT
whismanoid 52:d3fb6f1722bf 3556
whismanoid 52:d3fb6f1722bf 3557 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3558 void InitializeConfiguration()
whismanoid 52:d3fb6f1722bf 3559 {
whismanoid 52:d3fb6f1722bf 3560 // CODE GENERATOR: example code: member function Init
whismanoid 52:d3fb6f1722bf 3561 # if HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3562 cmdLine_DAPLINKserial.serial().printf("\r\nMAX11410_Init()");
whismanoid 52:d3fb6f1722bf 3563
whismanoid 52:d3fb6f1722bf 3564 # endif
whismanoid 52:d3fb6f1722bf 3565 cmdLine_serial.serial().printf("\r\nMAX11410_Init()");
whismanoid 52:d3fb6f1722bf 3566
whismanoid 52:d3fb6f1722bf 3567 // Initialize MAX11410 and verify device ID
whismanoid 52:d3fb6f1722bf 3568 if (g_MAX11410_device.Init() == 0)
whismanoid 52:d3fb6f1722bf 3569 { // init failed; try "safe mode" SPI at slower SCLK rate
whismanoid 52:d3fb6f1722bf 3570 cmdLine_serial.serial().printf("\r\nMAX11410 Init failed; retry at SPI SCLK frequency 2000000 Hz\r\n");
whismanoid 52:d3fb6f1722bf 3571
whismanoid 52:d3fb6f1722bf 3572 g_SPI_SCLK_Hz = 2000000;
whismanoid 52:d3fb6f1722bf 3573 g_MAX11410_device.spi_frequency(2000000);
whismanoid 52:d3fb6f1722bf 3574 g_MAX11410_device.Init();
whismanoid 52:d3fb6f1722bf 3575 }
whismanoid 52:d3fb6f1722bf 3576 // CODE GENERATOR: get spi properties from device
whismanoid 52:d3fb6f1722bf 3577 if (g_SPI_SCLK_Hz > g_MAX11410_device.get_spi_frequency())
whismanoid 52:d3fb6f1722bf 3578 { // Device limits SPI SCLK frequency
whismanoid 52:d3fb6f1722bf 3579 g_SPI_SCLK_Hz = g_MAX11410_device.get_spi_frequency();
whismanoid 56:6e9c52cc9abe 3580 cmdLine_serial.serial().printf("\r\nMAX11410 limits SPI SCLK frequency to %ld Hz\r\n", g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3581
whismanoid 52:d3fb6f1722bf 3582 g_MAX11410_device.Init();
whismanoid 52:d3fb6f1722bf 3583 }
whismanoid 52:d3fb6f1722bf 3584 if (g_MAX11410_device.get_spi_frequency() > g_SPI_SCLK_Hz)
whismanoid 52:d3fb6f1722bf 3585 { // Platform limits SPI SCLK frequency
whismanoid 52:d3fb6f1722bf 3586 g_MAX11410_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 56:6e9c52cc9abe 3587 cmdLine_serial.serial().printf("\r\nPlatform limits MAX11410 SPI SCLK frequency to %ld Hz\r\n", g_SPI_SCLK_Hz);
whismanoid 52:d3fb6f1722bf 3588
whismanoid 52:d3fb6f1722bf 3589 g_MAX11410_device.Init();
whismanoid 52:d3fb6f1722bf 3590 }
whismanoid 52:d3fb6f1722bf 3591 g_SPI_dataMode = g_MAX11410_device.get_spi_dataMode();
whismanoid 52:d3fb6f1722bf 3592
whismanoid 52:d3fb6f1722bf 3593 # if MAX11410_ONSPIPRINT
whismanoid 52:d3fb6f1722bf 3594 // Optional Diagnostic function to print SPI transactions
whismanoid 52:d3fb6f1722bf 3595 g_MAX11410_device.onSPIprint = onSPIprint_handler;
whismanoid 52:d3fb6f1722bf 3596 # endif
whismanoid 52:d3fb6f1722bf 3597 }
whismanoid 52:d3fb6f1722bf 3598
whismanoid 52:d3fb6f1722bf 3599 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3600 // diagnostic rbg led GREEN
whismanoid 52:d3fb6f1722bf 3601 void diagnostic_led_EOF()
whismanoid 52:d3fb6f1722bf 3602 {
whismanoid 52:d3fb6f1722bf 3603 #if USE_LEDS
whismanoid 52:d3fb6f1722bf 3604 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 52:d3fb6f1722bf 3605 // TODO1: mbed-os-5.11: [Warning] 'static osStatus rtos::Thread::wait(uint32_t)' is deprecated: Static methods only affecting current thread cause confusion. Replaced by ThisThread::sleep_for. [since mbed-os-5.10] [-Wdeprecated-declarations]
whismanoid 52:d3fb6f1722bf 3606 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 52:d3fb6f1722bf 3607 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 52:d3fb6f1722bf 3608 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 52:d3fb6f1722bf 3609 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 52:d3fb6f1722bf 3610 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 52:d3fb6f1722bf 3611 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 52:d3fb6f1722bf 3612 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 52:d3fb6f1722bf 3613 #endif // USE_LEDS
whismanoid 52:d3fb6f1722bf 3614 }
whismanoid 52:d3fb6f1722bf 3615
whismanoid 52:d3fb6f1722bf 3616 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3617 // Support commands that get handled immediately w/o waiting for EOL
whismanoid 52:d3fb6f1722bf 3618 // handled as immediate command, do not append to buffer
whismanoid 52:d3fb6f1722bf 3619 void on_immediate_0x21() // Unicode (U+0021) ! EXCLAMATION MARK
whismanoid 52:d3fb6f1722bf 3620 {
whismanoid 52:d3fb6f1722bf 3621 #if USE_LEDS
whismanoid 52:d3fb6f1722bf 3622 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 52:d3fb6f1722bf 3623 #endif // USE_LEDS
whismanoid 52:d3fb6f1722bf 3624 InitializeConfiguration();
whismanoid 52:d3fb6f1722bf 3625 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3626 }
whismanoid 52:d3fb6f1722bf 3627
whismanoid 52:d3fb6f1722bf 3628 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3629 // Support commands that get handled immediately w/o waiting for EOL
whismanoid 52:d3fb6f1722bf 3630 // handled as immediate command, do not append to buffer
whismanoid 52:d3fb6f1722bf 3631 void on_immediate_0x7b() // Unicode (U+007B) { LEFT CURLY BRACKET
whismanoid 52:d3fb6f1722bf 3632 {
whismanoid 52:d3fb6f1722bf 3633 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 3634 onButton2FallingEdge();
whismanoid 52:d3fb6f1722bf 3635 #endif
whismanoid 52:d3fb6f1722bf 3636 }
whismanoid 52:d3fb6f1722bf 3637
whismanoid 52:d3fb6f1722bf 3638 //--------------------------------------------------
whismanoid 52:d3fb6f1722bf 3639 // Support commands that get handled immediately w/o waiting for EOL
whismanoid 52:d3fb6f1722bf 3640 // handled as immediate command, do not append to buffer
whismanoid 52:d3fb6f1722bf 3641 void on_immediate_0x7d() // Unicode (U+007D) } RIGHT CURLY BRACKET
whismanoid 52:d3fb6f1722bf 3642 {
whismanoid 52:d3fb6f1722bf 3643 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 3644 onButton1FallingEdge();
whismanoid 52:d3fb6f1722bf 3645 #endif
whismanoid 52:d3fb6f1722bf 3646 }
whismanoid 52:d3fb6f1722bf 3647
whismanoid 52:d3fb6f1722bf 3648 //----------------------------------------
whismanoid 52:d3fb6f1722bf 3649 // example code main function
whismanoid 52:d3fb6f1722bf 3650 int main()
whismanoid 52:d3fb6f1722bf 3651 {
whismanoid 52:d3fb6f1722bf 3652 // Configure serial ports
whismanoid 52:d3fb6f1722bf 3653 cmdLine_serial.clear();
whismanoid 52:d3fb6f1722bf 3654 //~ cmdLine_serial.serial().printf("\r\n cmdLine_serial.serial().printf test\r\n");
whismanoid 52:d3fb6f1722bf 3655 cmdLine_serial.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 52:d3fb6f1722bf 3656 cmdLine_serial.diagnostic_led_EOF = diagnostic_led_EOF;
whismanoid 52:d3fb6f1722bf 3657 /// CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21);
whismanoid 52:d3fb6f1722bf 3658 cmdLine_serial.on_immediate_0x21 = on_immediate_0x21;
whismanoid 52:d3fb6f1722bf 3659 cmdLine_serial.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 52:d3fb6f1722bf 3660 cmdLine_serial.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 52:d3fb6f1722bf 3661 # if HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3662 cmdLine_DAPLINKserial.clear();
whismanoid 52:d3fb6f1722bf 3663 //~ cmdLine_DAPLINKserial.serial().printf("\r\n cmdLine_DAPLINKserial.serial().printf test\r\n");
whismanoid 52:d3fb6f1722bf 3664 cmdLine_DAPLINKserial.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 52:d3fb6f1722bf 3665 /// @todo CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21);
whismanoid 52:d3fb6f1722bf 3666 cmdLine_DAPLINKserial.on_immediate_0x21 = on_immediate_0x21;
whismanoid 52:d3fb6f1722bf 3667 cmdLine_DAPLINKserial.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 52:d3fb6f1722bf 3668 cmdLine_DAPLINKserial.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 52:d3fb6f1722bf 3669 # endif
whismanoid 52:d3fb6f1722bf 3670
whismanoid 52:d3fb6f1722bf 3671
whismanoid 52:d3fb6f1722bf 3672 //print_banner();
whismanoid 52:d3fb6f1722bf 3673
whismanoid 52:d3fb6f1722bf 3674
whismanoid 52:d3fb6f1722bf 3675
whismanoid 52:d3fb6f1722bf 3676 #if USE_LEDS
whismanoid 52:d3fb6f1722bf 3677 #if defined(TARGET_MAX32630)
whismanoid 52:d3fb6f1722bf 3678 led1 = LED_ON; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led RED
whismanoid 52:d3fb6f1722bf 3679 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3680 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 52:d3fb6f1722bf 3681 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3682 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 52:d3fb6f1722bf 3683 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3684 led1 = LED_ON; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE
whismanoid 52:d3fb6f1722bf 3685 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3686 led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN
whismanoid 52:d3fb6f1722bf 3687 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3688 led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA
whismanoid 52:d3fb6f1722bf 3689 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3690 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 52:d3fb6f1722bf 3691 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3692 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led BLACK
whismanoid 52:d3fb6f1722bf 3693 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3694 #elif defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 3695 led1 = LED_ON; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led RED
whismanoid 52:d3fb6f1722bf 3696 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3697 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 52:d3fb6f1722bf 3698 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3699 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 52:d3fb6f1722bf 3700 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3701 led1 = LED_ON; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE
whismanoid 52:d3fb6f1722bf 3702 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3703 led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN
whismanoid 52:d3fb6f1722bf 3704 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3705 led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA
whismanoid 52:d3fb6f1722bf 3706 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3707 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 52:d3fb6f1722bf 3708 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3709 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led BLACK
whismanoid 52:d3fb6f1722bf 3710 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 52:d3fb6f1722bf 3711 #else // not defined(TARGET_LPC1768 etc.)
whismanoid 52:d3fb6f1722bf 3712 led1 = LED_ON;
whismanoid 52:d3fb6f1722bf 3713 led2 = LED_OFF;
whismanoid 52:d3fb6f1722bf 3714 led3 = LED_OFF;
whismanoid 52:d3fb6f1722bf 3715 led4 = LED_OFF;
whismanoid 52:d3fb6f1722bf 3716 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 52:d3fb6f1722bf 3717 //led1 = LED_ON;
whismanoid 52:d3fb6f1722bf 3718 led2 = LED_ON;
whismanoid 52:d3fb6f1722bf 3719 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 52:d3fb6f1722bf 3720 led1 = LED_OFF;
whismanoid 52:d3fb6f1722bf 3721 //led2 = LED_ON;
whismanoid 52:d3fb6f1722bf 3722 led3 = LED_ON;
whismanoid 52:d3fb6f1722bf 3723 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 52:d3fb6f1722bf 3724 led2 = LED_OFF;
whismanoid 52:d3fb6f1722bf 3725 //led3 = LED_ON;
whismanoid 52:d3fb6f1722bf 3726 led4 = LED_ON;
whismanoid 52:d3fb6f1722bf 3727 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 52:d3fb6f1722bf 3728 led3 = LED_OFF;
whismanoid 52:d3fb6f1722bf 3729 led4 = LED_ON;
whismanoid 52:d3fb6f1722bf 3730 //
whismanoid 52:d3fb6f1722bf 3731 #endif // target definition
whismanoid 52:d3fb6f1722bf 3732 #endif
whismanoid 52:d3fb6f1722bf 3733
whismanoid 52:d3fb6f1722bf 3734 // cmd_TE();
whismanoid 52:d3fb6f1722bf 3735
whismanoid 52:d3fb6f1722bf 3736 // #if USE_LEDS
whismanoid 52:d3fb6f1722bf 3737 // rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE
whismanoid 52:d3fb6f1722bf 3738 // #endif // USE_LEDS
whismanoid 57:dc118969c848 3739 #warning "TODO1: #157 #158 Possible Hard Fault on Nucleo_F446RE platform due to resource conflict?"
whismanoid 57:dc118969c848 3740 if (led1.is_connected()) {
whismanoid 57:dc118969c848 3741 led1 = LED_ON;
whismanoid 57:dc118969c848 3742 }
whismanoid 57:dc118969c848 3743 if (led2.is_connected()) {
whismanoid 57:dc118969c848 3744 led2 = LED_ON;
whismanoid 57:dc118969c848 3745 }
whismanoid 57:dc118969c848 3746 if (led3.is_connected()) {
whismanoid 57:dc118969c848 3747 led3 = LED_ON;
whismanoid 57:dc118969c848 3748 }
whismanoid 52:d3fb6f1722bf 3749
whismanoid 52:d3fb6f1722bf 3750 InitializeConfiguration();
whismanoid 52:d3fb6f1722bf 3751 // example code: serial port banner message
whismanoid 52:d3fb6f1722bf 3752 #if defined(TARGET_MAX32625MBED)
whismanoid 52:d3fb6f1722bf 3753 serial.printf("MAX32625MBED ");
whismanoid 52:d3fb6f1722bf 3754 #elif defined(TARGET_MAX32600MBED)
whismanoid 52:d3fb6f1722bf 3755 serial.printf("MAX32600MBED ");
whismanoid 52:d3fb6f1722bf 3756 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 52:d3fb6f1722bf 3757 serial.printf("NUCLEO_F446RE ");
whismanoid 52:d3fb6f1722bf 3758 #endif
whismanoid 52:d3fb6f1722bf 3759 serial.printf("MAX11410BOB\r\n");
whismanoid 52:d3fb6f1722bf 3760
whismanoid 52:d3fb6f1722bf 3761
whismanoid 52:d3fb6f1722bf 3762 while (1) {
whismanoid 52:d3fb6f1722bf 3763 #if HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 52:d3fb6f1722bf 3764 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 52:d3fb6f1722bf 3765 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 52:d3fb6f1722bf 3766 # if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 3767 static int button1_value_prev = 1;
whismanoid 52:d3fb6f1722bf 3768 static int button1_value_now = 1;
whismanoid 52:d3fb6f1722bf 3769 button1_value_prev = button1_value_now;
whismanoid 52:d3fb6f1722bf 3770 button1_value_now = button1.read();
whismanoid 52:d3fb6f1722bf 3771 if ((button1_value_prev - button1_value_now) == 1)
whismanoid 52:d3fb6f1722bf 3772 {
whismanoid 52:d3fb6f1722bf 3773 // on button1 falling edge (button1 press)
whismanoid 52:d3fb6f1722bf 3774 onButton1FallingEdge();
whismanoid 52:d3fb6f1722bf 3775 }
whismanoid 52:d3fb6f1722bf 3776 # endif // HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 3777 # if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 3778 static int button2_value_prev = 1;
whismanoid 52:d3fb6f1722bf 3779 static int button2_value_now = 1;
whismanoid 52:d3fb6f1722bf 3780 button2_value_prev = button2_value_now;
whismanoid 52:d3fb6f1722bf 3781 button2_value_now = button2.read();
whismanoid 52:d3fb6f1722bf 3782 if ((button2_value_prev - button2_value_now) == 1)
whismanoid 52:d3fb6f1722bf 3783 {
whismanoid 52:d3fb6f1722bf 3784 // on button2 falling edge (button2 press)
whismanoid 52:d3fb6f1722bf 3785 onButton2FallingEdge();
whismanoid 52:d3fb6f1722bf 3786 }
whismanoid 52:d3fb6f1722bf 3787 # endif // HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 52:d3fb6f1722bf 3788 #endif
whismanoid 52:d3fb6f1722bf 3789 # if HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3790 if (DAPLINKserial.readable()) {
whismanoid 52:d3fb6f1722bf 3791 cmdLine_DAPLINKserial.append(DAPLINKserial.getc());
whismanoid 52:d3fb6f1722bf 3792 }
whismanoid 52:d3fb6f1722bf 3793 # endif // HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3794 if (serial.readable()) {
whismanoid 52:d3fb6f1722bf 3795 int c = serial.getc();
whismanoid 52:d3fb6f1722bf 3796 cmdLine_serial.append(c);
whismanoid 52:d3fb6f1722bf 3797 #if IGNORE_AT_COMMANDS
whismanoid 52:d3fb6f1722bf 3798 # if HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3799 cmdLine_DAPLINKserial.serial().printf("%c", c);
whismanoid 52:d3fb6f1722bf 3800 # endif // HAS_DAPLINK_SERIAL
whismanoid 52:d3fb6f1722bf 3801 #endif // IGNORE_AT_COMMANDS
whismanoid 52:d3fb6f1722bf 3802 //
whismanoid 52:d3fb6f1722bf 3803 }
whismanoid 52:d3fb6f1722bf 3804 } // while(1)
whismanoid 52:d3fb6f1722bf 3805 }
whismanoid 52:d3fb6f1722bf 3806 //---------- CODE GENERATOR: end testMainCppCodeList