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

Dependencies:   MaximTinyTester CmdLine MAX5171 USBDevice

Committer:
whismanoid
Date:
Fri May 15 08:38:12 2020 +0000
Revision:
24:3ef3dd32c7b5
Parent:
23:abd02fed1ae4
Support MAX5171BOB Self Test

Who changed what in which revision?

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