Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.

Dependencies:   MaximTinyTester CmdLine MAX541 USBDevice

Committer:
whismanoid
Date:
Wed Mar 04 10:03:12 2020 +0000
Revision:
93:6b22269935a6
Parent:
89:20fd6ce5e4dd
ADCVoltageOfCode_16bit; fix typo Write_AGain 0x2000=1V/V not 1VV/V; onButton2FallingEdge call optional Configure_Demo(); blue LED on

Who changed what in which revision?

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