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 Apr 03 06:27:43 2020 +0000
Revision:
23:abd02fed1ae4
Parent:
22:a14c19b97d0b
Child:
24:3ef3dd32c7b5
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 22:a14c19b97d0b 1745
whismanoid 22:a14c19b97d0b 1746 #define APPLICATION_ArduinoPinsMonitor 1
whismanoid 22:a14c19b97d0b 1747
whismanoid 22:a14c19b97d0b 1748 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 1749 // use BUTTON1 trigger some action
whismanoid 22:a14c19b97d0b 1750 #if defined(TARGET_MAX32630)
whismanoid 22:a14c19b97d0b 1751 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1752 #define HAS_BUTTON2_DEMO 0
whismanoid 22:a14c19b97d0b 1753 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1754 #elif defined(TARGET_MAX32625PICO)
whismanoid 22:a14c19b97d0b 1755 #warning "TARGET_MAX32625PICO not previously tested; need to define buttons..."
whismanoid 22:a14c19b97d0b 1756 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1757 #define HAS_BUTTON2_DEMO 0
whismanoid 22:a14c19b97d0b 1758 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1759 #elif defined(TARGET_MAX32625)
whismanoid 22:a14c19b97d0b 1760 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1761 #define HAS_BUTTON2_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1762 #elif defined(TARGET_MAX32620FTHR)
whismanoid 22:a14c19b97d0b 1763 #warning "TARGET_MAX32620FTHR not previously tested; need to define buttons..."
whismanoid 22:a14c19b97d0b 1764 #define BUTTON1 SW1
whismanoid 22:a14c19b97d0b 1765 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1766 #define HAS_BUTTON2_DEMO 0
whismanoid 22:a14c19b97d0b 1767 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1768 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 22:a14c19b97d0b 1769 #define HAS_BUTTON1_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1770 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1771 #elif defined(TARGET_NUCLEO_F401RE)
whismanoid 22:a14c19b97d0b 1772 #define HAS_BUTTON1_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1773 #define HAS_BUTTON2_DEMO_INTERRUPT 0
whismanoid 22:a14c19b97d0b 1774 #else
whismanoid 22:a14c19b97d0b 1775 #warning "target not previously tested; need to define buttons..."
whismanoid 22:a14c19b97d0b 1776 #endif
whismanoid 22:a14c19b97d0b 1777 //
whismanoid 22:a14c19b97d0b 1778 #ifndef HAS_BUTTON1_DEMO
whismanoid 22:a14c19b97d0b 1779 #define HAS_BUTTON1_DEMO 0
whismanoid 22:a14c19b97d0b 1780 #endif
whismanoid 22:a14c19b97d0b 1781 #ifndef HAS_BUTTON2_DEMO
whismanoid 22:a14c19b97d0b 1782 #define HAS_BUTTON2_DEMO 0
whismanoid 22:a14c19b97d0b 1783 #endif
whismanoid 22:a14c19b97d0b 1784 //
whismanoid 22:a14c19b97d0b 1785 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 22:a14c19b97d0b 1786 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 22:a14c19b97d0b 1787 #ifndef HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 22:a14c19b97d0b 1788 #define HAS_BUTTON1_DEMO_INTERRUPT_POLLING 1
whismanoid 22:a14c19b97d0b 1789 #endif
whismanoid 22:a14c19b97d0b 1790 //
whismanoid 22:a14c19b97d0b 1791 #ifndef HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1792 #define HAS_BUTTON1_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1793 #endif
whismanoid 22:a14c19b97d0b 1794 #ifndef HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1795 #define HAS_BUTTON2_DEMO_INTERRUPT 1
whismanoid 22:a14c19b97d0b 1796 #endif
whismanoid 22:a14c19b97d0b 1797 //
whismanoid 22:a14c19b97d0b 1798 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1799 # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 22:a14c19b97d0b 1800 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 22:a14c19b97d0b 1801 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 22:a14c19b97d0b 1802 DigitalIn button1(BUTTON1);
whismanoid 22:a14c19b97d0b 1803 # else
whismanoid 22:a14c19b97d0b 1804 InterruptIn button1(BUTTON1);
whismanoid 22:a14c19b97d0b 1805 # endif
whismanoid 22:a14c19b97d0b 1806 #elif HAS_BUTTON1_DEMO
whismanoid 22:a14c19b97d0b 1807 DigitalIn button1(BUTTON1);
whismanoid 22:a14c19b97d0b 1808 #endif
whismanoid 22:a14c19b97d0b 1809 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1810 # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 22:a14c19b97d0b 1811 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 22:a14c19b97d0b 1812 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 22:a14c19b97d0b 1813 DigitalIn button2(BUTTON2);
whismanoid 22:a14c19b97d0b 1814 # else
whismanoid 22:a14c19b97d0b 1815 InterruptIn button2(BUTTON2);
whismanoid 22:a14c19b97d0b 1816 # endif
whismanoid 22:a14c19b97d0b 1817 #elif HAS_BUTTON2_DEMO
whismanoid 22:a14c19b97d0b 1818 DigitalIn button2(BUTTON2);
whismanoid 22:a14c19b97d0b 1819 #endif
whismanoid 22:a14c19b97d0b 1820
whismanoid 22:a14c19b97d0b 1821 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 1822 // functions tested by SelfTest()
whismanoid 23:abd02fed1ae4 1823 extern uint16_t fn_MAX5171_DACCodeOfVoltage(double voltageV);
whismanoid 23:abd02fed1ae4 1824 extern double fn_MAX5171_VoltageOfCode(int value_u14);
whismanoid 23:abd02fed1ae4 1825 extern void fn_MAX5171_Init(void);
whismanoid 23:abd02fed1ae4 1826 extern uint8_t fn_MAX5171_CODE_LOAD(int dacCodeLsbs);
whismanoid 23:abd02fed1ae4 1827 extern uint8_t fn_MAX5171_UPO_HIGH(void);
whismanoid 23:abd02fed1ae4 1828 extern uint8_t fn_MAX5171_UPO_LOW(void);
whismanoid 23:abd02fed1ae4 1829
whismanoid 23:abd02fed1ae4 1830 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 1831 // optional self-test groups for self test function SelfTest()
whismanoid 23:abd02fed1ae4 1832 // enable by changing the #define value from 0 to 1
whismanoid 23:abd02fed1ae4 1833
whismanoid 23:abd02fed1ae4 1834 // SelfTest group DACCodeOfVoltage description:
whismanoid 23:abd02fed1ae4 1835 // Verify function DACCodeOfVoltage (enabled by default)
whismanoid 23:abd02fed1ae4 1836 #ifndef MAX5171_SELFTEST_DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1837 #define MAX5171_SELFTEST_DACCodeOfVoltage 1
whismanoid 23:abd02fed1ae4 1838 #endif
whismanoid 23:abd02fed1ae4 1839
whismanoid 23:abd02fed1ae4 1840 // SelfTest group VoltageOfCode description:
whismanoid 23:abd02fed1ae4 1841 // Verify function VoltageOfCode (enabled by default)
whismanoid 23:abd02fed1ae4 1842 #ifndef MAX5171_SELFTEST_VoltageOfCode
whismanoid 23:abd02fed1ae4 1843 #define MAX5171_SELFTEST_VoltageOfCode 1
whismanoid 23:abd02fed1ae4 1844 #endif
whismanoid 23:abd02fed1ae4 1845
whismanoid 23:abd02fed1ae4 1846 // SelfTest group CODE_LOAD description:
whismanoid 23:abd02fed1ae4 1847 // Verify function CODE_LOAD (enabled by default)
whismanoid 23:abd02fed1ae4 1848 #ifndef MAX5171_SELFTEST_CODE_LOAD
whismanoid 23:abd02fed1ae4 1849 #define MAX5171_SELFTEST_CODE_LOAD 1
whismanoid 23:abd02fed1ae4 1850 #endif
whismanoid 23:abd02fed1ae4 1851
whismanoid 23:abd02fed1ae4 1852 // SelfTest group UPO description:
whismanoid 23:abd02fed1ae4 1853 // Verify User Programmable Output functions UPO_HIGH and UPO_LOW (enabled by default)
whismanoid 23:abd02fed1ae4 1854 #ifndef MAX5171_SELFTEST_UPO
whismanoid 23:abd02fed1ae4 1855 #define MAX5171_SELFTEST_UPO 1
whismanoid 23:abd02fed1ae4 1856 #endif
whismanoid 23:abd02fed1ae4 1857
whismanoid 23:abd02fed1ae4 1858 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 1859 // When user presses button BUTTON1, perform self test
whismanoid 22:a14c19b97d0b 1860 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1861 void onButton1FallingEdge(void)
whismanoid 22:a14c19b97d0b 1862 {
whismanoid 22:a14c19b97d0b 1863 void SelfTest(CmdLine & cmdLine);
whismanoid 22:a14c19b97d0b 1864 SelfTest(cmdLine_serial);
whismanoid 22:a14c19b97d0b 1865 }
whismanoid 22:a14c19b97d0b 1866 #endif // HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1867
whismanoid 22:a14c19b97d0b 1868 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 1869 // When user presses button BUTTON2, perform demo configuration
whismanoid 22:a14c19b97d0b 1870 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1871 void onButton2FallingEdge(void)
whismanoid 22:a14c19b97d0b 1872 {
whismanoid 22:a14c19b97d0b 1873 // TBD demo configuration
whismanoid 22:a14c19b97d0b 1874 // TODO diagnostic LED
whismanoid 22:a14c19b97d0b 1875 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 22:a14c19b97d0b 1876 }
whismanoid 22:a14c19b97d0b 1877 #endif // HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 1878
whismanoid 22:a14c19b97d0b 1879 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 1880 void SelfTest(CmdLine & cmdLine)
whismanoid 22:a14c19b97d0b 1881 {
whismanoid 22:a14c19b97d0b 1882 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 1883 #if analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 22:a14c19b97d0b 1884 // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,..
whismanoid 22:a14c19b97d0b 1885 MaximTinyTester tinyTester(cmdLine, analogIn4, analogIn5, analogIn2, analogIn3, analogIn0, analogIn4, led1_RFailLED, led2_GPassLED, led3_BBusyLED);
whismanoid 22:a14c19b97d0b 1886 tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[4]; // board support
whismanoid 22:a14c19b97d0b 1887 tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[5]; // board support
whismanoid 22:a14c19b97d0b 1888 tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support
whismanoid 22:a14c19b97d0b 1889 tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support
whismanoid 22:a14c19b97d0b 1890 tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[0]; // board support
whismanoid 22:a14c19b97d0b 1891 tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[1]; // board support
whismanoid 22:a14c19b97d0b 1892 // low range channels AIN0, AIN1, AIN2, AIN3
whismanoid 22:a14c19b97d0b 1893 #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 22:a14c19b97d0b 1894 // Platform board uses simple analog inputs
whismanoid 22:a14c19b97d0b 1895 MaximTinyTester tinyTester(cmdLine, analogIn0, analogIn1, analogIn2, analogIn3, analogIn4, analogIn5, led1_RFailLED, led2_GPassLED, led3_BBusyLED);
whismanoid 22:a14c19b97d0b 1896 tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[0]; // board support
whismanoid 22:a14c19b97d0b 1897 tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[1]; // board support
whismanoid 22:a14c19b97d0b 1898 tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support
whismanoid 22:a14c19b97d0b 1899 tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support
whismanoid 22:a14c19b97d0b 1900 tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[4]; // board support
whismanoid 22:a14c19b97d0b 1901 tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[5]; // board support
whismanoid 22:a14c19b97d0b 1902 #endif
whismanoid 22:a14c19b97d0b 1903 tinyTester.clear();
whismanoid 22:a14c19b97d0b 1904
whismanoid 23:abd02fed1ae4 1905 // @test group DACCodeOfVoltage // Verify function DACCodeOfVoltage (enabled by default)
whismanoid 23:abd02fed1ae4 1906 // @test group DACCodeOfVoltage tinyTester.blink_time_msec = 20 // quickly speed through the software verification
whismanoid 23:abd02fed1ae4 1907 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 1908 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1909 // docTest_item['action'] = 'tinyTester.blink_time_msec = 20'
whismanoid 23:abd02fed1ae4 1910 // docTest_item['remarks'] = 'quickly speed through the software verification'
whismanoid 23:abd02fed1ae4 1911 // docTest_item['propName'] = 'tinyTester.blink_time_msec'
whismanoid 23:abd02fed1ae4 1912 // docTest_item['propValue'] = '20'
whismanoid 23:abd02fed1ae4 1913 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage None quickly speed through the software verification
whismanoid 23:abd02fed1ae4 1914 // assign-propname-value
whismanoid 23:abd02fed1ae4 1915 // tinyTesterPropName = "tinyTester.blink_time_msec"
whismanoid 23:abd02fed1ae4 1916 // tinyTesterPropValue = "20"
whismanoid 23:abd02fed1ae4 1917 tinyTester.blink_time_msec = 20;
whismanoid 23:abd02fed1ae4 1918 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1919
whismanoid 23:abd02fed1ae4 1920 // @test group DACCodeOfVoltage tinyTester.print("VRef = 2.500 MAX5171 14-bit LSB = 0.00015V")
whismanoid 23:abd02fed1ae4 1921 // docTest_item['actionType'] = 'print-string'
whismanoid 23:abd02fed1ae4 1922 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1923 // docTest_item['action'] = 'tinyTester.print("VRef = 2.500 MAX5171 14-bit LSB = 0.00015V")'
whismanoid 23:abd02fed1ae4 1924 // docTest_item['arglist'] = 'VRef = 2.500 MAX5171 14-bit LSB = 0.00015V'
whismanoid 23:abd02fed1ae4 1925 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage None
whismanoid 23:abd02fed1ae4 1926 // print-string
whismanoid 23:abd02fed1ae4 1927 // tinyTesterFuncName = "tinyTester.print"
whismanoid 23:abd02fed1ae4 1928 // tinyTesterPrintStringLiteral = "VRef = 2.500 MAX5171 14-bit LSB = 0.00015V"
whismanoid 23:abd02fed1ae4 1929 tinyTester.print("VRef = 2.500 MAX5171 14-bit LSB = 0.00015V");
whismanoid 23:abd02fed1ae4 1930 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1931
whismanoid 23:abd02fed1ae4 1932 // @test group DACCodeOfVoltage VRef = 2.500
whismanoid 23:abd02fed1ae4 1933 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 1934 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1935 // docTest_item['action'] = 'VRef = 2.500'
whismanoid 23:abd02fed1ae4 1936 // docTest_item['propName'] = 'VRef'
whismanoid 23:abd02fed1ae4 1937 // docTest_item['propValue'] = '2.500'
whismanoid 23:abd02fed1ae4 1938 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage None
whismanoid 23:abd02fed1ae4 1939 // assign-propname-value
whismanoid 23:abd02fed1ae4 1940 // tinyTesterPropName = "VRef"
whismanoid 23:abd02fed1ae4 1941 // tinyTesterPropValue = "2.500"
whismanoid 23:abd02fed1ae4 1942 g_MAX5171_device.VRef = 2.500;
whismanoid 23:abd02fed1ae4 1943 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1944
whismanoid 23:abd02fed1ae4 1945 // @test group DACCodeOfVoltage tinyTester.err_threshold = 0.00015259720441921504 // 14-bit LSB (2.500/16383)
whismanoid 23:abd02fed1ae4 1946 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 1947 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1948 // docTest_item['action'] = 'tinyTester.err_threshold = 0.00015259720441921504'
whismanoid 23:abd02fed1ae4 1949 // docTest_item['remarks'] = '14-bit LSB (2.500/16383)'
whismanoid 23:abd02fed1ae4 1950 // docTest_item['propName'] = 'tinyTester.err_threshold'
whismanoid 23:abd02fed1ae4 1951 // docTest_item['propValue'] = '0.00015259720441921504'
whismanoid 23:abd02fed1ae4 1952 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage None 14-bit LSB (2.500/16383)
whismanoid 23:abd02fed1ae4 1953 // assign-propname-value
whismanoid 23:abd02fed1ae4 1954 // tinyTesterPropName = "tinyTester.err_threshold"
whismanoid 23:abd02fed1ae4 1955 // tinyTesterPropValue = "0.00015259720441921504"
whismanoid 23:abd02fed1ae4 1956 tinyTester.err_threshold = 0.00015259720441921504;
whismanoid 23:abd02fed1ae4 1957 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1958
whismanoid 23:abd02fed1ae4 1959 // @test group DACCodeOfVoltage DACCodeOfVoltage(2.499847412109375) expect 0x3FFF
whismanoid 23:abd02fed1ae4 1960 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 1961 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1962 // docTest_item['action'] = 'DACCodeOfVoltage(2.499847412109375) expect 0x3FFF'
whismanoid 23:abd02fed1ae4 1963 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1964 // docTest_item['arglist'] = '2.499847412109375'
whismanoid 23:abd02fed1ae4 1965 // docTest_item['expect-value'] = '0x3FFF'
whismanoid 23:abd02fed1ae4 1966 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1967 // call-function
whismanoid 23:abd02fed1ae4 1968 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)2.499847412109375), (uint16_t)0x3FFF); //
whismanoid 23:abd02fed1ae4 1969 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)2.499847412109375, /* expect: */ (uint16_t)0x3FFF); //
whismanoid 23:abd02fed1ae4 1970 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1971
whismanoid 23:abd02fed1ae4 1972 // @test group DACCodeOfVoltage DACCodeOfVoltage(2.49969482421875) expect 0x3FFE
whismanoid 23:abd02fed1ae4 1973 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 1974 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1975 // docTest_item['action'] = 'DACCodeOfVoltage(2.49969482421875) expect 0x3FFE'
whismanoid 23:abd02fed1ae4 1976 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1977 // docTest_item['arglist'] = '2.49969482421875'
whismanoid 23:abd02fed1ae4 1978 // docTest_item['expect-value'] = '0x3FFE'
whismanoid 23:abd02fed1ae4 1979 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1980 // call-function
whismanoid 23:abd02fed1ae4 1981 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)2.49969482421875), (uint16_t)0x3FFE); //
whismanoid 23:abd02fed1ae4 1982 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)2.49969482421875, /* expect: */ (uint16_t)0x3FFE); //
whismanoid 23:abd02fed1ae4 1983 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1984
whismanoid 23:abd02fed1ae4 1985 // @test group DACCodeOfVoltage DACCodeOfVoltage(2.499542236328125) expect 0x3FFD
whismanoid 23:abd02fed1ae4 1986 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 1987 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1988 // docTest_item['action'] = 'DACCodeOfVoltage(2.499542236328125) expect 0x3FFD'
whismanoid 23:abd02fed1ae4 1989 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 1990 // docTest_item['arglist'] = '2.499542236328125'
whismanoid 23:abd02fed1ae4 1991 // docTest_item['expect-value'] = '0x3FFD'
whismanoid 23:abd02fed1ae4 1992 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1993 // call-function
whismanoid 23:abd02fed1ae4 1994 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)2.499542236328125), (uint16_t)0x3FFD); //
whismanoid 23:abd02fed1ae4 1995 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)2.499542236328125, /* expect: */ (uint16_t)0x3FFD); //
whismanoid 23:abd02fed1ae4 1996 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 1997
whismanoid 23:abd02fed1ae4 1998 // @test group DACCodeOfVoltage DACCodeOfVoltage(2.4993896484375) expect 0x3FFC
whismanoid 23:abd02fed1ae4 1999 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2000 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2001 // docTest_item['action'] = 'DACCodeOfVoltage(2.4993896484375) expect 0x3FFC'
whismanoid 23:abd02fed1ae4 2002 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2003 // docTest_item['arglist'] = '2.4993896484375'
whismanoid 23:abd02fed1ae4 2004 // docTest_item['expect-value'] = '0x3FFC'
whismanoid 23:abd02fed1ae4 2005 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2006 // call-function
whismanoid 23:abd02fed1ae4 2007 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)2.4993896484375), (uint16_t)0x3FFC); //
whismanoid 23:abd02fed1ae4 2008 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)2.4993896484375, /* expect: */ (uint16_t)0x3FFC); //
whismanoid 23:abd02fed1ae4 2009 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2010
whismanoid 23:abd02fed1ae4 2011 // @test group DACCodeOfVoltage DACCodeOfVoltage(1.250152587890625) expect 0x2001
whismanoid 23:abd02fed1ae4 2012 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2013 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2014 // docTest_item['action'] = 'DACCodeOfVoltage(1.250152587890625) expect 0x2001'
whismanoid 23:abd02fed1ae4 2015 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2016 // docTest_item['arglist'] = '1.250152587890625'
whismanoid 23:abd02fed1ae4 2017 // docTest_item['expect-value'] = '0x2001'
whismanoid 23:abd02fed1ae4 2018 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2019 // call-function
whismanoid 23:abd02fed1ae4 2020 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)1.250152587890625), (uint16_t)0x2001); //
whismanoid 23:abd02fed1ae4 2021 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)1.250152587890625, /* expect: */ (uint16_t)0x2001); //
whismanoid 23:abd02fed1ae4 2022 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2023
whismanoid 23:abd02fed1ae4 2024 // @test group DACCodeOfVoltage DACCodeOfVoltage(1.25) expect 0x2000
whismanoid 23:abd02fed1ae4 2025 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2026 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2027 // docTest_item['action'] = 'DACCodeOfVoltage(1.25) expect 0x2000'
whismanoid 23:abd02fed1ae4 2028 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2029 // docTest_item['arglist'] = '1.25'
whismanoid 23:abd02fed1ae4 2030 // docTest_item['expect-value'] = '0x2000'
whismanoid 23:abd02fed1ae4 2031 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2032 // call-function
whismanoid 23:abd02fed1ae4 2033 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)1.25), (uint16_t)0x2000); //
whismanoid 23:abd02fed1ae4 2034 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)1.25, /* expect: */ (uint16_t)0x2000); //
whismanoid 23:abd02fed1ae4 2035 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2036
whismanoid 23:abd02fed1ae4 2037 // @test group DACCodeOfVoltage DACCodeOfVoltage(1.249847412109375) expect 0x1FFF
whismanoid 23:abd02fed1ae4 2038 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2039 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2040 // docTest_item['action'] = 'DACCodeOfVoltage(1.249847412109375) expect 0x1FFF'
whismanoid 23:abd02fed1ae4 2041 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2042 // docTest_item['arglist'] = '1.249847412109375'
whismanoid 23:abd02fed1ae4 2043 // docTest_item['expect-value'] = '0x1FFF'
whismanoid 23:abd02fed1ae4 2044 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2045 // call-function
whismanoid 23:abd02fed1ae4 2046 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)1.249847412109375), (uint16_t)0x1FFF); //
whismanoid 23:abd02fed1ae4 2047 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)1.249847412109375, /* expect: */ (uint16_t)0x1FFF); //
whismanoid 23:abd02fed1ae4 2048 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2049
whismanoid 23:abd02fed1ae4 2050 // @test group DACCodeOfVoltage DACCodeOfVoltage(1.24969482421875) expect 0x1FFE
whismanoid 23:abd02fed1ae4 2051 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2052 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2053 // docTest_item['action'] = 'DACCodeOfVoltage(1.24969482421875) expect 0x1FFE'
whismanoid 23:abd02fed1ae4 2054 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2055 // docTest_item['arglist'] = '1.24969482421875'
whismanoid 23:abd02fed1ae4 2056 // docTest_item['expect-value'] = '0x1FFE'
whismanoid 23:abd02fed1ae4 2057 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2058 // call-function
whismanoid 23:abd02fed1ae4 2059 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)1.24969482421875), (uint16_t)0x1FFE); //
whismanoid 23:abd02fed1ae4 2060 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)1.24969482421875, /* expect: */ (uint16_t)0x1FFE); //
whismanoid 23:abd02fed1ae4 2061 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2062
whismanoid 23:abd02fed1ae4 2063 // @test group DACCodeOfVoltage DACCodeOfVoltage(0.000457763671875) expect 0x0003
whismanoid 23:abd02fed1ae4 2064 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2065 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2066 // docTest_item['action'] = 'DACCodeOfVoltage(0.000457763671875) expect 0x0003'
whismanoid 23:abd02fed1ae4 2067 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2068 // docTest_item['arglist'] = '0.000457763671875'
whismanoid 23:abd02fed1ae4 2069 // docTest_item['expect-value'] = '0x0003'
whismanoid 23:abd02fed1ae4 2070 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2071 // call-function
whismanoid 23:abd02fed1ae4 2072 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)0.000457763671875), (uint16_t)0x0003); //
whismanoid 23:abd02fed1ae4 2073 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)0.000457763671875, /* expect: */ (uint16_t)0x0003); //
whismanoid 23:abd02fed1ae4 2074 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2075
whismanoid 23:abd02fed1ae4 2076 // @test group DACCodeOfVoltage DACCodeOfVoltage(0.00030517578125) expect 0x0002
whismanoid 23:abd02fed1ae4 2077 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2078 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2079 // docTest_item['action'] = 'DACCodeOfVoltage(0.00030517578125) expect 0x0002'
whismanoid 23:abd02fed1ae4 2080 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2081 // docTest_item['arglist'] = '0.00030517578125'
whismanoid 23:abd02fed1ae4 2082 // docTest_item['expect-value'] = '0x0002'
whismanoid 23:abd02fed1ae4 2083 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2084 // call-function
whismanoid 23:abd02fed1ae4 2085 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)0.00030517578125), (uint16_t)0x0002); //
whismanoid 23:abd02fed1ae4 2086 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)0.00030517578125, /* expect: */ (uint16_t)0x0002); //
whismanoid 23:abd02fed1ae4 2087 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2088
whismanoid 23:abd02fed1ae4 2089 // @test group DACCodeOfVoltage DACCodeOfVoltage(0.000152587890625) expect 0x0001
whismanoid 23:abd02fed1ae4 2090 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2091 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2092 // docTest_item['action'] = 'DACCodeOfVoltage(0.000152587890625) expect 0x0001'
whismanoid 23:abd02fed1ae4 2093 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2094 // docTest_item['arglist'] = '0.000152587890625'
whismanoid 23:abd02fed1ae4 2095 // docTest_item['expect-value'] = '0x0001'
whismanoid 23:abd02fed1ae4 2096 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2097 // call-function
whismanoid 23:abd02fed1ae4 2098 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)0.000152587890625), (uint16_t)0x0001); //
whismanoid 23:abd02fed1ae4 2099 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)0.000152587890625, /* expect: */ (uint16_t)0x0001); //
whismanoid 23:abd02fed1ae4 2100 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2101
whismanoid 23:abd02fed1ae4 2102 // @test group DACCodeOfVoltage DACCodeOfVoltage(0.00000) expect 0x0000
whismanoid 23:abd02fed1ae4 2103 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2104 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2105 // docTest_item['action'] = 'DACCodeOfVoltage(0.00000) expect 0x0000'
whismanoid 23:abd02fed1ae4 2106 // docTest_item['funcName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2107 // docTest_item['arglist'] = '0.00000'
whismanoid 23:abd02fed1ae4 2108 // docTest_item['expect-value'] = '0x0000'
whismanoid 23:abd02fed1ae4 2109 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2110 // call-function
whismanoid 23:abd02fed1ae4 2111 // ASSERT_EQ(g_MAX5171_device.DACCodeOfVoltage((double)0.00000), (uint16_t)0x0000); //
whismanoid 23:abd02fed1ae4 2112 tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, (double)0.00000, /* expect: */ (uint16_t)0x0000); //
whismanoid 23:abd02fed1ae4 2113 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2114
whismanoid 23:abd02fed1ae4 2115 // @test group DACCodeOfVoltage tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2116 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2117 // docTest_item['group-id-value'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2118 // docTest_item['action'] = 'tinyTester.blink_time_msec = 75'
whismanoid 23:abd02fed1ae4 2119 // docTest_item['remarks'] = 'default 75 resume hardware self test'
whismanoid 23:abd02fed1ae4 2120 // docTest_item['propName'] = 'tinyTester.blink_time_msec'
whismanoid 23:abd02fed1ae4 2121 // docTest_item['propValue'] = '75'
whismanoid 23:abd02fed1ae4 2122 #if MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage None default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2123 // assign-propname-value
whismanoid 23:abd02fed1ae4 2124 // tinyTesterPropName = "tinyTester.blink_time_msec"
whismanoid 23:abd02fed1ae4 2125 // tinyTesterPropValue = "75"
whismanoid 23:abd02fed1ae4 2126 tinyTester.blink_time_msec = 75;
whismanoid 23:abd02fed1ae4 2127 #endif // MAX5171_SELFTEST_DACCodeOfVoltage // group DACCodeOfVoltage
whismanoid 23:abd02fed1ae4 2128
whismanoid 23:abd02fed1ae4 2129 // @test group VoltageOfCode // Verify function VoltageOfCode (enabled by default)
whismanoid 23:abd02fed1ae4 2130 // @test group VoltageOfCode tinyTester.blink_time_msec = 20 // quickly speed through the software verification
whismanoid 23:abd02fed1ae4 2131 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2132 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2133 // docTest_item['action'] = 'tinyTester.blink_time_msec = 20'
whismanoid 23:abd02fed1ae4 2134 // docTest_item['remarks'] = 'quickly speed through the software verification'
whismanoid 23:abd02fed1ae4 2135 // docTest_item['propName'] = 'tinyTester.blink_time_msec'
whismanoid 23:abd02fed1ae4 2136 // docTest_item['propValue'] = '20'
whismanoid 23:abd02fed1ae4 2137 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode None quickly speed through the software verification
whismanoid 23:abd02fed1ae4 2138 // assign-propname-value
whismanoid 23:abd02fed1ae4 2139 // tinyTesterPropName = "tinyTester.blink_time_msec"
whismanoid 23:abd02fed1ae4 2140 // tinyTesterPropValue = "20"
whismanoid 23:abd02fed1ae4 2141 tinyTester.blink_time_msec = 20;
whismanoid 23:abd02fed1ae4 2142 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2143
whismanoid 23:abd02fed1ae4 2144 // @test group VoltageOfCode tinyTester.print("VRef = 2.500 MAX5171 14-bit LSB = 0.00015V")
whismanoid 23:abd02fed1ae4 2145 // docTest_item['actionType'] = 'print-string'
whismanoid 23:abd02fed1ae4 2146 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2147 // docTest_item['action'] = 'tinyTester.print("VRef = 2.500 MAX5171 14-bit LSB = 0.00015V")'
whismanoid 23:abd02fed1ae4 2148 // docTest_item['arglist'] = 'VRef = 2.500 MAX5171 14-bit LSB = 0.00015V'
whismanoid 23:abd02fed1ae4 2149 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode None
whismanoid 23:abd02fed1ae4 2150 // print-string
whismanoid 23:abd02fed1ae4 2151 // tinyTesterFuncName = "tinyTester.print"
whismanoid 23:abd02fed1ae4 2152 // tinyTesterPrintStringLiteral = "VRef = 2.500 MAX5171 14-bit LSB = 0.00015V"
whismanoid 23:abd02fed1ae4 2153 tinyTester.print("VRef = 2.500 MAX5171 14-bit LSB = 0.00015V");
whismanoid 23:abd02fed1ae4 2154 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2155
whismanoid 23:abd02fed1ae4 2156 // @test group VoltageOfCode VRef = 2.500
whismanoid 23:abd02fed1ae4 2157 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2158 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2159 // docTest_item['action'] = 'VRef = 2.500'
whismanoid 23:abd02fed1ae4 2160 // docTest_item['propName'] = 'VRef'
whismanoid 23:abd02fed1ae4 2161 // docTest_item['propValue'] = '2.500'
whismanoid 23:abd02fed1ae4 2162 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode None
whismanoid 23:abd02fed1ae4 2163 // assign-propname-value
whismanoid 23:abd02fed1ae4 2164 // tinyTesterPropName = "VRef"
whismanoid 23:abd02fed1ae4 2165 // tinyTesterPropValue = "2.500"
whismanoid 23:abd02fed1ae4 2166 g_MAX5171_device.VRef = 2.500;
whismanoid 23:abd02fed1ae4 2167 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2168
whismanoid 23:abd02fed1ae4 2169 // @test group VoltageOfCode tinyTester.err_threshold = 0.00015259720441921504 // 14-bit LSB (2.500/16383)
whismanoid 23:abd02fed1ae4 2170 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2171 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2172 // docTest_item['action'] = 'tinyTester.err_threshold = 0.00015259720441921504'
whismanoid 23:abd02fed1ae4 2173 // docTest_item['remarks'] = '14-bit LSB (2.500/16383)'
whismanoid 23:abd02fed1ae4 2174 // docTest_item['propName'] = 'tinyTester.err_threshold'
whismanoid 23:abd02fed1ae4 2175 // docTest_item['propValue'] = '0.00015259720441921504'
whismanoid 23:abd02fed1ae4 2176 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode None 14-bit LSB (2.500/16383)
whismanoid 23:abd02fed1ae4 2177 // assign-propname-value
whismanoid 23:abd02fed1ae4 2178 // tinyTesterPropName = "tinyTester.err_threshold"
whismanoid 23:abd02fed1ae4 2179 // tinyTesterPropValue = "0.00015259720441921504"
whismanoid 23:abd02fed1ae4 2180 tinyTester.err_threshold = 0.00015259720441921504;
whismanoid 23:abd02fed1ae4 2181 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2182
whismanoid 23:abd02fed1ae4 2183 // @test group VoltageOfCode VoltageOfCode(0x3FFF) expect 2.499847412109375
whismanoid 23:abd02fed1ae4 2184 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2185 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2186 // docTest_item['action'] = 'VoltageOfCode(0x3FFF) expect 2.499847412109375'
whismanoid 23:abd02fed1ae4 2187 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2188 // docTest_item['arglist'] = '0x3FFF'
whismanoid 23:abd02fed1ae4 2189 // docTest_item['expect-value'] = '2.499847412109375'
whismanoid 23:abd02fed1ae4 2190 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2191 // call-function
whismanoid 23:abd02fed1ae4 2192 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x3FFF), (double)2.499847412109375); //
whismanoid 23:abd02fed1ae4 2193 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x3FFF, /* expect: */ (double)2.499847412109375); //
whismanoid 23:abd02fed1ae4 2194 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2195
whismanoid 23:abd02fed1ae4 2196 // @test group VoltageOfCode VoltageOfCode(0x3FFE) expect 2.49969482421875
whismanoid 23:abd02fed1ae4 2197 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2198 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2199 // docTest_item['action'] = 'VoltageOfCode(0x3FFE) expect 2.49969482421875'
whismanoid 23:abd02fed1ae4 2200 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2201 // docTest_item['arglist'] = '0x3FFE'
whismanoid 23:abd02fed1ae4 2202 // docTest_item['expect-value'] = '2.49969482421875'
whismanoid 23:abd02fed1ae4 2203 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2204 // call-function
whismanoid 23:abd02fed1ae4 2205 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x3FFE), (double)2.49969482421875); //
whismanoid 23:abd02fed1ae4 2206 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x3FFE, /* expect: */ (double)2.49969482421875); //
whismanoid 23:abd02fed1ae4 2207 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2208
whismanoid 23:abd02fed1ae4 2209 // @test group VoltageOfCode VoltageOfCode(0x3FFD) expect 2.499542236328125
whismanoid 23:abd02fed1ae4 2210 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2211 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2212 // docTest_item['action'] = 'VoltageOfCode(0x3FFD) expect 2.499542236328125'
whismanoid 23:abd02fed1ae4 2213 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2214 // docTest_item['arglist'] = '0x3FFD'
whismanoid 23:abd02fed1ae4 2215 // docTest_item['expect-value'] = '2.499542236328125'
whismanoid 23:abd02fed1ae4 2216 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2217 // call-function
whismanoid 23:abd02fed1ae4 2218 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x3FFD), (double)2.499542236328125); //
whismanoid 23:abd02fed1ae4 2219 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x3FFD, /* expect: */ (double)2.499542236328125); //
whismanoid 23:abd02fed1ae4 2220 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2221
whismanoid 23:abd02fed1ae4 2222 // @test group VoltageOfCode VoltageOfCode(0x3FFC) expect 2.4993896484375
whismanoid 23:abd02fed1ae4 2223 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2224 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2225 // docTest_item['action'] = 'VoltageOfCode(0x3FFC) expect 2.4993896484375'
whismanoid 23:abd02fed1ae4 2226 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2227 // docTest_item['arglist'] = '0x3FFC'
whismanoid 23:abd02fed1ae4 2228 // docTest_item['expect-value'] = '2.4993896484375'
whismanoid 23:abd02fed1ae4 2229 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2230 // call-function
whismanoid 23:abd02fed1ae4 2231 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x3FFC), (double)2.4993896484375); //
whismanoid 23:abd02fed1ae4 2232 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x3FFC, /* expect: */ (double)2.4993896484375); //
whismanoid 23:abd02fed1ae4 2233 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2234
whismanoid 23:abd02fed1ae4 2235 // @test group VoltageOfCode VoltageOfCode(0x2001) expect 1.250152587890625
whismanoid 23:abd02fed1ae4 2236 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2237 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2238 // docTest_item['action'] = 'VoltageOfCode(0x2001) expect 1.250152587890625'
whismanoid 23:abd02fed1ae4 2239 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2240 // docTest_item['arglist'] = '0x2001'
whismanoid 23:abd02fed1ae4 2241 // docTest_item['expect-value'] = '1.250152587890625'
whismanoid 23:abd02fed1ae4 2242 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2243 // call-function
whismanoid 23:abd02fed1ae4 2244 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x2001), (double)1.250152587890625); //
whismanoid 23:abd02fed1ae4 2245 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x2001, /* expect: */ (double)1.250152587890625); //
whismanoid 23:abd02fed1ae4 2246 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2247
whismanoid 23:abd02fed1ae4 2248 // @test group VoltageOfCode VoltageOfCode(0x2000) expect 1.25
whismanoid 23:abd02fed1ae4 2249 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2250 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2251 // docTest_item['action'] = 'VoltageOfCode(0x2000) expect 1.25'
whismanoid 23:abd02fed1ae4 2252 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2253 // docTest_item['arglist'] = '0x2000'
whismanoid 23:abd02fed1ae4 2254 // docTest_item['expect-value'] = '1.25'
whismanoid 23:abd02fed1ae4 2255 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2256 // call-function
whismanoid 23:abd02fed1ae4 2257 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x2000), (double)1.25); //
whismanoid 23:abd02fed1ae4 2258 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x2000, /* expect: */ (double)1.25); //
whismanoid 23:abd02fed1ae4 2259 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2260
whismanoid 23:abd02fed1ae4 2261 // @test group VoltageOfCode VoltageOfCode(0x1FFF) expect 1.249847412109375
whismanoid 23:abd02fed1ae4 2262 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2263 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2264 // docTest_item['action'] = 'VoltageOfCode(0x1FFF) expect 1.249847412109375'
whismanoid 23:abd02fed1ae4 2265 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2266 // docTest_item['arglist'] = '0x1FFF'
whismanoid 23:abd02fed1ae4 2267 // docTest_item['expect-value'] = '1.249847412109375'
whismanoid 23:abd02fed1ae4 2268 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2269 // call-function
whismanoid 23:abd02fed1ae4 2270 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x1FFF), (double)1.249847412109375); //
whismanoid 23:abd02fed1ae4 2271 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x1FFF, /* expect: */ (double)1.249847412109375); //
whismanoid 23:abd02fed1ae4 2272 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2273
whismanoid 23:abd02fed1ae4 2274 // @test group VoltageOfCode VoltageOfCode(0x1FFE) expect 1.24969482421875
whismanoid 23:abd02fed1ae4 2275 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2276 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2277 // docTest_item['action'] = 'VoltageOfCode(0x1FFE) expect 1.24969482421875'
whismanoid 23:abd02fed1ae4 2278 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2279 // docTest_item['arglist'] = '0x1FFE'
whismanoid 23:abd02fed1ae4 2280 // docTest_item['expect-value'] = '1.24969482421875'
whismanoid 23:abd02fed1ae4 2281 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2282 // call-function
whismanoid 23:abd02fed1ae4 2283 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x1FFE), (double)1.24969482421875); //
whismanoid 23:abd02fed1ae4 2284 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x1FFE, /* expect: */ (double)1.24969482421875); //
whismanoid 23:abd02fed1ae4 2285 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2286
whismanoid 23:abd02fed1ae4 2287 // @test group VoltageOfCode VoltageOfCode(0x0003) expect 0.000457763671875
whismanoid 23:abd02fed1ae4 2288 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2289 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2290 // docTest_item['action'] = 'VoltageOfCode(0x0003) expect 0.000457763671875'
whismanoid 23:abd02fed1ae4 2291 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2292 // docTest_item['arglist'] = '0x0003'
whismanoid 23:abd02fed1ae4 2293 // docTest_item['expect-value'] = '0.000457763671875'
whismanoid 23:abd02fed1ae4 2294 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2295 // call-function
whismanoid 23:abd02fed1ae4 2296 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x0003), (double)0.000457763671875); //
whismanoid 23:abd02fed1ae4 2297 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x0003, /* expect: */ (double)0.000457763671875); //
whismanoid 23:abd02fed1ae4 2298 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2299
whismanoid 23:abd02fed1ae4 2300 // @test group VoltageOfCode VoltageOfCode(0x0002) expect 0.00030517578125
whismanoid 23:abd02fed1ae4 2301 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2302 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2303 // docTest_item['action'] = 'VoltageOfCode(0x0002) expect 0.00030517578125'
whismanoid 23:abd02fed1ae4 2304 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2305 // docTest_item['arglist'] = '0x0002'
whismanoid 23:abd02fed1ae4 2306 // docTest_item['expect-value'] = '0.00030517578125'
whismanoid 23:abd02fed1ae4 2307 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2308 // call-function
whismanoid 23:abd02fed1ae4 2309 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x0002), (double)0.00030517578125); //
whismanoid 23:abd02fed1ae4 2310 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x0002, /* expect: */ (double)0.00030517578125); //
whismanoid 23:abd02fed1ae4 2311 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2312
whismanoid 23:abd02fed1ae4 2313 // @test group VoltageOfCode VoltageOfCode(0x0001) expect 0.000152587890625
whismanoid 23:abd02fed1ae4 2314 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2315 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2316 // docTest_item['action'] = 'VoltageOfCode(0x0001) expect 0.000152587890625'
whismanoid 23:abd02fed1ae4 2317 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2318 // docTest_item['arglist'] = '0x0001'
whismanoid 23:abd02fed1ae4 2319 // docTest_item['expect-value'] = '0.000152587890625'
whismanoid 23:abd02fed1ae4 2320 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2321 // call-function
whismanoid 23:abd02fed1ae4 2322 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x0001), (double)0.000152587890625); //
whismanoid 23:abd02fed1ae4 2323 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x0001, /* expect: */ (double)0.000152587890625); //
whismanoid 23:abd02fed1ae4 2324 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2325
whismanoid 23:abd02fed1ae4 2326 // @test group VoltageOfCode VoltageOfCode(0x0000) expect 0.00000
whismanoid 23:abd02fed1ae4 2327 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2328 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2329 // docTest_item['action'] = 'VoltageOfCode(0x0000) expect 0.00000'
whismanoid 23:abd02fed1ae4 2330 // docTest_item['funcName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2331 // docTest_item['arglist'] = '0x0000'
whismanoid 23:abd02fed1ae4 2332 // docTest_item['expect-value'] = '0.00000'
whismanoid 23:abd02fed1ae4 2333 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode VoltageOfCode
whismanoid 23:abd02fed1ae4 2334 // call-function
whismanoid 23:abd02fed1ae4 2335 // ASSERT_EQ(g_MAX5171_device.VoltageOfCode((uint16_t)0x0000), (double)0.00000); //
whismanoid 23:abd02fed1ae4 2336 tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, (uint16_t)0x0000, /* expect: */ (double)0.00000); //
whismanoid 23:abd02fed1ae4 2337 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2338
whismanoid 23:abd02fed1ae4 2339 // @test group VoltageOfCode tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2340 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2341 // docTest_item['group-id-value'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2342 // docTest_item['action'] = 'tinyTester.blink_time_msec = 75'
whismanoid 23:abd02fed1ae4 2343 // docTest_item['remarks'] = 'default 75 resume hardware self test'
whismanoid 23:abd02fed1ae4 2344 // docTest_item['propName'] = 'tinyTester.blink_time_msec'
whismanoid 23:abd02fed1ae4 2345 // docTest_item['propValue'] = '75'
whismanoid 23:abd02fed1ae4 2346 #if MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode None default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2347 // assign-propname-value
whismanoid 23:abd02fed1ae4 2348 // tinyTesterPropName = "tinyTester.blink_time_msec"
whismanoid 23:abd02fed1ae4 2349 // tinyTesterPropValue = "75"
whismanoid 23:abd02fed1ae4 2350 tinyTester.blink_time_msec = 75;
whismanoid 23:abd02fed1ae4 2351 #endif // MAX5171_SELFTEST_VoltageOfCode // group VoltageOfCode
whismanoid 23:abd02fed1ae4 2352
whismanoid 23:abd02fed1ae4 2353 // @test group CODE_LOAD // Verify function CODE_LOAD (enabled by default)
whismanoid 23:abd02fed1ae4 2354 // @test group CODE_LOAD tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2355 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2356 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2357 // docTest_item['action'] = 'tinyTester.blink_time_msec = 75'
whismanoid 23:abd02fed1ae4 2358 // docTest_item['remarks'] = 'default 75 resume hardware self test'
whismanoid 23:abd02fed1ae4 2359 // docTest_item['propName'] = 'tinyTester.blink_time_msec'
whismanoid 23:abd02fed1ae4 2360 // docTest_item['propValue'] = '75'
whismanoid 23:abd02fed1ae4 2361 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2362 // assign-propname-value
whismanoid 23:abd02fed1ae4 2363 // tinyTesterPropName = "tinyTester.blink_time_msec"
whismanoid 23:abd02fed1ae4 2364 // tinyTesterPropValue = "75"
whismanoid 23:abd02fed1ae4 2365 tinyTester.blink_time_msec = 75;
whismanoid 23:abd02fed1ae4 2366 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2367
whismanoid 23:abd02fed1ae4 2368 // @test group CODE_LOAD tinyTester.settle_time_msec = 500
whismanoid 23:abd02fed1ae4 2369 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2370 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2371 // docTest_item['action'] = 'tinyTester.settle_time_msec = 500'
whismanoid 23:abd02fed1ae4 2372 // docTest_item['propName'] = 'tinyTester.settle_time_msec'
whismanoid 23:abd02fed1ae4 2373 // docTest_item['propValue'] = '500'
whismanoid 23:abd02fed1ae4 2374 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2375 // assign-propname-value
whismanoid 23:abd02fed1ae4 2376 // tinyTesterPropName = "tinyTester.settle_time_msec"
whismanoid 23:abd02fed1ae4 2377 // tinyTesterPropValue = "500"
whismanoid 23:abd02fed1ae4 2378 tinyTester.settle_time_msec = 500;
whismanoid 23:abd02fed1ae4 2379 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2380
whismanoid 23:abd02fed1ae4 2381 // @test Init()
whismanoid 23:abd02fed1ae4 2382 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2383 // docTest_item['action'] = 'Init()'
whismanoid 23:abd02fed1ae4 2384 // docTest_item['funcName'] = 'Init'
whismanoid 23:abd02fed1ae4 2385 // call-function
whismanoid 23:abd02fed1ae4 2386 // ASSERT_EQ(g_MAX5171_device.Init(()), (void)None); //
whismanoid 23:abd02fed1ae4 2387 // tinyTester.FunctionCall_Expect("MAX5171.Init", fn_MAX5171_Init, /* empty docTest_argList */ /* empty expect: */ (void)None); //
whismanoid 23:abd02fed1ae4 2388 g_MAX5171_device.Init(); //
whismanoid 23:abd02fed1ae4 2389
whismanoid 23:abd02fed1ae4 2390 // @test VRef expect 2.500 // Nominal Full-Scale Voltage Reference
whismanoid 23:abd02fed1ae4 2391 // docTest_item['actionType'] = 'test-propname-expect-value'
whismanoid 23:abd02fed1ae4 2392 // docTest_item['action'] = 'VRef expect 2.500'
whismanoid 23:abd02fed1ae4 2393 // docTest_item['remarks'] = 'Nominal Full-Scale Voltage Reference'
whismanoid 23:abd02fed1ae4 2394 // docTest_item['expect-value'] = '2.500'
whismanoid 23:abd02fed1ae4 2395 // docTest_item['propName'] = 'VRef'
whismanoid 23:abd02fed1ae4 2396 // test-propname-expect-value
whismanoid 23:abd02fed1ae4 2397 tinyTester.Expect("MAX5171.VRef", g_MAX5171_device.VRef, /* expect: */ 2.500); // Nominal Full-Scale Voltage Reference
whismanoid 23:abd02fed1ae4 2398
whismanoid 23:abd02fed1ae4 2399 // @test group CODE_LOAD tinyTester.err_threshold = 0.050
whismanoid 23:abd02fed1ae4 2400 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2401 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2402 // docTest_item['action'] = 'tinyTester.err_threshold = 0.050'
whismanoid 23:abd02fed1ae4 2403 // docTest_item['propName'] = 'tinyTester.err_threshold'
whismanoid 23:abd02fed1ae4 2404 // docTest_item['propValue'] = '0.050'
whismanoid 23:abd02fed1ae4 2405 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2406 // assign-propname-value
whismanoid 23:abd02fed1ae4 2407 // tinyTesterPropName = "tinyTester.err_threshold"
whismanoid 23:abd02fed1ae4 2408 // tinyTesterPropValue = "0.050"
whismanoid 23:abd02fed1ae4 2409 tinyTester.err_threshold = 0.050;
whismanoid 23:abd02fed1ae4 2410 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2411
whismanoid 23:abd02fed1ae4 2412 // @test group CODE_LOAD tinyTester.print("100.0% of full scale REF(2.50V) = 2.50V Jumper FB=1-2")
whismanoid 23:abd02fed1ae4 2413 // docTest_item['actionType'] = 'print-string'
whismanoid 23:abd02fed1ae4 2414 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2415 // docTest_item['action'] = 'tinyTester.print("100.0% of full scale REF(2.50V) = 2.50V Jumper FB=1-2")'
whismanoid 23:abd02fed1ae4 2416 // docTest_item['arglist'] = '100.0% of full scale REF(2.50V) = 2.50V Jumper FB=1-2'
whismanoid 23:abd02fed1ae4 2417 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2418 // print-string
whismanoid 23:abd02fed1ae4 2419 // tinyTesterFuncName = "tinyTester.print"
whismanoid 23:abd02fed1ae4 2420 // tinyTesterPrintStringLiteral = "100.0% of full scale REF(2.50V) = 2.50V Jumper FB=1-2"
whismanoid 23:abd02fed1ae4 2421 tinyTester.print("100.0% of full scale REF(2.50V) = 2.50V Jumper FB=1-2");
whismanoid 23:abd02fed1ae4 2422 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2423
whismanoid 23:abd02fed1ae4 2424 // @test group CODE_LOAD CODE_LOAD(0x3FFF) // 100.0% of full scale REF(2.50V) = 2.50V
whismanoid 23:abd02fed1ae4 2425 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2426 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2427 // docTest_item['action'] = 'CODE_LOAD(0x3FFF)'
whismanoid 23:abd02fed1ae4 2428 // docTest_item['remarks'] = '100.0% of full scale REF(2.50V) = 2.50V'
whismanoid 23:abd02fed1ae4 2429 // docTest_item['funcName'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2430 // docTest_item['arglist'] = '0x3FFF'
whismanoid 23:abd02fed1ae4 2431 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD CODE_LOAD 100.0% of full scale REF(2.50V) = 2.50V
whismanoid 23:abd02fed1ae4 2432 // call-function
whismanoid 23:abd02fed1ae4 2433 // 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 2434 // 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 2435 g_MAX5171_device.CODE_LOAD((uint16_t)0x3FFF); // 100.0% of full scale REF(2.50V) = 2.50V
whismanoid 23:abd02fed1ae4 2436 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2437
whismanoid 23:abd02fed1ae4 2438 // @test group CODE_LOAD tinyTester.Wait_Output_Settling()
whismanoid 23:abd02fed1ae4 2439 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2440 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2441 // docTest_item['action'] = 'tinyTester.Wait_Output_Settling()'
whismanoid 23:abd02fed1ae4 2442 // docTest_item['propName'] = 'Wait_Output_Settling'
whismanoid 23:abd02fed1ae4 2443 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2444 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2445 // tinyTesterFuncName = "tinyTester.Wait_Output_Settling"
whismanoid 23:abd02fed1ae4 2446 // docTest_argList = ""
whismanoid 23:abd02fed1ae4 2447 tinyTester.Wait_Output_Settling(); //
whismanoid 23:abd02fed1ae4 2448 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2449
whismanoid 23:abd02fed1ae4 2450 // @test group CODE_LOAD tinyTester.AnalogIn0_Read_Expect_voltageV(2.500)
whismanoid 23:abd02fed1ae4 2451 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2452 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2453 // docTest_item['action'] = 'tinyTester.AnalogIn0_Read_Expect_voltageV(2.500)'
whismanoid 23:abd02fed1ae4 2454 // docTest_item['arglist'] = '2.500'
whismanoid 23:abd02fed1ae4 2455 // docTest_item['propName'] = 'AnalogIn0_Read_Expect_voltageV'
whismanoid 23:abd02fed1ae4 2456 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2457 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2458 // tinyTesterFuncName = "tinyTester.AnalogIn0_Read_Expect_voltageV"
whismanoid 23:abd02fed1ae4 2459 // docTest_argList = "2.500"
whismanoid 23:abd02fed1ae4 2460 tinyTester.AnalogIn0_Read_Expect_voltageV(2.500); //
whismanoid 23:abd02fed1ae4 2461 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2462
whismanoid 23:abd02fed1ae4 2463 // @test group CODE_LOAD tinyTester.print("0.0% of full scale REF(2.50V) = 0.000V")
whismanoid 23:abd02fed1ae4 2464 // docTest_item['actionType'] = 'print-string'
whismanoid 23:abd02fed1ae4 2465 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2466 // docTest_item['action'] = 'tinyTester.print("0.0% of full scale REF(2.50V) = 0.000V")'
whismanoid 23:abd02fed1ae4 2467 // docTest_item['arglist'] = '0.0% of full scale REF(2.50V) = 0.000V'
whismanoid 23:abd02fed1ae4 2468 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2469 // print-string
whismanoid 23:abd02fed1ae4 2470 // tinyTesterFuncName = "tinyTester.print"
whismanoid 23:abd02fed1ae4 2471 // tinyTesterPrintStringLiteral = "0.0% of full scale REF(2.50V) = 0.000V"
whismanoid 23:abd02fed1ae4 2472 tinyTester.print("0.0% of full scale REF(2.50V) = 0.000V");
whismanoid 23:abd02fed1ae4 2473 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2474
whismanoid 23:abd02fed1ae4 2475 // @test group CODE_LOAD CODE_LOAD(0x0000) // 0.0% of full scale REF(2.50V) = 0.000V
whismanoid 23:abd02fed1ae4 2476 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2477 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2478 // docTest_item['action'] = 'CODE_LOAD(0x0000)'
whismanoid 23:abd02fed1ae4 2479 // docTest_item['remarks'] = '0.0% of full scale REF(2.50V) = 0.000V'
whismanoid 23:abd02fed1ae4 2480 // docTest_item['funcName'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2481 // docTest_item['arglist'] = '0x0000'
whismanoid 23:abd02fed1ae4 2482 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD CODE_LOAD 0.0% of full scale REF(2.50V) = 0.000V
whismanoid 23:abd02fed1ae4 2483 // call-function
whismanoid 23:abd02fed1ae4 2484 // 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 2485 // 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 2486 g_MAX5171_device.CODE_LOAD((uint16_t)0x0000); // 0.0% of full scale REF(2.50V) = 0.000V
whismanoid 23:abd02fed1ae4 2487 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2488
whismanoid 23:abd02fed1ae4 2489 // @test group CODE_LOAD tinyTester.Wait_Output_Settling()
whismanoid 23:abd02fed1ae4 2490 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2491 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2492 // docTest_item['action'] = 'tinyTester.Wait_Output_Settling()'
whismanoid 23:abd02fed1ae4 2493 // docTest_item['propName'] = 'Wait_Output_Settling'
whismanoid 23:abd02fed1ae4 2494 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2495 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2496 // tinyTesterFuncName = "tinyTester.Wait_Output_Settling"
whismanoid 23:abd02fed1ae4 2497 // docTest_argList = ""
whismanoid 23:abd02fed1ae4 2498 tinyTester.Wait_Output_Settling(); //
whismanoid 23:abd02fed1ae4 2499 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2500
whismanoid 23:abd02fed1ae4 2501 // @test group CODE_LOAD tinyTester.AnalogIn0_Read_Expect_voltageV(0.0000)
whismanoid 23:abd02fed1ae4 2502 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2503 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2504 // docTest_item['action'] = 'tinyTester.AnalogIn0_Read_Expect_voltageV(0.0000)'
whismanoid 23:abd02fed1ae4 2505 // docTest_item['arglist'] = '0.0000'
whismanoid 23:abd02fed1ae4 2506 // docTest_item['propName'] = 'AnalogIn0_Read_Expect_voltageV'
whismanoid 23:abd02fed1ae4 2507 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2508 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2509 // tinyTesterFuncName = "tinyTester.AnalogIn0_Read_Expect_voltageV"
whismanoid 23:abd02fed1ae4 2510 // docTest_argList = "0.0000"
whismanoid 23:abd02fed1ae4 2511 tinyTester.AnalogIn0_Read_Expect_voltageV(0.0000); //
whismanoid 23:abd02fed1ae4 2512 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2513
whismanoid 23:abd02fed1ae4 2514 // @test group CODE_LOAD tinyTester.print("50.0% of full scale REF(2.50V) = 1.25V")
whismanoid 23:abd02fed1ae4 2515 // docTest_item['actionType'] = 'print-string'
whismanoid 23:abd02fed1ae4 2516 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2517 // docTest_item['action'] = 'tinyTester.print("50.0% of full scale REF(2.50V) = 1.25V")'
whismanoid 23:abd02fed1ae4 2518 // docTest_item['arglist'] = '50.0% of full scale REF(2.50V) = 1.25V'
whismanoid 23:abd02fed1ae4 2519 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2520 // print-string
whismanoid 23:abd02fed1ae4 2521 // tinyTesterFuncName = "tinyTester.print"
whismanoid 23:abd02fed1ae4 2522 // tinyTesterPrintStringLiteral = "50.0% of full scale REF(2.50V) = 1.25V"
whismanoid 23:abd02fed1ae4 2523 tinyTester.print("50.0% of full scale REF(2.50V) = 1.25V");
whismanoid 23:abd02fed1ae4 2524 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2525
whismanoid 23:abd02fed1ae4 2526 // @test group CODE_LOAD CODE_LOAD(0x1FFF) // 50.0% of full scale REF(2.50V) = 1.25V
whismanoid 23:abd02fed1ae4 2527 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2528 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2529 // docTest_item['action'] = 'CODE_LOAD(0x1FFF)'
whismanoid 23:abd02fed1ae4 2530 // docTest_item['remarks'] = '50.0% of full scale REF(2.50V) = 1.25V'
whismanoid 23:abd02fed1ae4 2531 // docTest_item['funcName'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2532 // docTest_item['arglist'] = '0x1FFF'
whismanoid 23:abd02fed1ae4 2533 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD CODE_LOAD 50.0% of full scale REF(2.50V) = 1.25V
whismanoid 23:abd02fed1ae4 2534 // call-function
whismanoid 23:abd02fed1ae4 2535 // 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 2536 // 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 2537 g_MAX5171_device.CODE_LOAD((uint16_t)0x1FFF); // 50.0% of full scale REF(2.50V) = 1.25V
whismanoid 23:abd02fed1ae4 2538 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2539
whismanoid 23:abd02fed1ae4 2540 // @test group CODE_LOAD tinyTester.Wait_Output_Settling()
whismanoid 23:abd02fed1ae4 2541 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2542 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2543 // docTest_item['action'] = 'tinyTester.Wait_Output_Settling()'
whismanoid 23:abd02fed1ae4 2544 // docTest_item['propName'] = 'Wait_Output_Settling'
whismanoid 23:abd02fed1ae4 2545 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2546 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2547 // tinyTesterFuncName = "tinyTester.Wait_Output_Settling"
whismanoid 23:abd02fed1ae4 2548 // docTest_argList = ""
whismanoid 23:abd02fed1ae4 2549 tinyTester.Wait_Output_Settling(); //
whismanoid 23:abd02fed1ae4 2550 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2551
whismanoid 23:abd02fed1ae4 2552 // @test group CODE_LOAD tinyTester.AnalogIn0_Read_Expect_voltageV(1.2500)
whismanoid 23:abd02fed1ae4 2553 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2554 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2555 // docTest_item['action'] = 'tinyTester.AnalogIn0_Read_Expect_voltageV(1.2500)'
whismanoid 23:abd02fed1ae4 2556 // docTest_item['arglist'] = '1.2500'
whismanoid 23:abd02fed1ae4 2557 // docTest_item['propName'] = 'AnalogIn0_Read_Expect_voltageV'
whismanoid 23:abd02fed1ae4 2558 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2559 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2560 // tinyTesterFuncName = "tinyTester.AnalogIn0_Read_Expect_voltageV"
whismanoid 23:abd02fed1ae4 2561 // docTest_argList = "1.2500"
whismanoid 23:abd02fed1ae4 2562 tinyTester.AnalogIn0_Read_Expect_voltageV(1.2500); //
whismanoid 23:abd02fed1ae4 2563 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2564
whismanoid 23:abd02fed1ae4 2565 // @test group UPO // Verify User Programmable Output functions UPO_HIGH and UPO_LOW (enabled by default)
whismanoid 23:abd02fed1ae4 2566 // @test group UPO tinyTester.blink_time_msec = 75 // default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2567 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2568 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2569 // docTest_item['action'] = 'tinyTester.blink_time_msec = 75'
whismanoid 23:abd02fed1ae4 2570 // docTest_item['remarks'] = 'default 75 resume hardware self test'
whismanoid 23:abd02fed1ae4 2571 // docTest_item['propName'] = 'tinyTester.blink_time_msec'
whismanoid 23:abd02fed1ae4 2572 // docTest_item['propValue'] = '75'
whismanoid 23:abd02fed1ae4 2573 #if MAX5171_SELFTEST_UPO // group UPO None default 75 resume hardware self test
whismanoid 23:abd02fed1ae4 2574 // assign-propname-value
whismanoid 23:abd02fed1ae4 2575 // tinyTesterPropName = "tinyTester.blink_time_msec"
whismanoid 23:abd02fed1ae4 2576 // tinyTesterPropValue = "75"
whismanoid 23:abd02fed1ae4 2577 tinyTester.blink_time_msec = 75;
whismanoid 23:abd02fed1ae4 2578 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2579
whismanoid 23:abd02fed1ae4 2580 // @test group UPO tinyTester.settle_time_msec = 500 // default 250
whismanoid 23:abd02fed1ae4 2581 // docTest_item['actionType'] = 'assign-propname-value'
whismanoid 23:abd02fed1ae4 2582 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2583 // docTest_item['action'] = 'tinyTester.settle_time_msec = 500'
whismanoid 23:abd02fed1ae4 2584 // docTest_item['remarks'] = 'default 250'
whismanoid 23:abd02fed1ae4 2585 // docTest_item['propName'] = 'tinyTester.settle_time_msec'
whismanoid 23:abd02fed1ae4 2586 // docTest_item['propValue'] = '500'
whismanoid 23:abd02fed1ae4 2587 #if MAX5171_SELFTEST_UPO // group UPO None default 250
whismanoid 23:abd02fed1ae4 2588 // assign-propname-value
whismanoid 23:abd02fed1ae4 2589 // tinyTesterPropName = "tinyTester.settle_time_msec"
whismanoid 23:abd02fed1ae4 2590 // tinyTesterPropValue = "500"
whismanoid 23:abd02fed1ae4 2591 tinyTester.settle_time_msec = 500;
whismanoid 23:abd02fed1ae4 2592 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2593
whismanoid 23:abd02fed1ae4 2594 // @test group UPO UPO_HIGH()
whismanoid 23:abd02fed1ae4 2595 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2596 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2597 // docTest_item['action'] = 'UPO_HIGH()'
whismanoid 23:abd02fed1ae4 2598 // docTest_item['funcName'] = 'UPO_HIGH'
whismanoid 23:abd02fed1ae4 2599 #if MAX5171_SELFTEST_UPO // group UPO UPO_HIGH
whismanoid 23:abd02fed1ae4 2600 // call-function
whismanoid 23:abd02fed1ae4 2601 // ASSERT_EQ(g_MAX5171_device.UPO_HIGH(()), (uint8_t)None); //
whismanoid 23:abd02fed1ae4 2602 // tinyTester.FunctionCall_Expect("MAX5171.UPO_HIGH", fn_MAX5171_UPO_HIGH, /* empty docTest_argList */ /* empty expect: */ (uint8_t)None); //
whismanoid 23:abd02fed1ae4 2603 g_MAX5171_device.UPO_HIGH(); //
whismanoid 23:abd02fed1ae4 2604 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2605
whismanoid 23:abd02fed1ae4 2606 // @test group UPO tinyTester.Wait_Output_Settling()
whismanoid 23:abd02fed1ae4 2607 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2608 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2609 // docTest_item['action'] = 'tinyTester.Wait_Output_Settling()'
whismanoid 23:abd02fed1ae4 2610 // docTest_item['propName'] = 'Wait_Output_Settling'
whismanoid 23:abd02fed1ae4 2611 #if MAX5171_SELFTEST_UPO // group UPO None
whismanoid 23:abd02fed1ae4 2612 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2613 // tinyTesterFuncName = "tinyTester.Wait_Output_Settling"
whismanoid 23:abd02fed1ae4 2614 // docTest_argList = ""
whismanoid 23:abd02fed1ae4 2615 tinyTester.Wait_Output_Settling(); //
whismanoid 23:abd02fed1ae4 2616 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2617
whismanoid 23:abd02fed1ae4 2618 // @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 2619 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2620 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2621 // docTest_item['action'] = 'tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command")'
whismanoid 23:abd02fed1ae4 2622 // docTest_item['arglist'] = 'UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command"'
whismanoid 23:abd02fed1ae4 2623 // docTest_item['propName'] = 'DigitalIn_Read_Expect_WarnOnly'
whismanoid 23:abd02fed1ae4 2624 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2625 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2626 // tinyTesterFuncName = "tinyTester.DigitalIn_Read_Expect_WarnOnly"
whismanoid 23:abd02fed1ae4 2627 // docTest_argList = "UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command""
whismanoid 23:abd02fed1ae4 2628 tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command"); //
whismanoid 23:abd02fed1ae4 2629 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2630
whismanoid 23:abd02fed1ae4 2631 // @test group UPO UPO_LOW()
whismanoid 23:abd02fed1ae4 2632 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2633 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2634 // docTest_item['action'] = 'UPO_LOW()'
whismanoid 23:abd02fed1ae4 2635 // docTest_item['funcName'] = 'UPO_LOW'
whismanoid 23:abd02fed1ae4 2636 #if MAX5171_SELFTEST_UPO // group UPO UPO_LOW
whismanoid 23:abd02fed1ae4 2637 // call-function
whismanoid 23:abd02fed1ae4 2638 // ASSERT_EQ(g_MAX5171_device.UPO_LOW(()), (uint8_t)None); //
whismanoid 23:abd02fed1ae4 2639 // tinyTester.FunctionCall_Expect("MAX5171.UPO_LOW", fn_MAX5171_UPO_LOW, /* empty docTest_argList */ /* empty expect: */ (uint8_t)None); //
whismanoid 23:abd02fed1ae4 2640 g_MAX5171_device.UPO_LOW(); //
whismanoid 23:abd02fed1ae4 2641 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2642
whismanoid 23:abd02fed1ae4 2643 // @test group UPO tinyTester.Wait_Output_Settling()
whismanoid 23:abd02fed1ae4 2644 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2645 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2646 // docTest_item['action'] = 'tinyTester.Wait_Output_Settling()'
whismanoid 23:abd02fed1ae4 2647 // docTest_item['propName'] = 'Wait_Output_Settling'
whismanoid 23:abd02fed1ae4 2648 #if MAX5171_SELFTEST_UPO // group UPO None
whismanoid 23:abd02fed1ae4 2649 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2650 // tinyTesterFuncName = "tinyTester.Wait_Output_Settling"
whismanoid 23:abd02fed1ae4 2651 // docTest_argList = ""
whismanoid 23:abd02fed1ae4 2652 tinyTester.Wait_Output_Settling(); //
whismanoid 23:abd02fed1ae4 2653 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2654
whismanoid 23:abd02fed1ae4 2655 // @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 2656 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2657 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2658 // docTest_item['action'] = 'tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 0, "UPO_pin is low after MAX5171 UPO_LOW command")'
whismanoid 23:abd02fed1ae4 2659 // docTest_item['arglist'] = 'UPO_pin, "UPO", 0, "UPO_pin is low after MAX5171 UPO_LOW command"'
whismanoid 23:abd02fed1ae4 2660 // docTest_item['propName'] = 'DigitalIn_Read_Expect_WarnOnly'
whismanoid 23:abd02fed1ae4 2661 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2662 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2663 // tinyTesterFuncName = "tinyTester.DigitalIn_Read_Expect_WarnOnly"
whismanoid 23:abd02fed1ae4 2664 // docTest_argList = "UPO_pin, "UPO", 0, "UPO_pin is low after MAX5171 UPO_LOW command""
whismanoid 23:abd02fed1ae4 2665 tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 0, "UPO_pin is low after MAX5171 UPO_LOW command"); //
whismanoid 23:abd02fed1ae4 2666 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2667
whismanoid 23:abd02fed1ae4 2668 // @test group UPO UPO_HIGH()
whismanoid 23:abd02fed1ae4 2669 // docTest_item['actionType'] = 'call-function'
whismanoid 23:abd02fed1ae4 2670 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2671 // docTest_item['action'] = 'UPO_HIGH()'
whismanoid 23:abd02fed1ae4 2672 // docTest_item['funcName'] = 'UPO_HIGH'
whismanoid 23:abd02fed1ae4 2673 #if MAX5171_SELFTEST_UPO // group UPO UPO_HIGH
whismanoid 23:abd02fed1ae4 2674 // call-function
whismanoid 23:abd02fed1ae4 2675 // ASSERT_EQ(g_MAX5171_device.UPO_HIGH(()), (uint8_t)None); //
whismanoid 23:abd02fed1ae4 2676 // tinyTester.FunctionCall_Expect("MAX5171.UPO_HIGH", fn_MAX5171_UPO_HIGH, /* empty docTest_argList */ /* empty expect: */ (uint8_t)None); //
whismanoid 23:abd02fed1ae4 2677 g_MAX5171_device.UPO_HIGH(); //
whismanoid 23:abd02fed1ae4 2678 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2679
whismanoid 23:abd02fed1ae4 2680 // @test group UPO tinyTester.Wait_Output_Settling()
whismanoid 23:abd02fed1ae4 2681 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2682 // docTest_item['group-id-value'] = 'UPO'
whismanoid 23:abd02fed1ae4 2683 // docTest_item['action'] = 'tinyTester.Wait_Output_Settling()'
whismanoid 23:abd02fed1ae4 2684 // docTest_item['propName'] = 'Wait_Output_Settling'
whismanoid 23:abd02fed1ae4 2685 #if MAX5171_SELFTEST_UPO // group UPO None
whismanoid 23:abd02fed1ae4 2686 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2687 // tinyTesterFuncName = "tinyTester.Wait_Output_Settling"
whismanoid 23:abd02fed1ae4 2688 // docTest_argList = ""
whismanoid 23:abd02fed1ae4 2689 tinyTester.Wait_Output_Settling(); //
whismanoid 23:abd02fed1ae4 2690 #endif // MAX5171_SELFTEST_UPO // group UPO
whismanoid 23:abd02fed1ae4 2691
whismanoid 23:abd02fed1ae4 2692 // @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 2693 // docTest_item['actionType'] = 'call-tinytester-function'
whismanoid 23:abd02fed1ae4 2694 // docTest_item['group-id-value'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2695 // docTest_item['action'] = 'tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command")'
whismanoid 23:abd02fed1ae4 2696 // docTest_item['arglist'] = 'UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command"'
whismanoid 23:abd02fed1ae4 2697 // docTest_item['propName'] = 'DigitalIn_Read_Expect_WarnOnly'
whismanoid 23:abd02fed1ae4 2698 #if MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD None
whismanoid 23:abd02fed1ae4 2699 // call-tinytester-function
whismanoid 23:abd02fed1ae4 2700 // tinyTesterFuncName = "tinyTester.DigitalIn_Read_Expect_WarnOnly"
whismanoid 23:abd02fed1ae4 2701 // docTest_argList = "UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command""
whismanoid 23:abd02fed1ae4 2702 tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command"); //
whismanoid 23:abd02fed1ae4 2703 #endif // MAX5171_SELFTEST_CODE_LOAD // group CODE_LOAD
whismanoid 23:abd02fed1ae4 2704
whismanoid 22:a14c19b97d0b 2705 //
whismanoid 22:a14c19b97d0b 2706 #if INJECT_SELFTEST_FAIL
whismanoid 22:a14c19b97d0b 2707 // Test of the pass/fail report mechanism
whismanoid 22:a14c19b97d0b 2708 tinyTester.FAIL();
whismanoid 22:a14c19b97d0b 2709 cmdLine.serial().print(F("injecting one false failure for test reporting"));
whismanoid 22:a14c19b97d0b 2710 #endif
whismanoid 22:a14c19b97d0b 2711 //
whismanoid 22:a14c19b97d0b 2712 // Report number of pass and number of fail test results
whismanoid 22:a14c19b97d0b 2713 tinyTester.Report_Summary();
whismanoid 22:a14c19b97d0b 2714 }
whismanoid 22:a14c19b97d0b 2715
whismanoid 23:abd02fed1ae4 2716 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2717 // selfTestFunctionClosures[functionName]['functionName'] = 'DACCodeOfVoltage'
whismanoid 23:abd02fed1ae4 2718 // selfTestFunctionClosures[functionName]['argListDeclaration'] = 'double voltageV'
whismanoid 23:abd02fed1ae4 2719 // selfTestFunctionClosures[functionName]['returnType'] = 'uint16_t'
whismanoid 23:abd02fed1ae4 2720 // selfTestFunctionClosures[functionName]['argNames'] = 'voltageV'
whismanoid 23:abd02fed1ae4 2721 // CommandParamIn_declaration = 'double voltageV'
whismanoid 23:abd02fed1ae4 2722 // argNames_recast_implementation = '(double)voltageV'
whismanoid 23:abd02fed1ae4 2723 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2724 // selftest: define function under test
whismanoid 23:abd02fed1ae4 2725 // uint16_t MAX5171::DACCodeOfVoltage(double voltageV)
whismanoid 23:abd02fed1ae4 2726 uint16_t fn_MAX5171_DACCodeOfVoltage(double voltageV)
whismanoid 23:abd02fed1ae4 2727 {
whismanoid 23:abd02fed1ae4 2728 return g_MAX5171_device.DACCodeOfVoltage((double)voltageV);
whismanoid 23:abd02fed1ae4 2729 }
whismanoid 23:abd02fed1ae4 2730
whismanoid 23:abd02fed1ae4 2731 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2732 // selfTestFunctionClosures[functionName]['functionName'] = 'VoltageOfCode'
whismanoid 23:abd02fed1ae4 2733 // selfTestFunctionClosures[functionName]['argListDeclaration'] = 'uint16_t value_u14'
whismanoid 23:abd02fed1ae4 2734 // selfTestFunctionClosures[functionName]['returnType'] = 'double'
whismanoid 23:abd02fed1ae4 2735 // selfTestFunctionClosures[functionName]['argNames'] = 'value_u14'
whismanoid 23:abd02fed1ae4 2736 // CommandParamIn_declaration = 'int value_u14'
whismanoid 23:abd02fed1ae4 2737 // argNames_recast_implementation = '(uint16_t)value_u14'
whismanoid 23:abd02fed1ae4 2738 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2739 // selftest: define function under test
whismanoid 23:abd02fed1ae4 2740 // double MAX5171::VoltageOfCode(uint16_t value_u14)
whismanoid 23:abd02fed1ae4 2741 double fn_MAX5171_VoltageOfCode(int value_u14)
whismanoid 23:abd02fed1ae4 2742 {
whismanoid 23:abd02fed1ae4 2743 return g_MAX5171_device.VoltageOfCode((uint16_t)value_u14);
whismanoid 23:abd02fed1ae4 2744 }
whismanoid 23:abd02fed1ae4 2745
whismanoid 23:abd02fed1ae4 2746 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2747 // selfTestFunctionClosures[functionName]['functionName'] = 'Init'
whismanoid 23:abd02fed1ae4 2748 // selfTestFunctionClosures[functionName]['argListDeclaration'] = 'void'
whismanoid 23:abd02fed1ae4 2749 // selfTestFunctionClosures[functionName]['returnType'] = 'void'
whismanoid 23:abd02fed1ae4 2750 // selfTestFunctionClosures[functionName]['argNames'] = ''
whismanoid 23:abd02fed1ae4 2751 // CommandParamIn_declaration = 'void'
whismanoid 23:abd02fed1ae4 2752 // argNames_recast_implementation = ''
whismanoid 23:abd02fed1ae4 2753 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2754 // selftest: define function under test
whismanoid 23:abd02fed1ae4 2755 // void MAX5171::Init(void)
whismanoid 23:abd02fed1ae4 2756 void fn_MAX5171_Init(void)
whismanoid 23:abd02fed1ae4 2757 {
whismanoid 23:abd02fed1ae4 2758 return g_MAX5171_device.Init();
whismanoid 23:abd02fed1ae4 2759 }
whismanoid 23:abd02fed1ae4 2760
whismanoid 23:abd02fed1ae4 2761 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2762 // selfTestFunctionClosures[functionName]['functionName'] = 'CODE_LOAD'
whismanoid 23:abd02fed1ae4 2763 // selfTestFunctionClosures[functionName]['argListDeclaration'] = 'uint16_t dacCodeLsbs'
whismanoid 23:abd02fed1ae4 2764 // selfTestFunctionClosures[functionName]['returnType'] = 'uint8_t'
whismanoid 23:abd02fed1ae4 2765 // selfTestFunctionClosures[functionName]['argNames'] = 'dacCodeLsbs'
whismanoid 23:abd02fed1ae4 2766 // CommandParamIn_declaration = 'int dacCodeLsbs'
whismanoid 23:abd02fed1ae4 2767 // argNames_recast_implementation = '(uint16_t)dacCodeLsbs'
whismanoid 23:abd02fed1ae4 2768 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2769 // selftest: define function under test
whismanoid 23:abd02fed1ae4 2770 // uint8_t MAX5171::CODE_LOAD(uint16_t dacCodeLsbs)
whismanoid 23:abd02fed1ae4 2771 uint8_t fn_MAX5171_CODE_LOAD(int dacCodeLsbs)
whismanoid 23:abd02fed1ae4 2772 {
whismanoid 23:abd02fed1ae4 2773 return g_MAX5171_device.CODE_LOAD((uint16_t)dacCodeLsbs);
whismanoid 23:abd02fed1ae4 2774 }
whismanoid 23:abd02fed1ae4 2775
whismanoid 23:abd02fed1ae4 2776 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2777 // selfTestFunctionClosures[functionName]['functionName'] = 'UPO_HIGH'
whismanoid 23:abd02fed1ae4 2778 // selfTestFunctionClosures[functionName]['argListDeclaration'] = 'void'
whismanoid 23:abd02fed1ae4 2779 // selfTestFunctionClosures[functionName]['returnType'] = 'uint8_t'
whismanoid 23:abd02fed1ae4 2780 // selfTestFunctionClosures[functionName]['argNames'] = ''
whismanoid 23:abd02fed1ae4 2781 // CommandParamIn_declaration = 'void'
whismanoid 23:abd02fed1ae4 2782 // argNames_recast_implementation = ''
whismanoid 23:abd02fed1ae4 2783 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2784 // selftest: define function under test
whismanoid 23:abd02fed1ae4 2785 // uint8_t MAX5171::UPO_HIGH(void)
whismanoid 23:abd02fed1ae4 2786 uint8_t fn_MAX5171_UPO_HIGH(void)
whismanoid 23:abd02fed1ae4 2787 {
whismanoid 23:abd02fed1ae4 2788 return g_MAX5171_device.UPO_HIGH();
whismanoid 23:abd02fed1ae4 2789 }
whismanoid 23:abd02fed1ae4 2790
whismanoid 23:abd02fed1ae4 2791 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2792 // selfTestFunctionClosures[functionName]['functionName'] = 'UPO_LOW'
whismanoid 23:abd02fed1ae4 2793 // selfTestFunctionClosures[functionName]['argListDeclaration'] = 'void'
whismanoid 23:abd02fed1ae4 2794 // selfTestFunctionClosures[functionName]['returnType'] = 'uint8_t'
whismanoid 23:abd02fed1ae4 2795 // selfTestFunctionClosures[functionName]['argNames'] = ''
whismanoid 23:abd02fed1ae4 2796 // CommandParamIn_declaration = 'void'
whismanoid 23:abd02fed1ae4 2797 // argNames_recast_implementation = ''
whismanoid 23:abd02fed1ae4 2798 //--------------------------------------------------
whismanoid 23:abd02fed1ae4 2799 // selftest: define function under test
whismanoid 23:abd02fed1ae4 2800 // uint8_t MAX5171::UPO_LOW(void)
whismanoid 23:abd02fed1ae4 2801 uint8_t fn_MAX5171_UPO_LOW(void)
whismanoid 23:abd02fed1ae4 2802 {
whismanoid 23:abd02fed1ae4 2803 return g_MAX5171_device.UPO_LOW();
whismanoid 23:abd02fed1ae4 2804 }
whismanoid 23:abd02fed1ae4 2805
whismanoid 22:a14c19b97d0b 2806
whismanoid 22:a14c19b97d0b 2807 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 2808 inline void print_command_prompt()
whismanoid 22:a14c19b97d0b 2809 {
whismanoid 22:a14c19b97d0b 2810 cmdLine_serial.serial().printf("\r\n> ");
whismanoid 22:a14c19b97d0b 2811
whismanoid 22:a14c19b97d0b 2812 }
whismanoid 22:a14c19b97d0b 2813
whismanoid 22:a14c19b97d0b 2814
whismanoid 22:a14c19b97d0b 2815 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 2816 void pinsMonitor_submenu_onEOLcommandParser(CmdLine& cmdLine)
whismanoid 22:a14c19b97d0b 2817 {
whismanoid 22:a14c19b97d0b 2818 // % diagnostic commands submenu
whismanoid 22:a14c19b97d0b 2819 // %Hpin -- digital output high
whismanoid 22:a14c19b97d0b 2820 // %Lpin -- digital output low
whismanoid 22:a14c19b97d0b 2821 // %?pin -- digital input
whismanoid 22:a14c19b97d0b 2822 // %A %Apin -- analog input
whismanoid 22:a14c19b97d0b 2823 // %Ppin df=xx -- pwm output
whismanoid 22:a14c19b97d0b 2824 // %Wpin -- measure high pulsewidth input in usec
whismanoid 22:a14c19b97d0b 2825 // %wpin -- measure low pulsewidth input in usec
whismanoid 22:a14c19b97d0b 2826 // %I... -- I2C diagnostics
whismanoid 22:a14c19b97d0b 2827 // %IP -- I2C probe
whismanoid 22:a14c19b97d0b 2828 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 22:a14c19b97d0b 2829 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 22:a14c19b97d0b 2830 // %IR ADDR=? RD=? -- read
whismanoid 22:a14c19b97d0b 2831 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 2832 // %S... -- SPI diagnostics
whismanoid 22:a14c19b97d0b 2833 // %SC sclk=1Mhz -- SPI configure
whismanoid 22:a14c19b97d0b 2834 // %SW -- write (write and read)
whismanoid 22:a14c19b97d0b 2835 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 22:a14c19b97d0b 2836 // A-Z,a-z,0-9 reserved for application use
whismanoid 22:a14c19b97d0b 2837 //
whismanoid 22:a14c19b97d0b 2838 char strPinIndex[3];
whismanoid 22:a14c19b97d0b 2839 strPinIndex[0] = cmdLine[2];
whismanoid 22:a14c19b97d0b 2840 strPinIndex[1] = cmdLine[3];
whismanoid 22:a14c19b97d0b 2841 strPinIndex[2] = '\0';
whismanoid 22:a14c19b97d0b 2842 int pinIndex = strtoul(strPinIndex, NULL, 10); // strtol(str, NULL, 10): get decimal value
whismanoid 22:a14c19b97d0b 2843 //cmdLine.serial().printf(" pinIndex=%d ", pinIndex);
whismanoid 22:a14c19b97d0b 2844 //
whismanoid 22:a14c19b97d0b 2845 // get next character
whismanoid 22:a14c19b97d0b 2846 switch (cmdLine[1])
whismanoid 22:a14c19b97d0b 2847 {
whismanoid 22:a14c19b97d0b 2848 #if HAS_digitalInOuts
whismanoid 22:a14c19b97d0b 2849 case 'H': case 'h':
whismanoid 22:a14c19b97d0b 2850 {
whismanoid 22:a14c19b97d0b 2851 // %Hpin -- digital output high
whismanoid 22:a14c19b97d0b 2852 #if ARDUINO_STYLE
whismanoid 22:a14c19b97d0b 2853 pinMode(pinIndex, OUTPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 22:a14c19b97d0b 2854 digitalWrite(pinIndex, HIGH); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 22:a14c19b97d0b 2855 #else
whismanoid 22:a14c19b97d0b 2856 DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex);
whismanoid 22:a14c19b97d0b 2857 digitalInOutPin.output();
whismanoid 22:a14c19b97d0b 2858 digitalInOutPin.write(1);
whismanoid 22:a14c19b97d0b 2859 #endif
whismanoid 22:a14c19b97d0b 2860 cmdLine.serial().printf(" digitalInOutPin %d Output High ", pinIndex);
whismanoid 22:a14c19b97d0b 2861 }
whismanoid 22:a14c19b97d0b 2862 break;
whismanoid 22:a14c19b97d0b 2863 case 'L': case 'l':
whismanoid 22:a14c19b97d0b 2864 {
whismanoid 22:a14c19b97d0b 2865 // %Lpin -- digital output low
whismanoid 22:a14c19b97d0b 2866 #if ARDUINO_STYLE
whismanoid 22:a14c19b97d0b 2867 pinMode(pinIndex, OUTPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 22:a14c19b97d0b 2868 digitalWrite(pinIndex, LOW); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 22:a14c19b97d0b 2869 #else
whismanoid 22:a14c19b97d0b 2870 DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex);
whismanoid 22:a14c19b97d0b 2871 digitalInOutPin.output();
whismanoid 22:a14c19b97d0b 2872 digitalInOutPin.write(0);
whismanoid 22:a14c19b97d0b 2873 #endif
whismanoid 22:a14c19b97d0b 2874 cmdLine.serial().printf(" digitalInOutPin %d Output Low ", pinIndex);
whismanoid 22:a14c19b97d0b 2875 }
whismanoid 22:a14c19b97d0b 2876 break;
whismanoid 22:a14c19b97d0b 2877 case '?':
whismanoid 22:a14c19b97d0b 2878 {
whismanoid 22:a14c19b97d0b 2879 // %?pin -- digital input
whismanoid 22:a14c19b97d0b 2880 #if ARDUINO_STYLE
whismanoid 22:a14c19b97d0b 2881 pinMode(pinIndex, INPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5
whismanoid 22:a14c19b97d0b 2882 #else
whismanoid 22:a14c19b97d0b 2883 DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex);
whismanoid 22:a14c19b97d0b 2884 digitalInOutPin.input();
whismanoid 22:a14c19b97d0b 2885 #endif
whismanoid 22:a14c19b97d0b 2886 serial.printf(" digitalInOutPin %d Input ", pinIndex);
whismanoid 22:a14c19b97d0b 2887 #if ARDUINO_STYLE
whismanoid 22:a14c19b97d0b 2888 int value = digitalRead(pinIndex);
whismanoid 22:a14c19b97d0b 2889 #else
whismanoid 22:a14c19b97d0b 2890 int value = digitalInOutPin.read();
whismanoid 22:a14c19b97d0b 2891 #endif
whismanoid 22:a14c19b97d0b 2892 cmdLine.serial().printf("%d ", value);
whismanoid 22:a14c19b97d0b 2893 }
whismanoid 22:a14c19b97d0b 2894 break;
whismanoid 22:a14c19b97d0b 2895 #endif
whismanoid 22:a14c19b97d0b 2896 //
whismanoid 22:a14c19b97d0b 2897 #if HAS_analogIns
whismanoid 22:a14c19b97d0b 2898 case 'A': case 'a':
whismanoid 22:a14c19b97d0b 2899 {
whismanoid 22:a14c19b97d0b 2900 // %A %Apin -- analog input
whismanoid 22:a14c19b97d0b 2901 #if analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 22:a14c19b97d0b 2902 // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,..
whismanoid 22:a14c19b97d0b 2903 for (int pinIndex = 0; pinIndex < 2; pinIndex++)
whismanoid 22:a14c19b97d0b 2904 {
whismanoid 22:a14c19b97d0b 2905 int cPinIndex = '0' + pinIndex;
whismanoid 22:a14c19b97d0b 2906 AnalogIn& analogInPin = find_analogInPin(cPinIndex);
whismanoid 22:a14c19b97d0b 2907 float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex];
whismanoid 22:a14c19b97d0b 2908 float normValue_0_1 = analogInPin.read();
whismanoid 22:a14c19b97d0b 2909 //
whismanoid 22:a14c19b97d0b 2910 int pinIndexH = pinIndex + 4;
whismanoid 22:a14c19b97d0b 2911 int cPinIndexH = '0' + pinIndexH;
whismanoid 22:a14c19b97d0b 2912 AnalogIn& analogInPinH = find_analogInPin(cPinIndexH);
whismanoid 22:a14c19b97d0b 2913 float adc_full_scale_voltageH = analogInPin_fullScaleVoltage[pinIndexH];
whismanoid 22:a14c19b97d0b 2914 float normValueH_0_1 = analogInPinH.read();
whismanoid 22:a14c19b97d0b 2915 //
whismanoid 22:a14c19b97d0b 2916 cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV AIN%c = %7.3f%% = %1.3fV \r\n",
whismanoid 22:a14c19b97d0b 2917 cPinIndex,
whismanoid 22:a14c19b97d0b 2918 normValue_0_1 * 100.0,
whismanoid 22:a14c19b97d0b 2919 normValue_0_1 * adc_full_scale_voltage,
whismanoid 22:a14c19b97d0b 2920 cPinIndexH,
whismanoid 22:a14c19b97d0b 2921 normValueH_0_1 * 100.0,
whismanoid 22:a14c19b97d0b 2922 normValueH_0_1 * adc_full_scale_voltageH
whismanoid 22:a14c19b97d0b 2923 );
whismanoid 22:a14c19b97d0b 2924 }
whismanoid 22:a14c19b97d0b 2925 for (int pinIndex = 2; pinIndex < 4; pinIndex++)
whismanoid 22:a14c19b97d0b 2926 {
whismanoid 22:a14c19b97d0b 2927 int cPinIndex = '0' + pinIndex;
whismanoid 22:a14c19b97d0b 2928 AnalogIn& analogInPin = find_analogInPin(cPinIndex);
whismanoid 22:a14c19b97d0b 2929 float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex];
whismanoid 22:a14c19b97d0b 2930 float normValue_0_1 = analogInPin.read();
whismanoid 22:a14c19b97d0b 2931 //
whismanoid 22:a14c19b97d0b 2932 cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV\r\n",
whismanoid 22:a14c19b97d0b 2933 cPinIndex,
whismanoid 22:a14c19b97d0b 2934 normValue_0_1 * 100.0,
whismanoid 22:a14c19b97d0b 2935 normValue_0_1 * adc_full_scale_voltage
whismanoid 22:a14c19b97d0b 2936 );
whismanoid 22:a14c19b97d0b 2937 }
whismanoid 22:a14c19b97d0b 2938 #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 22:a14c19b97d0b 2939 // Platform board uses simple analog inputs
whismanoid 22:a14c19b97d0b 2940 // assume standard Arduino analog inputs A0-A5
whismanoid 22:a14c19b97d0b 2941 for (int pinIndex = 0; pinIndex < 6; pinIndex++)
whismanoid 22:a14c19b97d0b 2942 {
whismanoid 22:a14c19b97d0b 2943 int cPinIndex = '0' + pinIndex;
whismanoid 22:a14c19b97d0b 2944 AnalogIn& analogInPin = find_analogInPin(cPinIndex);
whismanoid 22:a14c19b97d0b 2945 float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex];
whismanoid 22:a14c19b97d0b 2946 float normValue_0_1 = analogInPin.read();
whismanoid 22:a14c19b97d0b 2947 //
whismanoid 22:a14c19b97d0b 2948 cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV\r\n",
whismanoid 22:a14c19b97d0b 2949 cPinIndex,
whismanoid 22:a14c19b97d0b 2950 normValue_0_1 * 100.0,
whismanoid 22:a14c19b97d0b 2951 normValue_0_1 * adc_full_scale_voltage
whismanoid 22:a14c19b97d0b 2952 );
whismanoid 22:a14c19b97d0b 2953 }
whismanoid 22:a14c19b97d0b 2954 #endif // analogIn4_IS_HIGH_RANGE_OF_analogIn0
whismanoid 22:a14c19b97d0b 2955 }
whismanoid 22:a14c19b97d0b 2956 break;
whismanoid 22:a14c19b97d0b 2957 #endif
whismanoid 22:a14c19b97d0b 2958 //
whismanoid 22:a14c19b97d0b 2959 #if HAS_SPI2_MAX541
whismanoid 22:a14c19b97d0b 2960 case 'D': case 'd':
whismanoid 22:a14c19b97d0b 2961 {
whismanoid 22:a14c19b97d0b 2962 // %D -- DAC output MAX541 (SPI2) -- need cmdLine.parse_float(voltageV)
whismanoid 22:a14c19b97d0b 2963 // MAX541 max541(spi2_max541, spi2_max541_cs);
whismanoid 22:a14c19b97d0b 2964 float voltageV = max541.Get_Voltage();
whismanoid 22:a14c19b97d0b 2965 // if (cmdLine[2] == '+') {
whismanoid 22:a14c19b97d0b 2966 // // %D+
whismanoid 22:a14c19b97d0b 2967 // voltageV = voltageV * 1.25f;
whismanoid 22:a14c19b97d0b 2968 // if (voltageV >= max541.VRef) voltageV = max541.VRef;
whismanoid 22:a14c19b97d0b 2969 // SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 22:a14c19b97d0b 2970 // }
whismanoid 22:a14c19b97d0b 2971 // else if (cmdLine[2] == '-') {
whismanoid 22:a14c19b97d0b 2972 // // %D-
whismanoid 22:a14c19b97d0b 2973 // voltageV = voltageV * 0.75f;
whismanoid 22:a14c19b97d0b 2974 // if (voltageV < 0.1f) voltageV = 0.1f;
whismanoid 22:a14c19b97d0b 2975 // SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 22:a14c19b97d0b 2976 // }
whismanoid 22:a14c19b97d0b 2977 if (cmdLine.parse_float("V", voltageV))
whismanoid 22:a14c19b97d0b 2978 {
whismanoid 22:a14c19b97d0b 2979 // %D V=1.234 -- set voltage
whismanoid 22:a14c19b97d0b 2980 max541.Set_Voltage(voltageV);
whismanoid 22:a14c19b97d0b 2981 }
whismanoid 22:a14c19b97d0b 2982 else if (cmdLine.parse_float("TEST", voltageV))
whismanoid 22:a14c19b97d0b 2983 {
whismanoid 22:a14c19b97d0b 2984 // %D TEST=1.234 -- set voltage and compare with AIN0
whismanoid 22:a14c19b97d0b 2985 SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 22:a14c19b97d0b 2986 }
whismanoid 22:a14c19b97d0b 2987 else if (cmdLine.parse_float("CAL", voltageV))
whismanoid 22:a14c19b97d0b 2988 {
whismanoid 22:a14c19b97d0b 2989 // %D CAL=1.234 -- calibrate VRef and compare with AIN0
whismanoid 22:a14c19b97d0b 2990
whismanoid 22:a14c19b97d0b 2991 max541.Set_Code(0x8000); // we don't know the fullscale voltage yet, so set code to midscale
whismanoid 22:a14c19b97d0b 2992 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 2993 const int average_count = 100;
whismanoid 22:a14c19b97d0b 2994 const double average_K = 0.25;
whismanoid 22:a14c19b97d0b 2995 for (int count = 0; count < average_count; count++) {
whismanoid 22:a14c19b97d0b 2996 double measurement_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V
whismanoid 22:a14c19b97d0b 2997 max541_midscale_V = ((1 - average_K) * max541_midscale_V) + (average_K * measurement_V);
whismanoid 22:a14c19b97d0b 2998 }
whismanoid 22:a14c19b97d0b 2999 max541.VRef = 2.0 * max541_midscale_V;
whismanoid 22:a14c19b97d0b 3000 cmdLine.serial().printf(
whismanoid 22:a14c19b97d0b 3001 "\r\n MAX541 midscale = %1.3fV, so fullscale = %1.3fV",
whismanoid 22:a14c19b97d0b 3002 max541_midscale_V, max541.VRef);
whismanoid 22:a14c19b97d0b 3003 // Detect whether MAX541 is really connected to MAX32625MBED.AIN0/AIN4
whismanoid 22:a14c19b97d0b 3004 voltageV = 1.0f;
whismanoid 22:a14c19b97d0b 3005 SelfTest_MAX541_Voltage(cmdLine, max541, voltageV);
whismanoid 22:a14c19b97d0b 3006 }
whismanoid 22:a14c19b97d0b 3007 else {
whismanoid 22:a14c19b97d0b 3008 // %D -- print MAX541 DAC status
whismanoid 22:a14c19b97d0b 3009 cmdLine.serial().printf("MAX541 code=0x%4.4x = %1.3fV VRef=%1.3fV\r\n",
whismanoid 22:a14c19b97d0b 3010 max541.Get_Code(), max541.Get_Voltage(), max541.VRef);
whismanoid 22:a14c19b97d0b 3011 }
whismanoid 22:a14c19b97d0b 3012 }
whismanoid 22:a14c19b97d0b 3013 break;
whismanoid 22:a14c19b97d0b 3014 #endif
whismanoid 22:a14c19b97d0b 3015
whismanoid 22:a14c19b97d0b 3016 //
whismanoid 22:a14c19b97d0b 3017 #if HAS_I2C // SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3018 case 'I': case 'i':
whismanoid 22:a14c19b97d0b 3019 // %I... -- I2C diagnostics
whismanoid 22:a14c19b97d0b 3020 // %IP -- I2C probe
whismanoid 22:a14c19b97d0b 3021 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 22:a14c19b97d0b 3022 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 22:a14c19b97d0b 3023 // %IR ADDR=? RD=? -- read
whismanoid 22:a14c19b97d0b 3024 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 3025 // get next character
whismanoid 22:a14c19b97d0b 3026 // TODO: parse cmdLine arg (ADDR=\d+)? --> g_I2C_deviceAddress7
whismanoid 22:a14c19b97d0b 3027 cmdLine.parse_byte_hex("ADDR", g_I2C_deviceAddress7);
whismanoid 22:a14c19b97d0b 3028 // TODO: parse cmdLine arg (RD=\d)? --> g_I2C_read_count
whismanoid 22:a14c19b97d0b 3029 g_I2C_read_count = 0; // read count must be reset every command
whismanoid 22:a14c19b97d0b 3030 cmdLine.parse_byte_dec("RD", g_I2C_read_count);
whismanoid 22:a14c19b97d0b 3031 // TODO: parse cmdLine arg (CMD=\d)? --> g_I2C_command_regAddress
whismanoid 22:a14c19b97d0b 3032 cmdLine.parse_byte_hex("CMD", g_I2C_command_regAddress);
whismanoid 22:a14c19b97d0b 3033 switch (cmdLine[2])
whismanoid 22:a14c19b97d0b 3034 {
whismanoid 22:a14c19b97d0b 3035 case 'P': case 'p':
whismanoid 22:a14c19b97d0b 3036 {
whismanoid 22:a14c19b97d0b 3037 // %IP -- I2C probe
whismanoid 22:a14c19b97d0b 3038 HuntAttachedI2CDevices(cmdLine, 0x03, 0x77);
whismanoid 22:a14c19b97d0b 3039 }
whismanoid 22:a14c19b97d0b 3040 break;
whismanoid 22:a14c19b97d0b 3041 case 'C': case 'c':
whismanoid 22:a14c19b97d0b 3042 {
whismanoid 22:a14c19b97d0b 3043 bool isUpdatedI2CConfig = false;
whismanoid 22:a14c19b97d0b 3044 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 22:a14c19b97d0b 3045 // parse cmdLine arg (SCL=\d+(kHZ|MHZ)?)? --> g_I2C_SCL_Hz
whismanoid 22:a14c19b97d0b 3046 if (cmdLine.parse_frequency_Hz("SCL", g_I2C_SCL_Hz))
whismanoid 22:a14c19b97d0b 3047 {
whismanoid 22:a14c19b97d0b 3048 isUpdatedI2CConfig = true;
whismanoid 22:a14c19b97d0b 3049 // TODO1: validate g_I2C_SCL_Hz against system clock frequency F_CPU
whismanoid 22:a14c19b97d0b 3050 if (g_I2C_SCL_Hz > limit_max_I2C_SCL_Hz)
whismanoid 22:a14c19b97d0b 3051 {
whismanoid 22:a14c19b97d0b 3052 g_I2C_SCL_Hz = limit_max_I2C_SCL_Hz;
whismanoid 22:a14c19b97d0b 3053 }
whismanoid 22:a14c19b97d0b 3054 if (g_I2C_SCL_Hz < limit_min_I2C_SCL_Hz)
whismanoid 22:a14c19b97d0b 3055 {
whismanoid 22:a14c19b97d0b 3056 g_I2C_SCL_Hz = limit_min_I2C_SCL_Hz;
whismanoid 22:a14c19b97d0b 3057 }
whismanoid 22:a14c19b97d0b 3058 }
whismanoid 22:a14c19b97d0b 3059 if (isUpdatedI2CConfig)
whismanoid 22:a14c19b97d0b 3060 {
whismanoid 22:a14c19b97d0b 3061 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 22:a14c19b97d0b 3062 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 22:a14c19b97d0b 3063 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 22:a14c19b97d0b 3064 i2cMaster.start();
whismanoid 22:a14c19b97d0b 3065 i2cMaster.stop();
whismanoid 22:a14c19b97d0b 3066 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 22:a14c19b97d0b 3067 cmdLine.serial().printf(
whismanoid 22:a14c19b97d0b 3068 "\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config",
whismanoid 22:a14c19b97d0b 3069 g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz,
whismanoid 22:a14c19b97d0b 3070 (g_I2C_SCL_Hz / 1000.));
whismanoid 22:a14c19b97d0b 3071 i2cMaster.start();
whismanoid 22:a14c19b97d0b 3072 i2cMaster.stop();
whismanoid 22:a14c19b97d0b 3073 }
whismanoid 22:a14c19b97d0b 3074 }
whismanoid 22:a14c19b97d0b 3075 break;
whismanoid 22:a14c19b97d0b 3076 case 'W': case 'w':
whismanoid 22:a14c19b97d0b 3077 {
whismanoid 22:a14c19b97d0b 3078 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 22:a14c19b97d0b 3079 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 22:a14c19b97d0b 3080 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 22:a14c19b97d0b 3081 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 22:a14c19b97d0b 3082 // parse cmdLine byte list --> int byteCount; int mosiData[MAX_SPI_BYTE_COUNT];
whismanoid 22:a14c19b97d0b 3083 #define MAX_I2C_BYTE_COUNT 32
whismanoid 22:a14c19b97d0b 3084 size_t byteCount = byteCount;
whismanoid 22:a14c19b97d0b 3085 static char mosiData[MAX_I2C_BYTE_COUNT];
whismanoid 22:a14c19b97d0b 3086 static char misoData[MAX_I2C_BYTE_COUNT];
whismanoid 22:a14c19b97d0b 3087 if (cmdLine.parse_byteCount_byteList_hex(byteCount, mosiData,
whismanoid 22:a14c19b97d0b 3088 MAX_I2C_BYTE_COUNT))
whismanoid 22:a14c19b97d0b 3089 {
whismanoid 22:a14c19b97d0b 3090 // hex dump mosiData[0..byteCount-1]
whismanoid 22:a14c19b97d0b 3091 cmdLine.serial().printf(
whismanoid 22:a14c19b97d0b 3092 "\r\nADDR=0x%2.2x=(0x%2.2x>>1) byteCount:%d RD=%d\r\nI2C MOSI->",
whismanoid 22:a14c19b97d0b 3093 g_I2C_deviceAddress7,
whismanoid 22:a14c19b97d0b 3094 (g_I2C_deviceAddress7 << 1), byteCount, g_I2C_read_count);
whismanoid 22:a14c19b97d0b 3095 for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++)
whismanoid 22:a14c19b97d0b 3096 {
whismanoid 22:a14c19b97d0b 3097 cmdLine.serial().printf(" 0x%2.2X", mosiData[byteIndex]);
whismanoid 22:a14c19b97d0b 3098 }
whismanoid 22:a14c19b97d0b 3099 //
whismanoid 22:a14c19b97d0b 3100 // TODO: i2c transfer
whismanoid 22:a14c19b97d0b 3101 //const int addr7bit = 0x48; // 7 bit I2C address
whismanoid 22:a14c19b97d0b 3102 //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
whismanoid 22:a14c19b97d0b 3103 // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave.
whismanoid 22:a14c19b97d0b 3104 // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus.
whismanoid 22:a14c19b97d0b 3105 // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave.
whismanoid 22:a14c19b97d0b 3106 // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus.
whismanoid 22:a14c19b97d0b 3107 // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus.
whismanoid 22:a14c19b97d0b 3108 // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus.
whismanoid 22:a14c19b97d0b 3109 // /* 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 3110 // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More...
whismanoid 22:a14c19b97d0b 3111 const int addr8bit = g_I2C_deviceAddress7 << 1; // 8bit I2C address, 0x90
whismanoid 22:a14c19b97d0b 3112 unsigned int misoLength = 0;
whismanoid 22:a14c19b97d0b 3113 bool repeated = (g_I2C_read_count > 0);
whismanoid 22:a14c19b97d0b 3114 //
whismanoid 22:a14c19b97d0b 3115 int writeStatus = i2cMaster.write (addr8bit, mosiData, byteCount, repeated);
whismanoid 22:a14c19b97d0b 3116 switch (writeStatus)
whismanoid 22:a14c19b97d0b 3117 {
whismanoid 22:a14c19b97d0b 3118 case 0: cmdLine.serial().printf(" ack "); break;
whismanoid 22:a14c19b97d0b 3119 case 1: cmdLine.serial().printf(" nack "); break;
whismanoid 22:a14c19b97d0b 3120 default: cmdLine.serial().printf(" {writeStatus 0x%2.2X} ",
whismanoid 22:a14c19b97d0b 3121 writeStatus);
whismanoid 22:a14c19b97d0b 3122 }
whismanoid 22:a14c19b97d0b 3123 if (repeated)
whismanoid 22:a14c19b97d0b 3124 {
whismanoid 22:a14c19b97d0b 3125 int readStatus =
whismanoid 22:a14c19b97d0b 3126 i2cMaster.read (addr8bit, misoData, g_I2C_read_count, false);
whismanoid 22:a14c19b97d0b 3127 switch (readStatus)
whismanoid 22:a14c19b97d0b 3128 {
whismanoid 22:a14c19b97d0b 3129 case 1: cmdLine.serial().printf(" nack "); break;
whismanoid 22:a14c19b97d0b 3130 case 0: cmdLine.serial().printf(" ack "); break;
whismanoid 22:a14c19b97d0b 3131 default: cmdLine.serial().printf(" {readStatus 0x%2.2X} ",
whismanoid 22:a14c19b97d0b 3132 readStatus);
whismanoid 22:a14c19b97d0b 3133 }
whismanoid 22:a14c19b97d0b 3134 }
whismanoid 22:a14c19b97d0b 3135 //
whismanoid 22:a14c19b97d0b 3136 if (misoLength > 0)
whismanoid 22:a14c19b97d0b 3137 {
whismanoid 22:a14c19b97d0b 3138 // hex dump misoData[0..byteCount-1]
whismanoid 22:a14c19b97d0b 3139 cmdLine.serial().printf(" MISO<-");
whismanoid 22:a14c19b97d0b 3140 for (unsigned int byteIndex = 0; byteIndex < g_I2C_read_count;
whismanoid 22:a14c19b97d0b 3141 byteIndex++)
whismanoid 22:a14c19b97d0b 3142 {
whismanoid 22:a14c19b97d0b 3143 cmdLine.serial().printf(" 0x%2.2X", misoData[byteIndex]);
whismanoid 22:a14c19b97d0b 3144 }
whismanoid 22:a14c19b97d0b 3145 }
whismanoid 22:a14c19b97d0b 3146 cmdLine.serial().printf(" ");
whismanoid 22:a14c19b97d0b 3147 }
whismanoid 22:a14c19b97d0b 3148 }
whismanoid 22:a14c19b97d0b 3149 break;
whismanoid 22:a14c19b97d0b 3150 case 'R': case 'r':
whismanoid 22:a14c19b97d0b 3151 {
whismanoid 22:a14c19b97d0b 3152 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 22:a14c19b97d0b 3153 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 22:a14c19b97d0b 3154 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 22:a14c19b97d0b 3155 // %IR ADDR=? RD=? -- read
whismanoid 22:a14c19b97d0b 3156 // TODO: i2c transfer
whismanoid 22:a14c19b97d0b 3157 //const int addr7bit = 0x48; // 7 bit I2C address
whismanoid 22:a14c19b97d0b 3158 //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
whismanoid 22:a14c19b97d0b 3159 // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave.
whismanoid 22:a14c19b97d0b 3160 // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus.
whismanoid 22:a14c19b97d0b 3161 // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave.
whismanoid 22:a14c19b97d0b 3162 // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus.
whismanoid 22:a14c19b97d0b 3163 // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus.
whismanoid 22:a14c19b97d0b 3164 // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus.
whismanoid 22:a14c19b97d0b 3165 // /* 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 3166 // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More...
whismanoid 22:a14c19b97d0b 3167 }
whismanoid 22:a14c19b97d0b 3168 break;
whismanoid 22:a14c19b97d0b 3169 case '^':
whismanoid 22:a14c19b97d0b 3170 {
whismanoid 22:a14c19b97d0b 3171 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 22:a14c19b97d0b 3172 I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header
whismanoid 22:a14c19b97d0b 3173 i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 22:a14c19b97d0b 3174 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 3175 // TODO: i2c transfer
whismanoid 22:a14c19b97d0b 3176 //const int addr7bit = 0x48; // 7 bit I2C address
whismanoid 22:a14c19b97d0b 3177 //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90
whismanoid 22:a14c19b97d0b 3178 // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave.
whismanoid 22:a14c19b97d0b 3179 // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus.
whismanoid 22:a14c19b97d0b 3180 // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave.
whismanoid 22:a14c19b97d0b 3181 // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus.
whismanoid 22:a14c19b97d0b 3182 // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus.
whismanoid 22:a14c19b97d0b 3183 // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus.
whismanoid 22:a14c19b97d0b 3184 // /* 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 3185 // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More...
whismanoid 22:a14c19b97d0b 3186 }
whismanoid 22:a14c19b97d0b 3187 break;
whismanoid 22:a14c19b97d0b 3188 } // switch(cmdLine[2])
whismanoid 22:a14c19b97d0b 3189 break;
whismanoid 22:a14c19b97d0b 3190 #endif
whismanoid 22:a14c19b97d0b 3191 //
whismanoid 22:a14c19b97d0b 3192 #if HAS_SPI // SUPPORT_SPI
whismanoid 22:a14c19b97d0b 3193 case 'S': case 's':
whismanoid 22:a14c19b97d0b 3194 {
whismanoid 22:a14c19b97d0b 3195 // %S... -- SPI diagnostics
whismanoid 22:a14c19b97d0b 3196 // %SC sclk=1Mhz -- SPI configure
whismanoid 22:a14c19b97d0b 3197 // %SW -- write (write and read)
whismanoid 22:a14c19b97d0b 3198 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 22:a14c19b97d0b 3199 //
whismanoid 22:a14c19b97d0b 3200 // Process arguments SCLK=\d+(kHZ|MHZ) CPOL=\d CPHA=\d
whismanoid 22:a14c19b97d0b 3201 bool isUpdatedSPIConfig = false;
whismanoid 22:a14c19b97d0b 3202 // parse cmdLine arg (CPOL=\d)? --> g_SPI_dataMode | SPI_MODE2
whismanoid 22:a14c19b97d0b 3203 // parse cmdLine arg (CPHA=\d)? --> g_SPI_dataMode | SPI_MODE1
whismanoid 22:a14c19b97d0b 3204 if (cmdLine.parse_flag("CPOL", g_SPI_dataMode, SPI_MODE2))
whismanoid 22:a14c19b97d0b 3205 {
whismanoid 22:a14c19b97d0b 3206 isUpdatedSPIConfig = true;
whismanoid 22:a14c19b97d0b 3207 }
whismanoid 22:a14c19b97d0b 3208 if (cmdLine.parse_flag("CPHA", g_SPI_dataMode, SPI_MODE1))
whismanoid 22:a14c19b97d0b 3209 {
whismanoid 22:a14c19b97d0b 3210 isUpdatedSPIConfig = true;
whismanoid 22:a14c19b97d0b 3211 }
whismanoid 22:a14c19b97d0b 3212 if (cmdLine.parse_flag("CS", g_SPI_cs_state, 1))
whismanoid 22:a14c19b97d0b 3213 {
whismanoid 22:a14c19b97d0b 3214 isUpdatedSPIConfig = true;
whismanoid 22:a14c19b97d0b 3215 }
whismanoid 22:a14c19b97d0b 3216 // parse cmdLine arg (SCLK=\d+(kHZ|MHZ)?)? --> g_SPI_SCLK_Hz
whismanoid 22:a14c19b97d0b 3217 if (cmdLine.parse_frequency_Hz("SCLK", g_SPI_SCLK_Hz))
whismanoid 22:a14c19b97d0b 3218 {
whismanoid 22:a14c19b97d0b 3219 isUpdatedSPIConfig = true;
whismanoid 22:a14c19b97d0b 3220 // TODO1: validate g_SPI_SCLK_Hz against system clock frequency F_CPU
whismanoid 22:a14c19b97d0b 3221 if (g_SPI_SCLK_Hz > limit_max_SPI_SCLK_Hz)
whismanoid 22:a14c19b97d0b 3222 {
whismanoid 22:a14c19b97d0b 3223 g_SPI_SCLK_Hz = limit_max_SPI_SCLK_Hz;
whismanoid 22:a14c19b97d0b 3224 }
whismanoid 22:a14c19b97d0b 3225 if (g_SPI_SCLK_Hz < limit_min_SPI_SCLK_Hz)
whismanoid 22:a14c19b97d0b 3226 {
whismanoid 22:a14c19b97d0b 3227 g_SPI_SCLK_Hz = limit_min_SPI_SCLK_Hz;
whismanoid 22:a14c19b97d0b 3228 }
whismanoid 22:a14c19b97d0b 3229 }
whismanoid 22:a14c19b97d0b 3230 // Update SPI configuration
whismanoid 22:a14c19b97d0b 3231 if (isUpdatedSPIConfig)
whismanoid 22:a14c19b97d0b 3232 {
whismanoid 22:a14c19b97d0b 3233 // %SC sclk=1Mhz -- SPI configure
whismanoid 22:a14c19b97d0b 3234 spi_cs = g_SPI_cs_state;
whismanoid 22:a14c19b97d0b 3235 spi.format(8,g_SPI_dataMode); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0
whismanoid 22:a14c19b97d0b 3236 #if APPLICATION_MAX5715
whismanoid 22:a14c19b97d0b 3237 g_MAX5715_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 22:a14c19b97d0b 3238 #elif APPLICATION_MAX11131
whismanoid 22:a14c19b97d0b 3239 g_MAX11131_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 22:a14c19b97d0b 3240 #elif APPLICATION_MAX5171
whismanoid 22:a14c19b97d0b 3241 g_MAX5171_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 22:a14c19b97d0b 3242 #elif APPLICATION_MAX11410
whismanoid 22:a14c19b97d0b 3243 g_MAX11410_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 22:a14c19b97d0b 3244 #elif APPLICATION_MAX12345
whismanoid 22:a14c19b97d0b 3245 g_MAX12345_device.spi_frequency(g_SPI_SCLK_Hz);
whismanoid 22:a14c19b97d0b 3246 #else
whismanoid 22:a14c19b97d0b 3247 spi.frequency(g_SPI_SCLK_Hz); // int SCLK_Hz=1000000 = 1MHz (initial default)
whismanoid 22:a14c19b97d0b 3248 #endif
whismanoid 22:a14c19b97d0b 3249 //
whismanoid 22:a14c19b97d0b 3250 double ideal_divisor = ((double)SystemCoreClock) / g_SPI_SCLK_Hz;
whismanoid 22:a14c19b97d0b 3251 int actual_divisor = (int)(ideal_divisor + 0.0); // frequency divisor truncate
whismanoid 22:a14c19b97d0b 3252 double actual_SCLK_Hz = SystemCoreClock / actual_divisor;
whismanoid 22:a14c19b97d0b 3253 //
whismanoid 22:a14c19b97d0b 3254 // 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 3255 cmdLine.serial().printf(
whismanoid 22:a14c19b97d0b 3256 "\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 3257 ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0),
whismanoid 22:a14c19b97d0b 3258 ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0),
whismanoid 22:a14c19b97d0b 3259 g_SPI_cs_state,
whismanoid 22:a14c19b97d0b 3260 g_SPI_SCLK_Hz,
whismanoid 22:a14c19b97d0b 3261 (g_SPI_SCLK_Hz / 1000000.),
whismanoid 22:a14c19b97d0b 3262 ((double)(SystemCoreClock / 1000000.)),
whismanoid 22:a14c19b97d0b 3263 ideal_divisor,
whismanoid 22:a14c19b97d0b 3264 (actual_SCLK_Hz / 1000000.)
whismanoid 22:a14c19b97d0b 3265 );
whismanoid 22:a14c19b97d0b 3266 }
whismanoid 22:a14c19b97d0b 3267 // get next character
whismanoid 22:a14c19b97d0b 3268 switch (cmdLine[2])
whismanoid 22:a14c19b97d0b 3269 {
whismanoid 22:a14c19b97d0b 3270 case 'C': case 's':
whismanoid 22:a14c19b97d0b 3271 // %SC sclk=1Mhz -- SPI configure
whismanoid 22:a14c19b97d0b 3272 break;
whismanoid 22:a14c19b97d0b 3273 case 'D': case 'd':
whismanoid 22:a14c19b97d0b 3274 // %SD -- SPI diagnostic messages enable
whismanoid 22:a14c19b97d0b 3275 if (g_MAX5171_device.onSPIprint) {
whismanoid 22:a14c19b97d0b 3276 g_MAX5171_device.onSPIprint = NULL;
whismanoid 23:abd02fed1ae4 3277 // no g_MAX5171_device.futility_countdown_limit property; device_has_property(Device, 'futility_countdown_limit') != None is false
whismanoid 22:a14c19b97d0b 3278 }
whismanoid 22:a14c19b97d0b 3279 else {
whismanoid 22:a14c19b97d0b 3280 void onSPIprint_handler(size_t byteCount, uint8_t mosiData[], uint8_t misoData[]);
whismanoid 22:a14c19b97d0b 3281 g_MAX5171_device.onSPIprint = onSPIprint_handler;
whismanoid 23:abd02fed1ae4 3282 // no g_MAX5171_device.futility_countdown_limit property; device_has_property(Device, 'futility_countdown_limit') is false
whismanoid 22:a14c19b97d0b 3283 }
whismanoid 22:a14c19b97d0b 3284 break;
whismanoid 22:a14c19b97d0b 3285 case 'W': case 'R': case 'w': case 'r':
whismanoid 22:a14c19b97d0b 3286 {
whismanoid 22:a14c19b97d0b 3287 // %SW -- write (write and read)
whismanoid 22:a14c19b97d0b 3288 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 22:a14c19b97d0b 3289 // parse cmdLine byte list --> int byteCount; int mosiData[MAX_SPI_BYTE_COUNT];
whismanoid 22:a14c19b97d0b 3290 #define MAX_SPI_BYTE_COUNT 32
whismanoid 22:a14c19b97d0b 3291 size_t byteCount = byteCount;
whismanoid 22:a14c19b97d0b 3292 static char mosiData[MAX_SPI_BYTE_COUNT];
whismanoid 22:a14c19b97d0b 3293 static char misoData[MAX_SPI_BYTE_COUNT];
whismanoid 22:a14c19b97d0b 3294 if (cmdLine.parse_byteCount_byteList_hex(byteCount, mosiData,
whismanoid 22:a14c19b97d0b 3295 MAX_SPI_BYTE_COUNT))
whismanoid 22:a14c19b97d0b 3296 {
whismanoid 22:a14c19b97d0b 3297 // hex dump mosiData[0..byteCount-1]
whismanoid 22:a14c19b97d0b 3298 cmdLine.serial().printf("\r\nSPI");
whismanoid 22:a14c19b97d0b 3299 if (byteCount > 7) {
whismanoid 22:a14c19b97d0b 3300 cmdLine.serial().printf(" byteCount:%d", byteCount);
whismanoid 22:a14c19b97d0b 3301 }
whismanoid 22:a14c19b97d0b 3302 cmdLine.serial().printf(" MOSI->");
whismanoid 22:a14c19b97d0b 3303 for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++)
whismanoid 22:a14c19b97d0b 3304 {
whismanoid 22:a14c19b97d0b 3305 cmdLine.serial().printf(" 0x%2.2X", mosiData[byteIndex]);
whismanoid 22:a14c19b97d0b 3306 }
whismanoid 22:a14c19b97d0b 3307 spi_cs = 0;
whismanoid 22:a14c19b97d0b 3308 unsigned int numBytesTransferred =
whismanoid 22:a14c19b97d0b 3309 spi.write(mosiData, byteCount, misoData, byteCount);
whismanoid 22:a14c19b97d0b 3310 spi_cs = 1;
whismanoid 22:a14c19b97d0b 3311 // hex dump misoData[0..byteCount-1]
whismanoid 22:a14c19b97d0b 3312 cmdLine.serial().printf(" MISO<-");
whismanoid 22:a14c19b97d0b 3313 for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred;
whismanoid 22:a14c19b97d0b 3314 byteIndex++)
whismanoid 22:a14c19b97d0b 3315 {
whismanoid 22:a14c19b97d0b 3316 cmdLine.serial().printf(" 0x%2.2X", misoData[byteIndex]);
whismanoid 22:a14c19b97d0b 3317 }
whismanoid 22:a14c19b97d0b 3318 cmdLine.serial().printf(" ");
whismanoid 22:a14c19b97d0b 3319 }
whismanoid 22:a14c19b97d0b 3320 }
whismanoid 22:a14c19b97d0b 3321 break;
whismanoid 22:a14c19b97d0b 3322 } // switch(cmdLine[2])
whismanoid 22:a14c19b97d0b 3323 } // case 'S': // %S... -- SPI diagnostics
whismanoid 22:a14c19b97d0b 3324 break;
whismanoid 22:a14c19b97d0b 3325 #endif
whismanoid 22:a14c19b97d0b 3326 //
whismanoid 22:a14c19b97d0b 3327 // A-Z,a-z,0-9 reserved for application use
whismanoid 22:a14c19b97d0b 3328 } // switch(cmdLine[1])
whismanoid 22:a14c19b97d0b 3329 } // end void pinsMonitor_submenu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 22:a14c19b97d0b 3330
whismanoid 22:a14c19b97d0b 3331
whismanoid 22:a14c19b97d0b 3332 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3333 void main_menu_status(CmdLine & cmdLine)
whismanoid 22:a14c19b97d0b 3334 {
whismanoid 22:a14c19b97d0b 3335 cmdLine.serial().printf("\r\nMain menu");
whismanoid 22:a14c19b97d0b 3336
whismanoid 22:a14c19b97d0b 3337 cmdLine.serial().printf(" MAX5171 14-bit Force/Sense DAC");
whismanoid 22:a14c19b97d0b 3338
whismanoid 22:a14c19b97d0b 3339 //cmdLine.serial().print(" %s", TARGET_NAME);
whismanoid 22:a14c19b97d0b 3340 if (cmdLine.nameStr())
whismanoid 22:a14c19b97d0b 3341 {
whismanoid 22:a14c19b97d0b 3342 cmdLine.serial().printf(" [%s]", cmdLine.nameStr());
whismanoid 22:a14c19b97d0b 3343
whismanoid 22:a14c19b97d0b 3344 }
whismanoid 22:a14c19b97d0b 3345 cmdLine.serial().printf("\r\n ? -- help");
whismanoid 22:a14c19b97d0b 3346
whismanoid 22:a14c19b97d0b 3347 }
whismanoid 22:a14c19b97d0b 3348
whismanoid 22:a14c19b97d0b 3349
whismanoid 22:a14c19b97d0b 3350 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3351 void main_menu_help(CmdLine & cmdLine)
whismanoid 22:a14c19b97d0b 3352 {
whismanoid 22:a14c19b97d0b 3353 // ? -- help
whismanoid 22:a14c19b97d0b 3354 //~ cmdLine.serial().print(F("\r\nMenu:"));
whismanoid 22:a14c19b97d0b 3355 cmdLine.serial().printf("\r\n # -- lines beginning with # are comments");
whismanoid 22:a14c19b97d0b 3356
whismanoid 22:a14c19b97d0b 3357 cmdLine.serial().printf("\r\n . -- SelfTest");
whismanoid 22:a14c19b97d0b 3358
whismanoid 22:a14c19b97d0b 3359 //cmdLine.serial().print(F("\r\n ! -- Initial Configuration"));
whismanoid 22:a14c19b97d0b 3360 //
whismanoid 22:a14c19b97d0b 3361 // % standardize diagnostic commands
whismanoid 22:a14c19b97d0b 3362 // %Hpin -- digital output high
whismanoid 22:a14c19b97d0b 3363 // %Lpin -- digital output low
whismanoid 22:a14c19b97d0b 3364 // %?pin -- digital input
whismanoid 22:a14c19b97d0b 3365 // %A %Apin -- analog input
whismanoid 22:a14c19b97d0b 3366 // %Ppin df=xx -- pwm output
whismanoid 22:a14c19b97d0b 3367 // %Wpin -- measure high pulsewidth input in usec
whismanoid 22:a14c19b97d0b 3368 // %wpin -- measure low pulsewidth input in usec
whismanoid 22:a14c19b97d0b 3369 // %I... -- I2C diagnostics
whismanoid 22:a14c19b97d0b 3370 // %IP -- I2C probe
whismanoid 22:a14c19b97d0b 3371 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 22:a14c19b97d0b 3372 // %IW ADDR=? cmd=? data,data,data -- write
whismanoid 22:a14c19b97d0b 3373 // %IR ADDR=? RD=? -- read
whismanoid 22:a14c19b97d0b 3374 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 3375 // %S... -- SPI diagnostics
whismanoid 22:a14c19b97d0b 3376 // %SC sclk=1Mhz -- SPI configure
whismanoid 22:a14c19b97d0b 3377 // %SW -- write (write and read)
whismanoid 22:a14c19b97d0b 3378 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 22:a14c19b97d0b 3379 // A-Z,a-z,0-9 reserved for application use
whismanoid 22:a14c19b97d0b 3380 //
whismanoid 22:a14c19b97d0b 3381 #if HAS_digitalInOuts
whismanoid 22:a14c19b97d0b 3382 // %Hpin -- digital output high
whismanoid 22:a14c19b97d0b 3383 // %Lpin -- digital output low
whismanoid 22:a14c19b97d0b 3384 // %?pin -- digital input
whismanoid 22:a14c19b97d0b 3385 cmdLine.serial().printf("\r\n %%Hn {pin:");
whismanoid 22:a14c19b97d0b 3386 list_digitalInOutPins(cmdLine.serial());
whismanoid 22:a14c19b97d0b 3387 cmdLine.serial().printf("} -- High Output");
whismanoid 22:a14c19b97d0b 3388 cmdLine.serial().printf("\r\n %%Ln {pin:");
whismanoid 22:a14c19b97d0b 3389 list_digitalInOutPins(cmdLine.serial());
whismanoid 22:a14c19b97d0b 3390 cmdLine.serial().printf("} -- Low Output");
whismanoid 22:a14c19b97d0b 3391 cmdLine.serial().printf("\r\n %%?n {pin:");
whismanoid 22:a14c19b97d0b 3392 list_digitalInOutPins(cmdLine.serial());
whismanoid 22:a14c19b97d0b 3393 cmdLine.serial().printf("} -- Input");
whismanoid 22:a14c19b97d0b 3394 #endif
whismanoid 22:a14c19b97d0b 3395
whismanoid 22:a14c19b97d0b 3396 #if HAS_analogIns
whismanoid 22:a14c19b97d0b 3397 // Menu A) analogRead A0..7
whismanoid 22:a14c19b97d0b 3398 // %A %Apin -- analog input
whismanoid 22:a14c19b97d0b 3399 // analogRead(pinIndex) // analog input pins A0, A1, A2, A3, A4, A5; float voltage = analogRead(A0) * (5.0 / 1023.0)
whismanoid 22:a14c19b97d0b 3400 cmdLine.serial().printf("\r\n %%A -- analogRead");
whismanoid 22:a14c19b97d0b 3401 #endif
whismanoid 22:a14c19b97d0b 3402
whismanoid 22:a14c19b97d0b 3403 #if HAS_SPI2_MAX541
whismanoid 22:a14c19b97d0b 3404 // TODO1: MAX541 max541(spi2_max541, spi2_max541_cs);
whismanoid 22:a14c19b97d0b 3405 cmdLine.serial().printf("\r\n %%D -- DAC output MAX541 (SPI2)");
whismanoid 22:a14c19b97d0b 3406 #endif
whismanoid 22:a14c19b97d0b 3407
whismanoid 22:a14c19b97d0b 3408 #if HAS_I2C // SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3409 // TODO: support I2C HAS_I2C // SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3410 // VERIFY: I2C utility commands SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3411 // VERIFY: report g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)) from last Wire_Sr.setClock(I2C_SCL_Hz);
whismanoid 22:a14c19b97d0b 3412 // %I... -- I2C diagnostics
whismanoid 22:a14c19b97d0b 3413 // %IP -- I2C probe
whismanoid 22:a14c19b97d0b 3414 // %IC scl=100khz ADDR=? -- I2C configure
whismanoid 22:a14c19b97d0b 3415 // %IW byte byte ... byte RD=? ADDR=0x -- write
whismanoid 22:a14c19b97d0b 3416 // %IR ADDR=? RD=? -- read
whismanoid 22:a14c19b97d0b 3417 // %I^ cmd=? -- i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 3418 //g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)); // 'F_CPU' 'TWBR' not declared in this scope
whismanoid 22:a14c19b97d0b 3419 cmdLine.serial().printf("\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config",
whismanoid 22:a14c19b97d0b 3420 g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz,
whismanoid 22:a14c19b97d0b 3421 (g_I2C_SCL_Hz / 1000.));
whismanoid 22:a14c19b97d0b 3422 cmdLine.serial().printf("\r\n %%IW byte byte ... byte RD=? ADDR=0x%2.2x -- I2C write/read",
whismanoid 22:a14c19b97d0b 3423 g_I2C_deviceAddress7);
whismanoid 22:a14c19b97d0b 3424 //
whismanoid 22:a14c19b97d0b 3425 #if SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3426 // Menu ^ cmd=?) i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 3427 cmdLine.serial().printf("\r\n %%I^ cmd=? -- i2c_smbus_read_word_data");
whismanoid 22:a14c19b97d0b 3428 // test low-level I2C i2c_smbus_read_word_data
whismanoid 22:a14c19b97d0b 3429 #endif // SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3430 //cmdLine.serial().printf(" H) Hunt for attached I2C devices");
whismanoid 22:a14c19b97d0b 3431 cmdLine.serial().printf("\r\n %%IP -- I2C Probe for attached devices");
whismanoid 22:a14c19b97d0b 3432 // cmdLine.serial().printf(" s) search i2c address");
whismanoid 22:a14c19b97d0b 3433 #endif // SUPPORT_I2C
whismanoid 22:a14c19b97d0b 3434
whismanoid 22:a14c19b97d0b 3435 #if HAS_SPI // SUPPORT_SPI
whismanoid 22:a14c19b97d0b 3436 // TODO: support SPI HAS_SPI // SUPPORT_SPI
whismanoid 22:a14c19b97d0b 3437 // SPI test command S (mosiData)+
whismanoid 22:a14c19b97d0b 3438 // %S... -- SPI diagnostics
whismanoid 22:a14c19b97d0b 3439 // %SC sclk=1Mhz -- SPI configure
whismanoid 22:a14c19b97d0b 3440 // %SW -- write (write and read)
whismanoid 22:a14c19b97d0b 3441 // %SR -- read (alias for %SW because SPI always write and read)
whismanoid 22:a14c19b97d0b 3442 // spi.format(8,0); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 rising edge (initial default)
whismanoid 22:a14c19b97d0b 3443 // spi.format(8,1); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=1 falling edge (initial default)
whismanoid 22:a14c19b97d0b 3444 // spi.format(8,2); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=0 falling edge (initial default)
whismanoid 22:a14c19b97d0b 3445 // spi.format(8,3); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=1 rising edge (initial default)
whismanoid 22:a14c19b97d0b 3446 // spi.frequency(1000000); // int SCLK_Hz=1000000 = 1MHz (initial default)
whismanoid 22:a14c19b97d0b 3447 // mode | POL PHA
whismanoid 22:a14c19b97d0b 3448 // -----+--------
whismanoid 22:a14c19b97d0b 3449 // 0 | 0 0
whismanoid 22:a14c19b97d0b 3450 // 1 | 0 1
whismanoid 22:a14c19b97d0b 3451 // 2 | 1 0
whismanoid 22:a14c19b97d0b 3452 // 3 | 1 1
whismanoid 22:a14c19b97d0b 3453 //cmdLine.serial().printf(" S) SPI mosi,mosi,...mosi hex bytes SCLK=1000000 CPOL=0 CPHA=0");
whismanoid 22:a14c19b97d0b 3454 // 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 3455 cmdLine.serial().printf("\r\n %%SC SCLK=%ld=%1.3fMHz CPOL=%d CPHA=%d -- SPI config",
whismanoid 22:a14c19b97d0b 3456 g_SPI_SCLK_Hz, (g_SPI_SCLK_Hz / 1000000.),
whismanoid 22:a14c19b97d0b 3457 ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0),
whismanoid 22:a14c19b97d0b 3458 ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0));
whismanoid 22:a14c19b97d0b 3459 cmdLine.serial().printf("\r\n %%SD -- SPI diagnostic messages ");
whismanoid 22:a14c19b97d0b 3460 if (g_MAX5171_device.onSPIprint) {
whismanoid 22:a14c19b97d0b 3461 cmdLine.serial().printf("hide");
whismanoid 22:a14c19b97d0b 3462 }
whismanoid 22:a14c19b97d0b 3463 else {
whismanoid 22:a14c19b97d0b 3464 cmdLine.serial().printf("show");
whismanoid 22:a14c19b97d0b 3465 }
whismanoid 22:a14c19b97d0b 3466 cmdLine.serial().printf("\r\n %%SW mosi,mosi,...mosi -- SPI write hex bytes");
whismanoid 22:a14c19b97d0b 3467 // VERIFY: parse new SPI settings parse_strCommandArgs() SCLK=1000000 CPOL=0 CPHA=0
whismanoid 22:a14c19b97d0b 3468 #endif // SUPPORT_SPI
whismanoid 22:a14c19b97d0b 3469 //
whismanoid 22:a14c19b97d0b 3470 // Application-specific commands (help text) here
whismanoid 22:a14c19b97d0b 3471 //
whismanoid 22:a14c19b97d0b 3472 #if APPLICATION_ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3473 cmdLine.serial().printf("\r\n A-Z,a-z,0-9 -- reserved for application use"); // ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3474 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3475 //
whismanoid 22:a14c19b97d0b 3476
whismanoid 22:a14c19b97d0b 3477 extern void MAX5171_menu_help(CmdLine & cmdLine); // defined in Test_Menu_MAX5171.cpp\n
whismanoid 22:a14c19b97d0b 3478 MAX5171_menu_help(cmdLine);
whismanoid 22:a14c19b97d0b 3479 }
whismanoid 22:a14c19b97d0b 3480
whismanoid 22:a14c19b97d0b 3481
whismanoid 22:a14c19b97d0b 3482
whismanoid 22:a14c19b97d0b 3483 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3484 // main menu command-line parser
whismanoid 22:a14c19b97d0b 3485 // invoked by CmdLine::append(char ch) or CmdLine::idleAppendIfReadable()
whismanoid 22:a14c19b97d0b 3486 void main_menu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 22:a14c19b97d0b 3487 {
whismanoid 22:a14c19b97d0b 3488 // DIAGNOSTIC: print line buffer
whismanoid 22:a14c19b97d0b 3489 //~ cmdLine.serial().printf("\r\nmain_menu_onEOLcommandParser: ~%s~\r\n", cmdLine.str());
whismanoid 22:a14c19b97d0b 3490 //
whismanoid 22:a14c19b97d0b 3491 switch (cmdLine[0])
whismanoid 22:a14c19b97d0b 3492 {
whismanoid 22:a14c19b97d0b 3493 case '?':
whismanoid 22:a14c19b97d0b 3494 main_menu_status(cmdLine);
whismanoid 22:a14c19b97d0b 3495 main_menu_help(cmdLine);
whismanoid 22:a14c19b97d0b 3496 // print command prompt
whismanoid 22:a14c19b97d0b 3497 //cmdLine.serial().printf("\r\n>");
whismanoid 22:a14c19b97d0b 3498 break;
whismanoid 22:a14c19b97d0b 3499 case '\r': case '\n': // ignore blank line
whismanoid 22:a14c19b97d0b 3500 case '\0': // ignore empty line
whismanoid 22:a14c19b97d0b 3501 case '#': // ignore comment line
whismanoid 22:a14c19b97d0b 3502 // # -- lines beginning with # are comments
whismanoid 22:a14c19b97d0b 3503 main_menu_status(cmdLine);
whismanoid 22:a14c19b97d0b 3504 //~ main_menu_help(cmdLine);
whismanoid 22:a14c19b97d0b 3505 // print command prompt
whismanoid 22:a14c19b97d0b 3506 //cmdLine.serial().printf("\r\n>");
whismanoid 22:a14c19b97d0b 3507 break;
whismanoid 22:a14c19b97d0b 3508 #if ECHO_EOF_ON_EOL
whismanoid 22:a14c19b97d0b 3509 case '\x04': // Unicode (U+0004) EOT END OF TRANSMISSION = CTRL+D as EOF end of file
whismanoid 22:a14c19b97d0b 3510 cmdLine.serial().printf("\x04"); // immediately echo EOF for test scripting
whismanoid 22:a14c19b97d0b 3511 diagnostic_led_EOF();
whismanoid 22:a14c19b97d0b 3512 break;
whismanoid 22:a14c19b97d0b 3513 case '\x1a': // Unicode (U+001A) SUB SUBSTITUTE = CTRL+Z as EOF end of file
whismanoid 22:a14c19b97d0b 3514 cmdLine.serial().printf("\x1a"); // immediately echo EOF for test scripting
whismanoid 22:a14c19b97d0b 3515 diagnostic_led_EOF();
whismanoid 22:a14c19b97d0b 3516 break;
whismanoid 22:a14c19b97d0b 3517 #endif
whismanoid 22:a14c19b97d0b 3518 #if APPLICATION_ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3519 case '.':
whismanoid 22:a14c19b97d0b 3520 {
whismanoid 22:a14c19b97d0b 3521 // . -- SelfTest
whismanoid 22:a14c19b97d0b 3522 cmdLine.serial().printf("SelfTest()");
whismanoid 22:a14c19b97d0b 3523 SelfTest(cmdLine);
whismanoid 22:a14c19b97d0b 3524 }
whismanoid 22:a14c19b97d0b 3525 break;
whismanoid 22:a14c19b97d0b 3526 case '%':
whismanoid 22:a14c19b97d0b 3527 {
whismanoid 22:a14c19b97d0b 3528 pinsMonitor_submenu_onEOLcommandParser(cmdLine);
whismanoid 22:a14c19b97d0b 3529 }
whismanoid 22:a14c19b97d0b 3530 break; // case '%'
whismanoid 22:a14c19b97d0b 3531 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3532 //
whismanoid 22:a14c19b97d0b 3533 // Application-specific commands here
whismanoid 22:a14c19b97d0b 3534 // alphanumeric command codes A-Z,a-z,0-9 reserved for application use
whismanoid 22:a14c19b97d0b 3535 //
whismanoid 22:a14c19b97d0b 3536 #if APPLICATION_ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3537 #endif // APPLICATION_ArduinoPinsMonitor
whismanoid 22:a14c19b97d0b 3538
whismanoid 22:a14c19b97d0b 3539 //
whismanoid 22:a14c19b97d0b 3540 // add new commands here
whismanoid 22:a14c19b97d0b 3541 //
whismanoid 22:a14c19b97d0b 3542 default:
whismanoid 22:a14c19b97d0b 3543 extern bool MAX5171_menu_onEOLcommandParser(CmdLine & cmdLine); // defined in Test_Menu_MAX5171.cpp
whismanoid 22:a14c19b97d0b 3544 if (!MAX5171_menu_onEOLcommandParser(cmdLine))
whismanoid 22:a14c19b97d0b 3545 { // not_handled_by_device_submenu
whismanoid 22:a14c19b97d0b 3546 cmdLine.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", cmdLine.str()[0], cmdLine.str());
whismanoid 22:a14c19b97d0b 3547
whismanoid 22:a14c19b97d0b 3548 # if HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3549 cmdLine_DAPLINKserial.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", cmdLine.str()[0], cmdLine.str());
whismanoid 22:a14c19b97d0b 3550
whismanoid 22:a14c19b97d0b 3551 # endif // HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3552 }
whismanoid 22:a14c19b97d0b 3553 } // switch (cmdLine[0])
whismanoid 22:a14c19b97d0b 3554 //
whismanoid 22:a14c19b97d0b 3555 // print command prompt
whismanoid 22:a14c19b97d0b 3556 cmdLine.serial().printf("\r\nMAX5171 > ");
whismanoid 22:a14c19b97d0b 3557
whismanoid 22:a14c19b97d0b 3558 } // end void main_menu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 22:a14c19b97d0b 3559
whismanoid 22:a14c19b97d0b 3560 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3561 #if MAX5171_ONSPIPRINT
whismanoid 22:a14c19b97d0b 3562 // Optional Diagnostic function to print SPI transactions
whismanoid 22:a14c19b97d0b 3563 void onSPIprint_handler(size_t byteCount, uint8_t mosiData[], uint8_t misoData[])
whismanoid 22:a14c19b97d0b 3564 {
whismanoid 23:abd02fed1ae4 3565 cmdLine_serial.serial().printf("\r\n SPI MOSI->");
whismanoid 22:a14c19b97d0b 3566 for (uint8_t index = 0; index < byteCount; index++) {
whismanoid 22:a14c19b97d0b 3567 cmdLine_serial.serial().printf(" 0x%2.2X", mosiData[index]);
whismanoid 22:a14c19b97d0b 3568 }
whismanoid 22:a14c19b97d0b 3569 cmdLine_serial.serial().printf(" MISO<-");
whismanoid 22:a14c19b97d0b 3570 for (uint8_t index = 0; index < byteCount; index++) {
whismanoid 22:a14c19b97d0b 3571 cmdLine_serial.serial().printf(" 0x%2.2X", misoData[index]);
whismanoid 22:a14c19b97d0b 3572 }
whismanoid 22:a14c19b97d0b 3573 cmdLine_serial.serial().printf(" ");
whismanoid 22:a14c19b97d0b 3574 }
whismanoid 22:a14c19b97d0b 3575 #endif // MAX5171_ONSPIPRINT
whismanoid 22:a14c19b97d0b 3576
whismanoid 22:a14c19b97d0b 3577 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3578 void InitializeConfiguration()
whismanoid 22:a14c19b97d0b 3579 {
whismanoid 22:a14c19b97d0b 3580 // CODE GENERATOR: example code: member function Init
whismanoid 22:a14c19b97d0b 3581 # if HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3582 cmdLine_DAPLINKserial.serial().printf("\r\nMAX5171_Init()");
whismanoid 22:a14c19b97d0b 3583
whismanoid 22:a14c19b97d0b 3584 # endif
whismanoid 22:a14c19b97d0b 3585 cmdLine_serial.serial().printf("\r\nMAX5171_Init()");
whismanoid 22:a14c19b97d0b 3586
whismanoid 23:abd02fed1ae4 3587 g_MAX5171_device.Init(); // defined in #include MAX5171.h
whismanoid 22:a14c19b97d0b 3588 # if MAX5171_ONSPIPRINT
whismanoid 22:a14c19b97d0b 3589 // Optional Diagnostic function to print SPI transactions
whismanoid 22:a14c19b97d0b 3590 g_MAX5171_device.onSPIprint = onSPIprint_handler;
whismanoid 22:a14c19b97d0b 3591 # endif
whismanoid 22:a14c19b97d0b 3592 }
whismanoid 22:a14c19b97d0b 3593
whismanoid 22:a14c19b97d0b 3594 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3595 // diagnostic rbg led GREEN
whismanoid 22:a14c19b97d0b 3596 void diagnostic_led_EOF()
whismanoid 22:a14c19b97d0b 3597 {
whismanoid 22:a14c19b97d0b 3598 #if USE_LEDS
whismanoid 22:a14c19b97d0b 3599 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 22:a14c19b97d0b 3600 // 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 3601 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 22:a14c19b97d0b 3602 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 22:a14c19b97d0b 3603 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 22:a14c19b97d0b 3604 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 22:a14c19b97d0b 3605 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 22:a14c19b97d0b 3606 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 22:a14c19b97d0b 3607 ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250);
whismanoid 22:a14c19b97d0b 3608 #endif // USE_LEDS
whismanoid 22:a14c19b97d0b 3609 }
whismanoid 22:a14c19b97d0b 3610
whismanoid 22:a14c19b97d0b 3611 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3612 // Support commands that get handled immediately w/o waiting for EOL
whismanoid 22:a14c19b97d0b 3613 // handled as immediate command, do not append to buffer
whismanoid 22:a14c19b97d0b 3614 void on_immediate_0x21() // Unicode (U+0021) ! EXCLAMATION MARK
whismanoid 22:a14c19b97d0b 3615 {
whismanoid 22:a14c19b97d0b 3616 #if USE_LEDS
whismanoid 22:a14c19b97d0b 3617 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 22:a14c19b97d0b 3618 #endif // USE_LEDS
whismanoid 22:a14c19b97d0b 3619 InitializeConfiguration();
whismanoid 22:a14c19b97d0b 3620 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3621 }
whismanoid 22:a14c19b97d0b 3622
whismanoid 22:a14c19b97d0b 3623 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3624 // Support commands that get handled immediately w/o waiting for EOL
whismanoid 22:a14c19b97d0b 3625 // handled as immediate command, do not append to buffer
whismanoid 22:a14c19b97d0b 3626 void on_immediate_0x7b() // Unicode (U+007B) { LEFT CURLY BRACKET
whismanoid 22:a14c19b97d0b 3627 {
whismanoid 22:a14c19b97d0b 3628 #if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 3629 onButton2FallingEdge();
whismanoid 22:a14c19b97d0b 3630 #endif
whismanoid 22:a14c19b97d0b 3631 }
whismanoid 22:a14c19b97d0b 3632
whismanoid 22:a14c19b97d0b 3633 //--------------------------------------------------
whismanoid 22:a14c19b97d0b 3634 // Support commands that get handled immediately w/o waiting for EOL
whismanoid 22:a14c19b97d0b 3635 // handled as immediate command, do not append to buffer
whismanoid 22:a14c19b97d0b 3636 void on_immediate_0x7d() // Unicode (U+007D) } RIGHT CURLY BRACKET
whismanoid 22:a14c19b97d0b 3637 {
whismanoid 22:a14c19b97d0b 3638 #if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 3639 onButton1FallingEdge();
whismanoid 22:a14c19b97d0b 3640 #endif
whismanoid 22:a14c19b97d0b 3641 }
whismanoid 22:a14c19b97d0b 3642
whismanoid 22:a14c19b97d0b 3643 //----------------------------------------
whismanoid 22:a14c19b97d0b 3644 // example code main function
whismanoid 22:a14c19b97d0b 3645 int main()
whismanoid 22:a14c19b97d0b 3646 {
whismanoid 22:a14c19b97d0b 3647 // Configure serial ports
whismanoid 22:a14c19b97d0b 3648 cmdLine_serial.clear();
whismanoid 22:a14c19b97d0b 3649 //~ cmdLine_serial.serial().printf("\r\n cmdLine_serial.serial().printf test\r\n");
whismanoid 22:a14c19b97d0b 3650 cmdLine_serial.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 22:a14c19b97d0b 3651 cmdLine_serial.diagnostic_led_EOF = diagnostic_led_EOF;
whismanoid 22:a14c19b97d0b 3652 /// CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21);
whismanoid 22:a14c19b97d0b 3653 cmdLine_serial.on_immediate_0x21 = on_immediate_0x21;
whismanoid 22:a14c19b97d0b 3654 cmdLine_serial.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 22:a14c19b97d0b 3655 cmdLine_serial.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 22:a14c19b97d0b 3656 # if HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3657 cmdLine_DAPLINKserial.clear();
whismanoid 22:a14c19b97d0b 3658 //~ cmdLine_DAPLINKserial.serial().printf("\r\n cmdLine_DAPLINKserial.serial().printf test\r\n");
whismanoid 22:a14c19b97d0b 3659 cmdLine_DAPLINKserial.onEOLcommandParser = main_menu_onEOLcommandParser;
whismanoid 22:a14c19b97d0b 3660 /// @todo CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21);
whismanoid 22:a14c19b97d0b 3661 cmdLine_DAPLINKserial.on_immediate_0x21 = on_immediate_0x21;
whismanoid 22:a14c19b97d0b 3662 cmdLine_DAPLINKserial.on_immediate_0x7b = on_immediate_0x7b;
whismanoid 22:a14c19b97d0b 3663 cmdLine_DAPLINKserial.on_immediate_0x7d = on_immediate_0x7d;
whismanoid 22:a14c19b97d0b 3664 # endif
whismanoid 22:a14c19b97d0b 3665
whismanoid 22:a14c19b97d0b 3666
whismanoid 22:a14c19b97d0b 3667 //print_banner();
whismanoid 22:a14c19b97d0b 3668
whismanoid 23:abd02fed1ae4 3669 #if HAS_I2C
whismanoid 23:abd02fed1ae4 3670 // i2c init
whismanoid 23:abd02fed1ae4 3671 // declare in narrower scope: MAX32625MBED I2C i2cMaster(...)
whismanoid 23:abd02fed1ae4 3672 // i2cMaster.frequency(g_I2C_SCL_Hz);
whismanoid 23:abd02fed1ae4 3673 #else
whismanoid 23:abd02fed1ae4 3674 // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5
whismanoid 23:abd02fed1ae4 3675 #if HAS_digitalInOut14
whismanoid 23:abd02fed1ae4 3676 // DigitalInOut digitalInOut14(P1_6, PIN_INPUT, PullUp, 1); // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector)
whismanoid 23:abd02fed1ae4 3677 digitalInOut14.input();
whismanoid 23:abd02fed1ae4 3678 #endif
whismanoid 23:abd02fed1ae4 3679 #if HAS_digitalInOut15
whismanoid 23:abd02fed1ae4 3680 // DigitalInOut digitalInOut15(P1_7, PIN_INPUT, PullUp, 1); // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector)
whismanoid 23:abd02fed1ae4 3681 digitalInOut15.input();
whismanoid 23:abd02fed1ae4 3682 #endif
whismanoid 23:abd02fed1ae4 3683 #if HAS_digitalInOut16
whismanoid 23:abd02fed1ae4 3684 // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain
whismanoid 23:abd02fed1ae4 3685 // PullUp-->3.4V, PullDown-->1.7V, PullNone-->3.5V, OpenDrain-->0.00V
whismanoid 23:abd02fed1ae4 3686 //DigitalInOut digitalInOut16(P3_4, PIN_INPUT, OpenDrain, 0); // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector)
whismanoid 23:abd02fed1ae4 3687 digitalInOut16.input();
whismanoid 23:abd02fed1ae4 3688 #endif
whismanoid 23:abd02fed1ae4 3689 #if HAS_digitalInOut17
whismanoid 23:abd02fed1ae4 3690 //DigitalInOut digitalInOut17(P3_5, PIN_INPUT, OpenDrain, 0); // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector)
whismanoid 23:abd02fed1ae4 3691 digitalInOut17.input();
whismanoid 23:abd02fed1ae4 3692 #endif
whismanoid 23:abd02fed1ae4 3693 #endif // HAS_I2C
whismanoid 22:a14c19b97d0b 3694
whismanoid 22:a14c19b97d0b 3695
whismanoid 22:a14c19b97d0b 3696 #if USE_LEDS
whismanoid 22:a14c19b97d0b 3697 #if defined(TARGET_MAX32630)
whismanoid 22:a14c19b97d0b 3698 led1 = LED_ON; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led RED
whismanoid 22:a14c19b97d0b 3699 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3700 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 22:a14c19b97d0b 3701 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3702 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 22:a14c19b97d0b 3703 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3704 led1 = LED_ON; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE
whismanoid 22:a14c19b97d0b 3705 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3706 led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN
whismanoid 22:a14c19b97d0b 3707 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3708 led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA
whismanoid 22:a14c19b97d0b 3709 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3710 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 22:a14c19b97d0b 3711 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3712 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led BLACK
whismanoid 22:a14c19b97d0b 3713 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3714 #elif defined(TARGET_MAX32625MBED)
whismanoid 22:a14c19b97d0b 3715 led1 = LED_ON; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led RED
whismanoid 22:a14c19b97d0b 3716 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3717 led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN
whismanoid 22:a14c19b97d0b 3718 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3719 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE
whismanoid 22:a14c19b97d0b 3720 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3721 led1 = LED_ON; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE
whismanoid 22:a14c19b97d0b 3722 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3723 led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN
whismanoid 22:a14c19b97d0b 3724 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3725 led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA
whismanoid 22:a14c19b97d0b 3726 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3727 led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW
whismanoid 22:a14c19b97d0b 3728 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3729 led1 = LED_OFF; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led BLACK
whismanoid 22:a14c19b97d0b 3730 ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125);
whismanoid 22:a14c19b97d0b 3731 #else // not defined(TARGET_LPC1768 etc.)
whismanoid 22:a14c19b97d0b 3732 led1 = LED_ON;
whismanoid 22:a14c19b97d0b 3733 led2 = LED_OFF;
whismanoid 22:a14c19b97d0b 3734 led3 = LED_OFF;
whismanoid 22:a14c19b97d0b 3735 led4 = LED_OFF;
whismanoid 22:a14c19b97d0b 3736 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 22:a14c19b97d0b 3737 //led1 = LED_ON;
whismanoid 22:a14c19b97d0b 3738 led2 = LED_ON;
whismanoid 22:a14c19b97d0b 3739 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 22:a14c19b97d0b 3740 led1 = LED_OFF;
whismanoid 22:a14c19b97d0b 3741 //led2 = LED_ON;
whismanoid 22:a14c19b97d0b 3742 led3 = LED_ON;
whismanoid 22:a14c19b97d0b 3743 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 22:a14c19b97d0b 3744 led2 = LED_OFF;
whismanoid 22:a14c19b97d0b 3745 //led3 = LED_ON;
whismanoid 22:a14c19b97d0b 3746 led4 = LED_ON;
whismanoid 22:a14c19b97d0b 3747 ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75);
whismanoid 22:a14c19b97d0b 3748 led3 = LED_OFF;
whismanoid 22:a14c19b97d0b 3749 led4 = LED_ON;
whismanoid 22:a14c19b97d0b 3750 //
whismanoid 22:a14c19b97d0b 3751 #endif // target definition
whismanoid 22:a14c19b97d0b 3752 #endif
whismanoid 22:a14c19b97d0b 3753
whismanoid 22:a14c19b97d0b 3754 // cmd_TE();
whismanoid 22:a14c19b97d0b 3755
whismanoid 22:a14c19b97d0b 3756 // #if USE_LEDS
whismanoid 22:a14c19b97d0b 3757 // rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE
whismanoid 22:a14c19b97d0b 3758 // #endif // USE_LEDS
whismanoid 23:abd02fed1ae4 3759 if (led1.is_connected()) {
whismanoid 23:abd02fed1ae4 3760 led1 = LED_ON;
whismanoid 23:abd02fed1ae4 3761 }
whismanoid 23:abd02fed1ae4 3762 if (led2.is_connected()) {
whismanoid 23:abd02fed1ae4 3763 led2 = LED_ON;
whismanoid 23:abd02fed1ae4 3764 }
whismanoid 23:abd02fed1ae4 3765 if (led3.is_connected()) {
whismanoid 23:abd02fed1ae4 3766 led3 = LED_ON;
whismanoid 23:abd02fed1ae4 3767 }
whismanoid 22:a14c19b97d0b 3768
whismanoid 22:a14c19b97d0b 3769 InitializeConfiguration();
whismanoid 22:a14c19b97d0b 3770 // example code: serial port banner message
whismanoid 22:a14c19b97d0b 3771 #if defined(TARGET_MAX32625MBED)
whismanoid 22:a14c19b97d0b 3772 serial.printf("MAX32625MBED ");
whismanoid 22:a14c19b97d0b 3773 #elif defined(TARGET_MAX32600MBED)
whismanoid 22:a14c19b97d0b 3774 serial.printf("MAX32600MBED ");
whismanoid 22:a14c19b97d0b 3775 #elif defined(TARGET_NUCLEO_F446RE)
whismanoid 22:a14c19b97d0b 3776 serial.printf("NUCLEO_F446RE ");
whismanoid 22:a14c19b97d0b 3777 #endif
whismanoid 22:a14c19b97d0b 3778 serial.printf("MAX5171BOB\r\n");
whismanoid 22:a14c19b97d0b 3779
whismanoid 22:a14c19b97d0b 3780
whismanoid 22:a14c19b97d0b 3781 while (1) {
whismanoid 22:a14c19b97d0b 3782 #if HAS_BUTTON1_DEMO_INTERRUPT_POLLING
whismanoid 22:a14c19b97d0b 3783 // avoid runtime error on button1 press [mbed-os-5.11]
whismanoid 22:a14c19b97d0b 3784 // instead of using InterruptIn, use DigitalIn and poll in main while(1)
whismanoid 22:a14c19b97d0b 3785 # if HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 3786 static int button1_value_prev = 1;
whismanoid 22:a14c19b97d0b 3787 static int button1_value_now = 1;
whismanoid 22:a14c19b97d0b 3788 button1_value_prev = button1_value_now;
whismanoid 22:a14c19b97d0b 3789 button1_value_now = button1.read();
whismanoid 22:a14c19b97d0b 3790 if ((button1_value_prev - button1_value_now) == 1)
whismanoid 22:a14c19b97d0b 3791 {
whismanoid 22:a14c19b97d0b 3792 // on button1 falling edge (button1 press)
whismanoid 22:a14c19b97d0b 3793 onButton1FallingEdge();
whismanoid 22:a14c19b97d0b 3794 }
whismanoid 22:a14c19b97d0b 3795 # endif // HAS_BUTTON1_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 3796 # if HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 3797 static int button2_value_prev = 1;
whismanoid 22:a14c19b97d0b 3798 static int button2_value_now = 1;
whismanoid 22:a14c19b97d0b 3799 button2_value_prev = button2_value_now;
whismanoid 22:a14c19b97d0b 3800 button2_value_now = button2.read();
whismanoid 22:a14c19b97d0b 3801 if ((button2_value_prev - button2_value_now) == 1)
whismanoid 22:a14c19b97d0b 3802 {
whismanoid 22:a14c19b97d0b 3803 // on button2 falling edge (button2 press)
whismanoid 22:a14c19b97d0b 3804 onButton2FallingEdge();
whismanoid 22:a14c19b97d0b 3805 }
whismanoid 22:a14c19b97d0b 3806 # endif // HAS_BUTTON2_DEMO_INTERRUPT
whismanoid 22:a14c19b97d0b 3807 #endif
whismanoid 22:a14c19b97d0b 3808 # if HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3809 if (DAPLINKserial.readable()) {
whismanoid 22:a14c19b97d0b 3810 cmdLine_DAPLINKserial.append(DAPLINKserial.getc());
whismanoid 22:a14c19b97d0b 3811 }
whismanoid 22:a14c19b97d0b 3812 # endif // HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3813 if (serial.readable()) {
whismanoid 22:a14c19b97d0b 3814 int c = serial.getc();
whismanoid 22:a14c19b97d0b 3815 cmdLine_serial.append(c);
whismanoid 22:a14c19b97d0b 3816 #if IGNORE_AT_COMMANDS
whismanoid 22:a14c19b97d0b 3817 # if HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3818 cmdLine_DAPLINKserial.serial().printf("%c", c);
whismanoid 22:a14c19b97d0b 3819 # endif // HAS_DAPLINK_SERIAL
whismanoid 22:a14c19b97d0b 3820 #endif // IGNORE_AT_COMMANDS
whismanoid 22:a14c19b97d0b 3821 //
whismanoid 22:a14c19b97d0b 3822 }
whismanoid 22:a14c19b97d0b 3823 } // while(1)
whismanoid 22:a14c19b97d0b 3824 }