Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.
Dependencies: MaximTinyTester CmdLine MAX541 USBDevice
main.cpp@2:b3a8a0ca0a94, 2019-06-10 (annotated)
- Committer:
- whismanoid
- Date:
- Mon Jun 10 15:33:06 2019 +0000
- Revision:
- 2:b3a8a0ca0a94
- Parent:
- 1:40369075c365
- Child:
- 3:8913cb4a8b9f
replace C++11 lambda expressions with named functions
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
whismanoid | 0:3edb3708c8c5 | 1 | /******************************************************************************* |
whismanoid | 0:3edb3708c8c5 | 2 | * Copyright (C) 2019 Maxim Integrated Products, Inc., All Rights Reserved. |
whismanoid | 0:3edb3708c8c5 | 3 | * |
whismanoid | 0:3edb3708c8c5 | 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
whismanoid | 0:3edb3708c8c5 | 5 | * copy of this software and associated documentation files (the "Software"), |
whismanoid | 0:3edb3708c8c5 | 6 | * to deal in the Software without restriction, including without limitation |
whismanoid | 0:3edb3708c8c5 | 7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
whismanoid | 0:3edb3708c8c5 | 8 | * and/or sell copies of the Software, and to permit persons to whom the |
whismanoid | 0:3edb3708c8c5 | 9 | * Software is furnished to do so, subject to the following conditions: |
whismanoid | 0:3edb3708c8c5 | 10 | * |
whismanoid | 0:3edb3708c8c5 | 11 | * The above copyright notice and this permission notice shall be included |
whismanoid | 0:3edb3708c8c5 | 12 | * in all copies or substantial portions of the Software. |
whismanoid | 0:3edb3708c8c5 | 13 | * |
whismanoid | 0:3edb3708c8c5 | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
whismanoid | 0:3edb3708c8c5 | 15 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
whismanoid | 0:3edb3708c8c5 | 16 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
whismanoid | 0:3edb3708c8c5 | 17 | * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES |
whismanoid | 0:3edb3708c8c5 | 18 | * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
whismanoid | 0:3edb3708c8c5 | 19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
whismanoid | 0:3edb3708c8c5 | 20 | * OTHER DEALINGS IN THE SOFTWARE. |
whismanoid | 0:3edb3708c8c5 | 21 | * |
whismanoid | 0:3edb3708c8c5 | 22 | * Except as contained in this notice, the name of Maxim Integrated |
whismanoid | 0:3edb3708c8c5 | 23 | * Products, Inc. shall not be used except as stated in the Maxim Integrated |
whismanoid | 0:3edb3708c8c5 | 24 | * Products, Inc. Branding Policy. |
whismanoid | 0:3edb3708c8c5 | 25 | * |
whismanoid | 0:3edb3708c8c5 | 26 | * The mere transfer of this software does not imply any licenses |
whismanoid | 0:3edb3708c8c5 | 27 | * of trade secrets, proprietary technology, copyrights, patents, |
whismanoid | 0:3edb3708c8c5 | 28 | * trademarks, maskwork rights, or any other form of intellectual |
whismanoid | 0:3edb3708c8c5 | 29 | * property whatsoever. Maxim Integrated Products, Inc. retains all |
whismanoid | 0:3edb3708c8c5 | 30 | * ownership rights. |
whismanoid | 0:3edb3708c8c5 | 31 | ******************************************************************************* |
whismanoid | 0:3edb3708c8c5 | 32 | */ |
whismanoid | 0:3edb3708c8c5 | 33 | |
whismanoid | 0:3edb3708c8c5 | 34 | #include "mbed.h" |
whismanoid | 0:3edb3708c8c5 | 35 | #include "USBSerial.h" |
whismanoid | 0:3edb3708c8c5 | 36 | |
whismanoid | 0:3edb3708c8c5 | 37 | #include "CmdLine.h" |
whismanoid | 0:3edb3708c8c5 | 38 | #include "MaximTinyTester.h" |
whismanoid | 0:3edb3708c8c5 | 39 | |
whismanoid | 0:3edb3708c8c5 | 40 | #include "MAX5715.h" |
whismanoid | 0:3edb3708c8c5 | 41 | |
whismanoid | 0:3edb3708c8c5 | 42 | // TODO: trim cruft |
whismanoid | 0:3edb3708c8c5 | 43 | |
whismanoid | 0:3edb3708c8c5 | 44 | |
whismanoid | 0:3edb3708c8c5 | 45 | |
whismanoid | 0:3edb3708c8c5 | 46 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 47 | // mbed-os compatability tests... |
whismanoid | 0:3edb3708c8c5 | 48 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 49 | // mbed-os-5.12: buildable; warnings |
whismanoid | 0:3edb3708c8c5 | 50 | // |
whismanoid | 0:3edb3708c8c5 | 51 | // Not supported by MAX32625MBED... better stick with mbed-os-5.11 for now. |
whismanoid | 0:3edb3708c8c5 | 52 | // Watch out for conflict with USBDevice library. |
whismanoid | 0:3edb3708c8c5 | 53 | // Now that USBSerial is part of the official mbed-os-5.12 API, |
whismanoid | 0:3edb3708c8c5 | 54 | // remove the external USBDevice library if present: |
whismanoid | 0:3edb3708c8c5 | 55 | // mbed remove USBDevice |
whismanoid | 0:3edb3708c8c5 | 56 | // |
whismanoid | 0:3edb3708c8c5 | 57 | // cd mbed-os ; mbed update mbed-os-5.12 ; cd ..; mbed remove USBDevice |
whismanoid | 0:3edb3708c8c5 | 58 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 59 | // mbed-os-5.11: buildable; warnings |
whismanoid | 0:3edb3708c8c5 | 60 | // |
whismanoid | 0:3edb3708c8c5 | 61 | // fixed: format '%d' expects argument of type 'int', but argument _ has type 'uint32_t {aka long unsigned int}' [-Wformat=] |
whismanoid | 0:3edb3708c8c5 | 62 | // fixed: '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 | 0:3edb3708c8c5 | 63 | // |
whismanoid | 0:3edb3708c8c5 | 64 | // prior to mbed-os-5.12, USBSerial required an external library: |
whismanoid | 0:3edb3708c8c5 | 65 | // mbed add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/ |
whismanoid | 0:3edb3708c8c5 | 66 | // |
whismanoid | 0:3edb3708c8c5 | 67 | // cd mbed-os ; mbed update mbed-os-5.11 |
whismanoid | 0:3edb3708c8c5 | 68 | // cd .. ; mbed sync |
whismanoid | 0:3edb3708c8c5 | 69 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 70 | // mbed-os-5.10 buildable; warning about wait function |
whismanoid | 0:3edb3708c8c5 | 71 | // '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 | 0:3edb3708c8c5 | 72 | // |
whismanoid | 0:3edb3708c8c5 | 73 | // prior to mbed-os-5.12, USBSerial required an external library: |
whismanoid | 0:3edb3708c8c5 | 74 | // mbed add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/ |
whismanoid | 0:3edb3708c8c5 | 75 | // |
whismanoid | 0:3edb3708c8c5 | 76 | // cd mbed-os ; mbed update mbed-os-5.10 |
whismanoid | 0:3edb3708c8c5 | 77 | // cd .. ; mbed sync |
whismanoid | 0:3edb3708c8c5 | 78 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 79 | // mbed-os-5.9 buildable |
whismanoid | 0:3edb3708c8c5 | 80 | // |
whismanoid | 0:3edb3708c8c5 | 81 | // prior to mbed-os-5.12, USBSerial required an external library: |
whismanoid | 0:3edb3708c8c5 | 82 | // mbed add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/ |
whismanoid | 0:3edb3708c8c5 | 83 | // |
whismanoid | 0:3edb3708c8c5 | 84 | // cd mbed-os ; mbed update mbed-os-5.9 |
whismanoid | 0:3edb3708c8c5 | 85 | // cd .. ; mbed sync |
whismanoid | 0:3edb3708c8c5 | 86 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 87 | // mbed-os-5.8 buildable |
whismanoid | 0:3edb3708c8c5 | 88 | // |
whismanoid | 0:3edb3708c8c5 | 89 | // prior to mbed-os-5.12, USBSerial required an external library: |
whismanoid | 0:3edb3708c8c5 | 90 | // mbed add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/ |
whismanoid | 0:3edb3708c8c5 | 91 | // |
whismanoid | 0:3edb3708c8c5 | 92 | // cd mbed-os ; mbed update mbed-os-5.8 |
whismanoid | 0:3edb3708c8c5 | 93 | // cd .. ; mbed sync |
whismanoid | 0:3edb3708c8c5 | 94 | //--------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 95 | // mbed-os-5.7 buildable |
whismanoid | 0:3edb3708c8c5 | 96 | // |
whismanoid | 0:3edb3708c8c5 | 97 | // prior to mbed-os-5.12, USBSerial required an external library: |
whismanoid | 0:3edb3708c8c5 | 98 | // mbed add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/ |
whismanoid | 0:3edb3708c8c5 | 99 | // |
whismanoid | 0:3edb3708c8c5 | 100 | // cd mbed-os ; mbed update mbed-os-5.7 |
whismanoid | 0:3edb3708c8c5 | 101 | // cd .. ; mbed sync |
whismanoid | 0:3edb3708c8c5 | 102 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 103 | // mbed-os-5.6 pass |
whismanoid | 0:3edb3708c8c5 | 104 | // [Warning] USBSerial.h@59,203: 'mbed::FunctionPointerArg1<R, void>::FunctionPointerArg1(R (*)()) [with R = void]' is deprecated: FunctionPointer has been replaced by Callback<void()> [since mbed-os-5.1] [-Wdeprecated-declarations] |
whismanoid | 0:3edb3708c8c5 | 105 | // [Warning] USBSerial.h@134,27: 'void mbed::Callback<R()>::attach(R (*)()) [with R = void]' is deprecated: Replaced by simple assignment 'Callback cb = func [since mbed-os-5.4] [-Wdeprecated-declarations] |
whismanoid | 0:3edb3708c8c5 | 106 | // |
whismanoid | 0:3edb3708c8c5 | 107 | // prior to mbed-os-5.12, USBSerial required an external library: |
whismanoid | 0:3edb3708c8c5 | 108 | // mbed add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/ |
whismanoid | 0:3edb3708c8c5 | 109 | // |
whismanoid | 0:3edb3708c8c5 | 110 | // cd mbed-os ; mbed update mbed-os-5.6 |
whismanoid | 0:3edb3708c8c5 | 111 | // cd .. ; mbed sync |
whismanoid | 0:3edb3708c8c5 | 112 | //---------------------------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 113 | |
whismanoid | 0:3edb3708c8c5 | 114 | // Test fixture and application menu for breakout boards: |
whismanoid | 0:3edb3708c8c5 | 115 | // - MAX5715BOB |
whismanoid | 0:3edb3708c8c5 | 116 | // - MAX11131BOB |
whismanoid | 0:3edb3708c8c5 | 117 | // - MAX5171BOB |
whismanoid | 0:3edb3708c8c5 | 118 | // Platforms: |
whismanoid | 0:3edb3708c8c5 | 119 | // - MAX32625MBED |
whismanoid | 0:3edb3708c8c5 | 120 | // - NUCLEO_F446RE |
whismanoid | 0:3edb3708c8c5 | 121 | // - NUCLEO_F401RE |
whismanoid | 0:3edb3708c8c5 | 122 | |
whismanoid | 0:3edb3708c8c5 | 123 | #include "mbed.h" |
whismanoid | 0:3edb3708c8c5 | 124 | #if defined(TARGET) |
whismanoid | 0:3edb3708c8c5 | 125 | // TARGET_NAME macros from targets/TARGET_Maxim/TARGET_MAX32625/device/mxc_device.h |
whismanoid | 0:3edb3708c8c5 | 126 | // Create a string definition for the TARGET |
whismanoid | 0:3edb3708c8c5 | 127 | #define STRING_ARG(arg) #arg |
whismanoid | 0:3edb3708c8c5 | 128 | #define STRING_NAME(name) STRING_ARG(name) |
whismanoid | 0:3edb3708c8c5 | 129 | #define TARGET_NAME STRING_NAME(TARGET) |
whismanoid | 0:3edb3708c8c5 | 130 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 131 | #define TARGET_NAME "LPC1768" |
whismanoid | 0:3edb3708c8c5 | 132 | #elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 133 | #define TARGET_NAME "NUCLEO_F446RE" |
whismanoid | 0:3edb3708c8c5 | 134 | #elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 135 | #define TARGET_NAME "NUCLEO_F401RE" |
whismanoid | 0:3edb3708c8c5 | 136 | #else |
whismanoid | 0:3edb3708c8c5 | 137 | #error TARGET NOT DEFINED |
whismanoid | 0:3edb3708c8c5 | 138 | #endif |
whismanoid | 0:3edb3708c8c5 | 139 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 140 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 141 | // TARGET=MAX32630FTHR ARM Cortex-M4F 96MHz 2048kB Flash 512kB SRAM |
whismanoid | 0:3edb3708c8c5 | 142 | // +-------------[microUSB]-------------+ |
whismanoid | 0:3edb3708c8c5 | 143 | // | J1 MAX32630FTHR J2 | |
whismanoid | 0:3edb3708c8c5 | 144 | // ______ | [ ] RST GND [ ] | |
whismanoid | 0:3edb3708c8c5 | 145 | // ______ | [ ] 3V3 BAT+[ ] | |
whismanoid | 0:3edb3708c8c5 | 146 | // ______ | [ ] 1V8 reset SW1 | |
whismanoid | 0:3edb3708c8c5 | 147 | // ______ | [ ] GND J4 J3 | |
whismanoid | 0:3edb3708c8c5 | 148 | // analogIn0/4 | [a] AIN_0 1.2Vfs (bat) SYS [ ] | switched BAT+ |
whismanoid | 0:3edb3708c8c5 | 149 | // analogIn1/5 | [a] AIN_1 1.2Vfs PWR [ ] | external pwr btn |
whismanoid | 0:3edb3708c8c5 | 150 | // analogIn2 | [a] AIN_2 1.2Vfs +5V VBUS [ ] | USB +5V power |
whismanoid | 0:3edb3708c8c5 | 151 | // analogIn3 | [a] AIN_3 1.2Vfs 1-WIRE P4_0 [d] | dig9 |
whismanoid | 0:3edb3708c8c5 | 152 | // (I2C2.SDA) | [d] P5_7 SDA2 SRN P5_6 [d] | dig8 |
whismanoid | 0:3edb3708c8c5 | 153 | // (I2C2.SCL) | [d] P6_0 SCL2 SDIO3 P5_5 [d] | dig7 |
whismanoid | 0:3edb3708c8c5 | 154 | // (SPI.SCLK) | [s] P5_0 SCLK SDIO2 P5_4 [d] | dig6 |
whismanoid | 0:3edb3708c8c5 | 155 | // (SPI.MOSI) | [s] P5_1 MOSI SSEL P5_3 [d] | dig5 |
whismanoid | 0:3edb3708c8c5 | 156 | // (SPI.MISO) | [s] P5_2 MISO RTS P3_3 [d] | dig4 |
whismanoid | 0:3edb3708c8c5 | 157 | // (SPI.CS ) | [s] P3_0 RX CTS P3_2 [d] | dig3 |
whismanoid | 0:3edb3708c8c5 | 158 | // dig0 | [d] P3_1 TX SCL P3_5 [d] | dig2 |
whismanoid | 0:3edb3708c8c5 | 159 | // ______ | [ ] GND SDA P3_4 [d] | dig1 |
whismanoid | 0:3edb3708c8c5 | 160 | // | | |
whismanoid | 0:3edb3708c8c5 | 161 | // | XIP Flash MAX14690N | |
whismanoid | 0:3edb3708c8c5 | 162 | // | XIP_SCLK P1_0 SDA2 P5_7 | |
whismanoid | 0:3edb3708c8c5 | 163 | // | XIP_MOSI P1_1 SCL2 P6_0 | |
whismanoid | 0:3edb3708c8c5 | 164 | // | XIP_MISO P1_2 PMIC_INIT P3_7 | |
whismanoid | 0:3edb3708c8c5 | 165 | // | XIP_SSEL P1_3 MPC P2_7 | |
whismanoid | 0:3edb3708c8c5 | 166 | // | XIP_DIO2 P1_4 MON AIN_0 | |
whismanoid | 0:3edb3708c8c5 | 167 | // | XIP_DIO3 P1_5 | |
whismanoid | 0:3edb3708c8c5 | 168 | // | | |
whismanoid | 0:3edb3708c8c5 | 169 | // | PAN1326B MicroSD LED | |
whismanoid | 0:3edb3708c8c5 | 170 | // | BT_RX P0_0 SD_SCLK P0_4 r P2_4 | |
whismanoid | 0:3edb3708c8c5 | 171 | // | BT_TX P0_1 SD_MOSI P0_5 g P2_5 | |
whismanoid | 0:3edb3708c8c5 | 172 | // | BT_CTS P0_2 SD_MISO P0_6 b P2_6 | |
whismanoid | 0:3edb3708c8c5 | 173 | // | BT_RTS P0_3 SD_SSEL P0_7 | |
whismanoid | 0:3edb3708c8c5 | 174 | // | BT_RST P1_6 DETECT P2_2 | |
whismanoid | 0:3edb3708c8c5 | 175 | // | BT_CLK P1_7 SW2 P2_3 | |
whismanoid | 0:3edb3708c8c5 | 176 | // +------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 177 | // 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 | 0:3edb3708c8c5 | 178 | // 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 | 0:3edb3708c8c5 | 179 | // AIN_0 = AIN0 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 180 | // AIN_1 = AIN1 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 181 | // AIN_2 = AIN2 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 182 | // AIN_3 = AIN3 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 183 | // AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 184 | // AIN_5 = AIN1 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 185 | // AIN_6 = VDDB / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 186 | // AIN_7 = VDD18 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 187 | // AIN_8 = VDD12 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 188 | // AIN_9 = VRTC / 2.0 fullscale is 2.4V |
whismanoid | 0:3edb3708c8c5 | 189 | // AIN_10 = x undefined? |
whismanoid | 0:3edb3708c8c5 | 190 | // AIN_11 = VDDIO / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 191 | // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 192 | // |
whismanoid | 0:3edb3708c8c5 | 193 | #include "max32630fthr.h" |
whismanoid | 0:3edb3708c8c5 | 194 | MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); |
whismanoid | 0:3edb3708c8c5 | 195 | #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 196 | // MAX32630FTHR board supports only internal VREF = 1.200V at bypass capacitor C15 |
whismanoid | 0:3edb3708c8c5 | 197 | const float ADC_FULL_SCALE_VOLTAGE = 1.200; |
whismanoid | 0:3edb3708c8c5 | 198 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 199 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 200 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 201 | // TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM |
whismanoid | 0:3edb3708c8c5 | 202 | // +-------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 203 | // | MAX32625MBED Arduino UNO header | |
whismanoid | 0:3edb3708c8c5 | 204 | // | | |
whismanoid | 0:3edb3708c8c5 | 205 | // | A5/SCL[ ] | P1_7 dig15 |
whismanoid | 0:3edb3708c8c5 | 206 | // | A4/SDA[ ] | P1_6 dig14 |
whismanoid | 0:3edb3708c8c5 | 207 | // | AREF=N/C[ ] | |
whismanoid | 0:3edb3708c8c5 | 208 | // | GND[ ] | |
whismanoid | 0:3edb3708c8c5 | 209 | // | [ ]N/C SCK/13[ ] | P1_0 dig13 |
whismanoid | 0:3edb3708c8c5 | 210 | // | [ ]IOREF=3V3 MISO/12[ ] | P1_2 dig12 |
whismanoid | 0:3edb3708c8c5 | 211 | // | [ ]RST MOSI/11[ ]~| P1_1 dig11 |
whismanoid | 0:3edb3708c8c5 | 212 | // | [ ]3V3 CS/10[ ]~| P1_3 dig10 |
whismanoid | 0:3edb3708c8c5 | 213 | // | [ ]5V0 9[ ]~| P1_5 dig9 |
whismanoid | 0:3edb3708c8c5 | 214 | // | [ ]GND 8[ ] | P1_4 dig8 |
whismanoid | 0:3edb3708c8c5 | 215 | // | [ ]GND | |
whismanoid | 0:3edb3708c8c5 | 216 | // | [ ]Vin 7[ ] | P0_7 dig7 |
whismanoid | 0:3edb3708c8c5 | 217 | // | 6[ ]~| P0_6 dig6 |
whismanoid | 0:3edb3708c8c5 | 218 | // AIN_0 | [ ]A0 5[ ]~| P0_5 dig5 |
whismanoid | 0:3edb3708c8c5 | 219 | // AIN_1 | [ ]A1 4[ ] | P0_4 dig4 |
whismanoid | 0:3edb3708c8c5 | 220 | // AIN_2 | [ ]A2 INT1/3[ ]~| P0_3 dig3 |
whismanoid | 0:3edb3708c8c5 | 221 | // AIN_3 | [ ]A3 INT0/2[ ] | P0_2 dig2 |
whismanoid | 0:3edb3708c8c5 | 222 | // dig16 P3_4 | [ ]A4/SDA RST SCK MISO TX>1[ ] | P0_1 dig1 |
whismanoid | 0:3edb3708c8c5 | 223 | // dig17 P3_5 | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | P0_0 dig0 |
whismanoid | 0:3edb3708c8c5 | 224 | // | [ ] [ ] [ ] | |
whismanoid | 0:3edb3708c8c5 | 225 | // | UNO_R3 GND MOSI 5V ____________/ |
whismanoid | 0:3edb3708c8c5 | 226 | // \_______________________/ |
whismanoid | 0:3edb3708c8c5 | 227 | // |
whismanoid | 0:3edb3708c8c5 | 228 | // +------------------------+ |
whismanoid | 0:3edb3708c8c5 | 229 | // | | |
whismanoid | 0:3edb3708c8c5 | 230 | // | MicroSD LED | |
whismanoid | 0:3edb3708c8c5 | 231 | // | SD_SCLK P2_4 r P3_0 | |
whismanoid | 0:3edb3708c8c5 | 232 | // | SD_MOSI P2_5 g P3_1 | |
whismanoid | 0:3edb3708c8c5 | 233 | // | SD_MISO P2_6 b P3_2 | |
whismanoid | 0:3edb3708c8c5 | 234 | // | SD_SSEL P2_7 y P3_3 | |
whismanoid | 0:3edb3708c8c5 | 235 | // | | |
whismanoid | 0:3edb3708c8c5 | 236 | // | DAPLINK BUTTONS | |
whismanoid | 0:3edb3708c8c5 | 237 | // | TX P2_1 SW3 P2_3 | |
whismanoid | 0:3edb3708c8c5 | 238 | // | RX P2_0 SW2 P2_2 | |
whismanoid | 0:3edb3708c8c5 | 239 | // +------------------------+ |
whismanoid | 0:3edb3708c8c5 | 240 | // |
whismanoid | 0:3edb3708c8c5 | 241 | // AIN_0 = AIN0 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 242 | // AIN_1 = AIN1 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 243 | // AIN_2 = AIN2 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 244 | // AIN_3 = AIN3 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 245 | // AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 246 | // AIN_5 = AIN1 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 247 | // AIN_6 = VDDB / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 248 | // AIN_7 = VDD18 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 249 | // AIN_8 = VDD12 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 250 | // AIN_9 = VRTC / 2.0 fullscale is 2.4V |
whismanoid | 0:3edb3708c8c5 | 251 | // AIN_10 = x undefined? |
whismanoid | 0:3edb3708c8c5 | 252 | // AIN_11 = VDDIO / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 253 | // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 254 | // |
whismanoid | 0:3edb3708c8c5 | 255 | //#include "max32625mbed.h" // ? |
whismanoid | 0:3edb3708c8c5 | 256 | //MAX32625MBED mbed(MAX32625MBED::VIO_3V3); // ? |
whismanoid | 0:3edb3708c8c5 | 257 | #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 258 | // MAX32630FTHR board supports only internal VREF = 1.200V at bypass capacitor C15 |
whismanoid | 0:3edb3708c8c5 | 259 | const float ADC_FULL_SCALE_VOLTAGE = 1.200; // TODO: ADC_FULL_SCALE_VOLTAGE Pico? |
whismanoid | 0:3edb3708c8c5 | 260 | // Arduino connector |
whismanoid | 0:3edb3708c8c5 | 261 | #ifndef A0 |
whismanoid | 0:3edb3708c8c5 | 262 | #define A0 AIN_0 |
whismanoid | 0:3edb3708c8c5 | 263 | #endif |
whismanoid | 0:3edb3708c8c5 | 264 | #ifndef A1 |
whismanoid | 0:3edb3708c8c5 | 265 | #define A1 AIN_1 |
whismanoid | 0:3edb3708c8c5 | 266 | #endif |
whismanoid | 0:3edb3708c8c5 | 267 | #ifndef A2 |
whismanoid | 0:3edb3708c8c5 | 268 | #define A2 AIN_2 |
whismanoid | 0:3edb3708c8c5 | 269 | #endif |
whismanoid | 0:3edb3708c8c5 | 270 | #ifndef A3 |
whismanoid | 0:3edb3708c8c5 | 271 | #define A3 AIN_3 |
whismanoid | 0:3edb3708c8c5 | 272 | #endif |
whismanoid | 0:3edb3708c8c5 | 273 | #ifndef D0 |
whismanoid | 0:3edb3708c8c5 | 274 | #define D0 P0_0 |
whismanoid | 0:3edb3708c8c5 | 275 | #endif |
whismanoid | 0:3edb3708c8c5 | 276 | #ifndef D1 |
whismanoid | 0:3edb3708c8c5 | 277 | #define D1 P0_1 |
whismanoid | 0:3edb3708c8c5 | 278 | #endif |
whismanoid | 0:3edb3708c8c5 | 279 | #ifndef D2 |
whismanoid | 0:3edb3708c8c5 | 280 | #define D2 P0_2 |
whismanoid | 0:3edb3708c8c5 | 281 | #endif |
whismanoid | 0:3edb3708c8c5 | 282 | #ifndef D3 |
whismanoid | 0:3edb3708c8c5 | 283 | #define D3 P0_3 |
whismanoid | 0:3edb3708c8c5 | 284 | #endif |
whismanoid | 0:3edb3708c8c5 | 285 | #ifndef D4 |
whismanoid | 0:3edb3708c8c5 | 286 | #define D4 P0_4 |
whismanoid | 0:3edb3708c8c5 | 287 | #endif |
whismanoid | 0:3edb3708c8c5 | 288 | #ifndef D5 |
whismanoid | 0:3edb3708c8c5 | 289 | #define D5 P0_5 |
whismanoid | 0:3edb3708c8c5 | 290 | #endif |
whismanoid | 0:3edb3708c8c5 | 291 | #ifndef D6 |
whismanoid | 0:3edb3708c8c5 | 292 | #define D6 P0_6 |
whismanoid | 0:3edb3708c8c5 | 293 | #endif |
whismanoid | 0:3edb3708c8c5 | 294 | #ifndef D7 |
whismanoid | 0:3edb3708c8c5 | 295 | #define D7 P0_7 |
whismanoid | 0:3edb3708c8c5 | 296 | #endif |
whismanoid | 0:3edb3708c8c5 | 297 | #ifndef D8 |
whismanoid | 0:3edb3708c8c5 | 298 | #define D8 P1_4 |
whismanoid | 0:3edb3708c8c5 | 299 | #endif |
whismanoid | 0:3edb3708c8c5 | 300 | #ifndef D9 |
whismanoid | 0:3edb3708c8c5 | 301 | #define D9 P1_5 |
whismanoid | 0:3edb3708c8c5 | 302 | #endif |
whismanoid | 0:3edb3708c8c5 | 303 | #ifndef D10 |
whismanoid | 0:3edb3708c8c5 | 304 | #define D10 P1_3 |
whismanoid | 0:3edb3708c8c5 | 305 | #endif |
whismanoid | 0:3edb3708c8c5 | 306 | #ifndef D11 |
whismanoid | 0:3edb3708c8c5 | 307 | #define D11 P1_1 |
whismanoid | 0:3edb3708c8c5 | 308 | #endif |
whismanoid | 0:3edb3708c8c5 | 309 | #ifndef D12 |
whismanoid | 0:3edb3708c8c5 | 310 | #define D12 P1_2 |
whismanoid | 0:3edb3708c8c5 | 311 | #endif |
whismanoid | 0:3edb3708c8c5 | 312 | #ifndef D13 |
whismanoid | 0:3edb3708c8c5 | 313 | #define D13 P1_0 |
whismanoid | 0:3edb3708c8c5 | 314 | #endif |
whismanoid | 0:3edb3708c8c5 | 315 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 316 | #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 317 | // TODO1: target NUCLEO_F446RE |
whismanoid | 0:3edb3708c8c5 | 318 | // |
whismanoid | 0:3edb3708c8c5 | 319 | // USER_BUTTON PC13 |
whismanoid | 0:3edb3708c8c5 | 320 | // LED1 is shared with SPI_SCK on NUCLEO_F446RE PA_5, so don't use LED1. |
whismanoid | 0:3edb3708c8c5 | 321 | #define USE_LEDS 0 |
whismanoid | 0:3edb3708c8c5 | 322 | // SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK); |
whismanoid | 0:3edb3708c8c5 | 323 | // Serial microUSBserial(SERIAL_TX, SERIAL_RX); |
whismanoid | 0:3edb3708c8c5 | 324 | #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0 |
whismanoid | 0:3edb3708c8c5 | 325 | const float ADC_FULL_SCALE_VOLTAGE = 3.300; // TODO: ADC_FULL_SCALE_VOLTAGE Pico? |
whismanoid | 0:3edb3708c8c5 | 326 | // |
whismanoid | 0:3edb3708c8c5 | 327 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 328 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 329 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 330 | // TARGET=LPC1768 ARM Cortex-M3 100 MHz 512kB flash 64kB SRAM |
whismanoid | 0:3edb3708c8c5 | 331 | // +-------------[microUSB]-------------+ |
whismanoid | 0:3edb3708c8c5 | 332 | // ______ | [ ] GND +3.3V VOUT [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 333 | // ______ | [ ] 4.5V<VIN<9.0V +5.0V VU [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 334 | // ______ | [ ] VB USB.IF- [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 335 | // ______ | [ ] nR USB.IF+ [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 336 | // digitalInOut0 | [ ] p5 MOSI ETHERNET.RD- [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 337 | // digitalInOut1 | [ ] p6 MISO ETHERNET.RD+ [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 338 | // digitalInOut2 | [ ] p7 SCLK ETHERNET.TD- [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 339 | // digitalInOut3 | [ ] p8 ETHERNET.TD+ [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 340 | // digitalInOut4 | [ ] p9 TX SDA USB.D- [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 341 | // digitalInOut5 | [ ] p10 RX SCL USB.D+ [ ] | ______ |
whismanoid | 0:3edb3708c8c5 | 342 | // digitalInOut6 | [ ] p11 MOSI CAN-RD p30 [ ] | digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 343 | // digitalInOut7 | [ ] p12 MISO CAN-TD p29 [ ] | digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 344 | // digitalInOut8 | [ ] p13 TX SCLK SDA TX p28 [ ] | digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 345 | // digitalInOut9 | [ ] p14 RX SCL RX p27 [ ] | digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 346 | // analogIn0 | [ ] p15 AIN0 3.3Vfs PWM1 p26 [ ] | pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 347 | // analogIn1 | [ ] p16 AIN1 3.3Vfs PWM2 p25 [ ] | pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 348 | // analogIn2 | [ ] p17 AIN2 3.3Vfs PWM3 p24 [ ] | pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 349 | // analogIn3 | [ ] p18 AIN3 AOUT PWM4 p23 [ ] | pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 350 | // analogIn4 | [ ] p19 AIN4 3.3Vfs PWM5 p22 [ ] | pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 351 | // analogIn5 | [ ] p20 AIN5 3.3Vfs PWM6 p21 [ ] | pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 352 | // +------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 353 | // AIN6 = P0.3 = TGT_SBL_RXD? |
whismanoid | 0:3edb3708c8c5 | 354 | // AIN7 = P0.2 = TGT_SBL_TXD? |
whismanoid | 0:3edb3708c8c5 | 355 | // |
whismanoid | 0:3edb3708c8c5 | 356 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 357 | // LPC1768 board uses VREF = 3.300V +A3,3V thru L1 to bypass capacitor C14 |
whismanoid | 0:3edb3708c8c5 | 358 | #define analogIn4_IS_HIGH_RANGE_OF_analogIn0 0 |
whismanoid | 0:3edb3708c8c5 | 359 | const float ADC_FULL_SCALE_VOLTAGE = 3.300; |
whismanoid | 0:3edb3708c8c5 | 360 | #else // not defined(TARGET_LPC1768 etc.) |
whismanoid | 0:3edb3708c8c5 | 361 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 362 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 363 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 364 | #endif // target definition |
whismanoid | 0:3edb3708c8c5 | 365 | |
whismanoid | 0:3edb3708c8c5 | 366 | |
whismanoid | 0:3edb3708c8c5 | 367 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 368 | // alphanumeric command codes A-Z,a-z,0-9 reserved for application use |
whismanoid | 0:3edb3708c8c5 | 369 | #ifndef APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 370 | #define APPLICATION_ArduinoPinsMonitor 1 |
whismanoid | 0:3edb3708c8c5 | 371 | #endif // APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 372 | |
whismanoid | 0:3edb3708c8c5 | 373 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 374 | // Support MAX5715BOB Breakout Board |
whismanoid | 0:3edb3708c8c5 | 375 | #ifndef APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 376 | #define APPLICATION_MAX5715 1 |
whismanoid | 0:3edb3708c8c5 | 377 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 378 | #if APPLICATION_MAX5715 // header file |
whismanoid | 0:3edb3708c8c5 | 379 | #include "MAX5715.h" |
whismanoid | 0:3edb3708c8c5 | 380 | // suppress the I2C diagnostics, not relevant to this chip |
whismanoid | 0:3edb3708c8c5 | 381 | #define HAS_I2C 0 |
whismanoid | 0:3edb3708c8c5 | 382 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 383 | |
whismanoid | 0:3edb3708c8c5 | 384 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 385 | // Support MAX11131BOB Breakout Board |
whismanoid | 0:3edb3708c8c5 | 386 | #ifndef APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 387 | #define APPLICATION_MAX11131 0 |
whismanoid | 0:3edb3708c8c5 | 388 | #endif // APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 389 | #if APPLICATION_MAX11131 // header file |
whismanoid | 0:3edb3708c8c5 | 390 | #include "MAX11131.h" |
whismanoid | 0:3edb3708c8c5 | 391 | // suppress the I2C diagnostics, not relevant to this chip |
whismanoid | 0:3edb3708c8c5 | 392 | #define HAS_I2C 0 |
whismanoid | 0:3edb3708c8c5 | 393 | #endif // APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 394 | |
whismanoid | 0:3edb3708c8c5 | 395 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 396 | // Support MAX5171BOB Breakout Board |
whismanoid | 0:3edb3708c8c5 | 397 | #ifndef APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 398 | #define APPLICATION_MAX5171 0 |
whismanoid | 0:3edb3708c8c5 | 399 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 400 | #if APPLICATION_MAX5171 // header file |
whismanoid | 0:3edb3708c8c5 | 401 | #include "MAX5171.h" |
whismanoid | 0:3edb3708c8c5 | 402 | // suppress the I2C diagnostics, not relevant to this chip |
whismanoid | 0:3edb3708c8c5 | 403 | #define HAS_I2C 0 |
whismanoid | 0:3edb3708c8c5 | 404 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 405 | |
whismanoid | 0:3edb3708c8c5 | 406 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 407 | // Support MAX11410BOB Breakout Board (placeholder) |
whismanoid | 0:3edb3708c8c5 | 408 | #ifndef APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 409 | #define APPLICATION_MAX11410 0 |
whismanoid | 0:3edb3708c8c5 | 410 | #endif // APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 411 | #if APPLICATION_MAX11410 // header file |
whismanoid | 0:3edb3708c8c5 | 412 | #include "MAX11410.h" |
whismanoid | 0:3edb3708c8c5 | 413 | #endif // APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 414 | |
whismanoid | 0:3edb3708c8c5 | 415 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 416 | // Support MAX12345BOB Breakout Board (placeholder) |
whismanoid | 0:3edb3708c8c5 | 417 | #ifndef APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 418 | #define APPLICATION_MAX12345 0 |
whismanoid | 0:3edb3708c8c5 | 419 | #endif // APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 420 | #if APPLICATION_MAX12345 // header file |
whismanoid | 0:3edb3708c8c5 | 421 | #include "MAX12345.h" |
whismanoid | 0:3edb3708c8c5 | 422 | #endif // APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 423 | |
whismanoid | 0:3edb3708c8c5 | 424 | |
whismanoid | 0:3edb3708c8c5 | 425 | #include "MAX541.h" |
whismanoid | 0:3edb3708c8c5 | 426 | |
whismanoid | 0:3edb3708c8c5 | 427 | #ifndef USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 428 | #define USE_MAXIMTINYTESTER 1 |
whismanoid | 0:3edb3708c8c5 | 429 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 430 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 431 | #include "MaximTinyTester.h" |
whismanoid | 0:3edb3708c8c5 | 432 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 433 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 434 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 435 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 436 | |
whismanoid | 0:3edb3708c8c5 | 437 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 438 | // Option to dedicate SPI port pins |
whismanoid | 0:3edb3708c8c5 | 439 | // |
whismanoid | 0:3edb3708c8c5 | 440 | // SPI2_MOSI = P5_1 |
whismanoid | 0:3edb3708c8c5 | 441 | // SPI2_MISO = P5_2 |
whismanoid | 0:3edb3708c8c5 | 442 | // SPI2_SCK = P5_0 |
whismanoid | 0:3edb3708c8c5 | 443 | // On this board I'm using P3_0 as spi_cs |
whismanoid | 0:3edb3708c8c5 | 444 | // SPI2_SS = P5_3 |
whismanoid | 0:3edb3708c8c5 | 445 | // SPI2_SDIO2 = P5_4 |
whismanoid | 0:3edb3708c8c5 | 446 | // SPI2_SDIO3 = P5_5 |
whismanoid | 0:3edb3708c8c5 | 447 | // SPI2_SRN = P5_6 |
whismanoid | 0:3edb3708c8c5 | 448 | // |
whismanoid | 0:3edb3708c8c5 | 449 | #ifndef HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 450 | #define HAS_SPI 1 |
whismanoid | 0:3edb3708c8c5 | 451 | #endif |
whismanoid | 0:3edb3708c8c5 | 452 | #if HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 453 | #define SPI_MODE0 0 |
whismanoid | 0:3edb3708c8c5 | 454 | #define SPI_MODE1 1 |
whismanoid | 0:3edb3708c8c5 | 455 | #define SPI_MODE2 2 |
whismanoid | 0:3edb3708c8c5 | 456 | #define SPI_MODE3 3 |
whismanoid | 0:3edb3708c8c5 | 457 | // |
whismanoid | 0:3edb3708c8c5 | 458 | // Define application-specific default SPI_SCLK_Hz and SPI_dataMode |
whismanoid | 0:3edb3708c8c5 | 459 | #if APPLICATION_MAX5715 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 460 | // |
whismanoid | 0:3edb3708c8c5 | 461 | //#define SPI_SCLK_Hz 48000000 // 48MHz |
whismanoid | 0:3edb3708c8c5 | 462 | //#define SPI_SCLK_Hz 24000000 // 24MHz |
whismanoid | 0:3edb3708c8c5 | 463 | #define SPI_SCLK_Hz 12000000 // 12MHz |
whismanoid | 0:3edb3708c8c5 | 464 | //#define SPI_SCLK_Hz 4000000 // 4MHz |
whismanoid | 0:3edb3708c8c5 | 465 | //#define SPI_SCLK_Hz 2000000 // 2MHz |
whismanoid | 0:3edb3708c8c5 | 466 | //#define SPI_SCLK_Hz 1000000 // 1MHz |
whismanoid | 0:3edb3708c8c5 | 467 | #define SPI_dataMode SPI_MODE2 // CPOL=1,CPHA=0: Falling Edge stable; SCLK idle High |
whismanoid | 0:3edb3708c8c5 | 468 | // |
whismanoid | 0:3edb3708c8c5 | 469 | #elif APPLICATION_MAX11131 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 470 | // |
whismanoid | 0:3edb3708c8c5 | 471 | //#define SPI_SCLK_Hz 48000000 // 48MHz |
whismanoid | 0:3edb3708c8c5 | 472 | //#define SPI_SCLK_Hz 24000000 // 24MHz |
whismanoid | 0:3edb3708c8c5 | 473 | #define SPI_SCLK_Hz 12000000 // 12MHz |
whismanoid | 0:3edb3708c8c5 | 474 | //#define SPI_SCLK_Hz 4000000 // 4MHz |
whismanoid | 0:3edb3708c8c5 | 475 | //#define SPI_SCLK_Hz 2000000 // 2MHz |
whismanoid | 0:3edb3708c8c5 | 476 | //#define SPI_SCLK_Hz 1000000 // 1MHz |
whismanoid | 0:3edb3708c8c5 | 477 | #define SPI_dataMode SPI_MODE3 // CPOL=1,CPHA=1: Rising Edge stable; SCLK idle High |
whismanoid | 0:3edb3708c8c5 | 478 | // |
whismanoid | 0:3edb3708c8c5 | 479 | #elif APPLICATION_MAX5171 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 480 | // |
whismanoid | 0:3edb3708c8c5 | 481 | //#define SPI_SCLK_Hz 48000000 // 48MHz |
whismanoid | 0:3edb3708c8c5 | 482 | //#define SPI_SCLK_Hz 24000000 // 24MHz |
whismanoid | 0:3edb3708c8c5 | 483 | #define SPI_SCLK_Hz 12000000 // 12MHz |
whismanoid | 0:3edb3708c8c5 | 484 | //#define SPI_SCLK_Hz 4000000 // 4MHz |
whismanoid | 0:3edb3708c8c5 | 485 | //#define SPI_SCLK_Hz 2000000 // 2MHz |
whismanoid | 0:3edb3708c8c5 | 486 | //#define SPI_SCLK_Hz 1000000 // 1MHz |
whismanoid | 0:3edb3708c8c5 | 487 | #define SPI_dataMode SPI_MODE3 // CPOL=1,CPHA=1: Rising Edge stable; SCLK idle High |
whismanoid | 0:3edb3708c8c5 | 488 | // |
whismanoid | 0:3edb3708c8c5 | 489 | #elif APPLICATION_MAX11410 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 490 | // |
whismanoid | 0:3edb3708c8c5 | 491 | //#define SPI_SCLK_Hz 48000000 // 48MHz |
whismanoid | 0:3edb3708c8c5 | 492 | //#define SPI_SCLK_Hz 24000000 // 24MHz |
whismanoid | 0:3edb3708c8c5 | 493 | //#define SPI_SCLK_Hz 12000000 // 12MHz |
whismanoid | 0:3edb3708c8c5 | 494 | #define SPI_SCLK_Hz 8000000 // 8MHz |
whismanoid | 0:3edb3708c8c5 | 495 | //#define SPI_SCLK_Hz 4000000 // 4MHz |
whismanoid | 0:3edb3708c8c5 | 496 | //#define SPI_SCLK_Hz 2000000 // 2MHz |
whismanoid | 0:3edb3708c8c5 | 497 | //#define SPI_SCLK_Hz 1000000 // 1MHz |
whismanoid | 0:3edb3708c8c5 | 498 | #define SPI_dataMode SPI_MODE0 // CPOL=0,CPHA=0: Falling Edge stable; SCLK idle Low |
whismanoid | 0:3edb3708c8c5 | 499 | // |
whismanoid | 0:3edb3708c8c5 | 500 | #elif APPLICATION_MAX12345 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 501 | // |
whismanoid | 0:3edb3708c8c5 | 502 | //#define SPI_SCLK_Hz 48000000 // 48MHz |
whismanoid | 0:3edb3708c8c5 | 503 | //#define SPI_SCLK_Hz 24000000 // 24MHz |
whismanoid | 0:3edb3708c8c5 | 504 | #define SPI_SCLK_Hz 12000000 // 12MHz |
whismanoid | 0:3edb3708c8c5 | 505 | //#define SPI_SCLK_Hz 4000000 // 4MHz |
whismanoid | 0:3edb3708c8c5 | 506 | //#define SPI_SCLK_Hz 2000000 // 2MHz |
whismanoid | 0:3edb3708c8c5 | 507 | //#define SPI_SCLK_Hz 1000000 // 1MHz |
whismanoid | 0:3edb3708c8c5 | 508 | #define SPI_dataMode SPI_MODE3 // CPOL=1,CPHA=1: Rising Edge stable; SCLK idle High |
whismanoid | 0:3edb3708c8c5 | 509 | // |
whismanoid | 0:3edb3708c8c5 | 510 | #else // APPLICATION_ArduinoPinsMonitor diagnostic |
whismanoid | 0:3edb3708c8c5 | 511 | // |
whismanoid | 0:3edb3708c8c5 | 512 | //#define SPI_SCLK_Hz 48000000 // 48MHz |
whismanoid | 0:3edb3708c8c5 | 513 | //#define SPI_SCLK_Hz 4000000 // 4MHz |
whismanoid | 0:3edb3708c8c5 | 514 | //#define SPI_SCLK_Hz 2000000 // 2MHz |
whismanoid | 0:3edb3708c8c5 | 515 | #define SPI_SCLK_Hz 1000000 // 1MHz |
whismanoid | 0:3edb3708c8c5 | 516 | //#define SPI_dataMode SPI_MODE0 // CPOL=0,CPHA=0: Rising Edge stable; SCLK idle Low |
whismanoid | 0:3edb3708c8c5 | 517 | //#define SPI_dataMode SPI_MODE1 // CPOL=0,CPHA=1: Falling Edge stable; SCLK idle Low |
whismanoid | 0:3edb3708c8c5 | 518 | //#define SPI_dataMode SPI_MODE2 // CPOL=1,CPHA=0: Falling Edge stable; SCLK idle High |
whismanoid | 0:3edb3708c8c5 | 519 | #define SPI_dataMode SPI_MODE3 // CPOL=1,CPHA=1: Rising Edge stable; SCLK idle High |
whismanoid | 0:3edb3708c8c5 | 520 | // |
whismanoid | 0:3edb3708c8c5 | 521 | #endif |
whismanoid | 0:3edb3708c8c5 | 522 | // |
whismanoid | 0:3edb3708c8c5 | 523 | uint32_t g_SPI_SCLK_Hz = SPI_SCLK_Hz; |
whismanoid | 0:3edb3708c8c5 | 524 | // TODO1: validate g_SPI_SCLK_Hz against system clock frequency SystemCoreClock F_CPU |
whismanoid | 0:3edb3708c8c5 | 525 | #if defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 526 | // Nucleo SPI frequency isn't working quite as expected... |
whismanoid | 0:3edb3708c8c5 | 527 | // Looks like STMF4 has an spi clock prescaler (2,4,8,16,32,64,128,256) |
whismanoid | 0:3edb3708c8c5 | 528 | // so 180MHz->[90.0, 45.0, 22.5, 11.25, 5.625, 2.8125, 1.40625, 0.703125] |
whismanoid | 0:3edb3708c8c5 | 529 | // %SC SCLK=1MHz sets spi frequency 703.125kHz |
whismanoid | 0:3edb3708c8c5 | 530 | // %SC SCLK=2MHz sets spi frequency 1.40625MHz |
whismanoid | 0:3edb3708c8c5 | 531 | // %SC SCLK=3MHz sets spi frequency 2.8125MHz |
whismanoid | 0:3edb3708c8c5 | 532 | // %SC SCLK=6MHz sets spi frequency 5.625MHz |
whismanoid | 0:3edb3708c8c5 | 533 | // %SC SCLK=12MHz sets spi frequency 11.25MHz |
whismanoid | 0:3edb3708c8c5 | 534 | // %SC SCLK=23MHz sets spi frequency 22.5MHz |
whismanoid | 0:3edb3708c8c5 | 535 | // %SC SCLK=45MHz sets spi frequency 45.0MHz |
whismanoid | 0:3edb3708c8c5 | 536 | // Don't know why I can't reach spi frequency 90.0MHz, but ok whatever. |
whismanoid | 0:3edb3708c8c5 | 537 | const uint32_t limit_min_SPI_SCLK_divisor = 2; |
whismanoid | 0:3edb3708c8c5 | 538 | const uint32_t limit_max_SPI_SCLK_divisor = 256; |
whismanoid | 0:3edb3708c8c5 | 539 | // not really a divisor, just a powers-of-two prescaler with no intermediate divisors. |
whismanoid | 0:3edb3708c8c5 | 540 | #else |
whismanoid | 0:3edb3708c8c5 | 541 | const uint32_t limit_min_SPI_SCLK_divisor = 2; |
whismanoid | 0:3edb3708c8c5 | 542 | const uint32_t limit_max_SPI_SCLK_divisor = 8191; |
whismanoid | 0:3edb3708c8c5 | 543 | #endif |
whismanoid | 0:3edb3708c8c5 | 544 | const uint32_t limit_max_SPI_SCLK_Hz = (SystemCoreClock / limit_min_SPI_SCLK_divisor); // F_CPU / 2; // 8MHz / 2 = 4MHz |
whismanoid | 0:3edb3708c8c5 | 545 | const uint32_t limit_min_SPI_SCLK_Hz = (SystemCoreClock / limit_max_SPI_SCLK_divisor); // F_CPU / 128; // 8MHz / 128 = 62.5kHz |
whismanoid | 0:3edb3708c8c5 | 546 | // |
whismanoid | 0:3edb3708c8c5 | 547 | uint8_t g_SPI_dataMode = SPI_dataMode; |
whismanoid | 0:3edb3708c8c5 | 548 | uint8_t g_SPI_cs_state = 1; |
whismanoid | 0:3edb3708c8c5 | 549 | // |
whismanoid | 0:3edb3708c8c5 | 550 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 551 | // TODO1: avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 552 | // void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) |
whismanoid | 0:3edb3708c8c5 | 553 | //SPI spi0(SPI0_MOSI, SPI0_MISO, SPI0_SCK); // mosi, miso, sclk spi0 MAX32630FTHR: P0_5 P0_6 P0_4 ok but this is the microSD card, can't contact pins |
whismanoid | 0:3edb3708c8c5 | 554 | //SPI spi1(SPI1_MOSI, SPI1_MISO, SPI1_SCK); // mosi, miso, sclk spi1 MAX32630FTHR: P1_1 P1_2 P1_0 ok but this is the xip flash, can't contact pins |
whismanoid | 0:3edb3708c8c5 | 555 | //SPI spi2(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi2 MAX32630FTHR: P5_1, P5_2, P5_0 |
whismanoid | 0:3edb3708c8c5 | 556 | SPI spi(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi2 MAX32630FTHR: P5_1, P5_2, P5_0 |
whismanoid | 0:3edb3708c8c5 | 557 | // |
whismanoid | 0:3edb3708c8c5 | 558 | DigitalOut spi_cs(P3_0); |
whismanoid | 0:3edb3708c8c5 | 559 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 560 | // TODO1: avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 561 | // void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) |
whismanoid | 0:3edb3708c8c5 | 562 | //SPI spi(SPI0_MOSI, SPI0_MISO, SPI0_SCK); // mosi, miso, sclk spi0 TARGET_MAX32635MBED: P0_5 P0_6 P0_4 Arduino 8-pin header D5 D6 D7 |
whismanoid | 0:3edb3708c8c5 | 563 | //DigitalOut spi_cs(SPI0_SS); // TARGET_MAX32635MBED: P0_7 Arduino 8-pin header D4 |
whismanoid | 0:3edb3708c8c5 | 564 | SPI spi(SPI1_MOSI, SPI1_MISO, SPI1_SCK); // mosi, miso, sclk spi1 TARGET_MAX32635MBED: P1_1 P1_2 P1_0 Arduino 10-pin header D11 D12 D13 |
whismanoid | 0:3edb3708c8c5 | 565 | DigitalOut spi_cs(SPI1_SS); // TARGET_MAX32635MBED: P1_3 Arduino 10-pin header D10 |
whismanoid | 0:3edb3708c8c5 | 566 | SPI spi2_max541(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi2 TARGET_MAX32635MBED: P2_5 P2_6 P2_4 Arduino 2x3-pin header; microSD |
whismanoid | 0:3edb3708c8c5 | 567 | DigitalOut spi2_max541_cs(SPI2_SS); // TARGET_MAX32635MBED: P2_7 Arduino 2x3-pin header |
whismanoid | 0:3edb3708c8c5 | 568 | #define HAS_SPI2_MAX541 1 |
whismanoid | 0:3edb3708c8c5 | 569 | // |
whismanoid | 0:3edb3708c8c5 | 570 | #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 571 | // TODO1: avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 572 | // void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) |
whismanoid | 0:3edb3708c8c5 | 573 | // |
whismanoid | 0:3edb3708c8c5 | 574 | // TODO1: NUCLEO_F446RE SPI not working; CS and MOSI data looks OK but no SCLK clock pulses. |
whismanoid | 0:3edb3708c8c5 | 575 | SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK); // mosi, miso, sclk spi1 TARGET_NUCLEO_F446RE: Arduino 10-pin header D11 D12 D13 |
whismanoid | 0:3edb3708c8c5 | 576 | DigitalOut spi_cs(SPI_CS); // TARGET_NUCLEO_F446RE: PB_6 Arduino 10-pin header D10 |
whismanoid | 0:3edb3708c8c5 | 577 | // |
whismanoid | 0:3edb3708c8c5 | 578 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 579 | // TODO1: avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 580 | // void spi_init(spi_t *obj, PinName mosi, PinName miso, PinName sclk, PinName ssel) |
whismanoid | 0:3edb3708c8c5 | 581 | //SPI spi0(SPI0_MOSI, SPI0_MISO, SPI0_SCK); // mosi, miso, sclk spi0 MAX32630FTHR: P0_5 P0_6 P0_4 ok but this is the microSD card, can't contact pins |
whismanoid | 0:3edb3708c8c5 | 582 | //SPI spi1(SPI1_MOSI, SPI1_MISO, SPI1_SCK); // mosi, miso, sclk spi1 MAX32630FTHR: P1_1 P1_2 P1_0 ok but this is the xip flash, can't contact pins |
whismanoid | 0:3edb3708c8c5 | 583 | //SPI spi2(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi2 MAX32630FTHR: P5_1, P5_2, P5_0 |
whismanoid | 0:3edb3708c8c5 | 584 | SPI spi(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi2 MAX32630FTHR: P5_1, P5_2, P5_0 |
whismanoid | 0:3edb3708c8c5 | 585 | // |
whismanoid | 0:3edb3708c8c5 | 586 | DigitalOut spi_cs(P3_0); |
whismanoid | 0:3edb3708c8c5 | 587 | #else |
whismanoid | 0:3edb3708c8c5 | 588 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 589 | #endif |
whismanoid | 0:3edb3708c8c5 | 590 | #endif |
whismanoid | 0:3edb3708c8c5 | 591 | |
whismanoid | 0:3edb3708c8c5 | 592 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 593 | // Device driver object |
whismanoid | 0:3edb3708c8c5 | 594 | #if APPLICATION_MAX5715 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 595 | DigitalOut LDACb_pin(D9); // Arduino 10-pin header D9 |
whismanoid | 0:3edb3708c8c5 | 596 | DigitalOut CLRb_pin(D8); // Arduino 10-pin header D8 |
whismanoid | 0:3edb3708c8c5 | 597 | //~ DigitalIn RDYb_pin(D12); // Arduino 10-pin header D12 (MISO) |
whismanoid | 0:3edb3708c8c5 | 598 | MAX5715 g_MAX5715_device(spi, spi_cs, |
whismanoid | 0:3edb3708c8c5 | 599 | LDACb_pin, |
whismanoid | 0:3edb3708c8c5 | 600 | CLRb_pin, |
whismanoid | 0:3edb3708c8c5 | 601 | ///* RDYb_pin */ digitalInOut12, |
whismanoid | 0:3edb3708c8c5 | 602 | MAX5715::MAX5715_IC); |
whismanoid | 0:3edb3708c8c5 | 603 | // |
whismanoid | 0:3edb3708c8c5 | 604 | #elif APPLICATION_MAX11131 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 605 | DigitalOut CNVSTb_pin(D9); // Arduino 10-pin header D9 |
whismanoid | 0:3edb3708c8c5 | 606 | //DigitalOut CLRb_pin(D8); // Arduino 10-pin header D8 |
whismanoid | 0:3edb3708c8c5 | 607 | DigitalIn EOCb_pin(D12); // Arduino 10-pin header D12 (MISO) |
whismanoid | 0:3edb3708c8c5 | 608 | MAX11131 g_MAX11131_device(spi, spi_cs, |
whismanoid | 0:3edb3708c8c5 | 609 | CNVSTb_pin, |
whismanoid | 0:3edb3708c8c5 | 610 | EOCb_pin, |
whismanoid | 0:3edb3708c8c5 | 611 | ///* RDYb_pin */ digitalInOut12, |
whismanoid | 0:3edb3708c8c5 | 612 | MAX11131::MAX11131_IC); |
whismanoid | 0:3edb3708c8c5 | 613 | // |
whismanoid | 0:3edb3708c8c5 | 614 | // |
whismanoid | 0:3edb3708c8c5 | 615 | #elif APPLICATION_MAX5171 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 616 | // AnalogOut FB_pin(Px_x_PortName_To_Be_Determined); // Analog Input to MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 617 | DigitalOut RS_pin(D9); // Digital Configuration Input to MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 618 | DigitalOut PDLb_pin(D8); // Digital Configuration Input to MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 619 | DigitalOut CLRb_pin(D7); // Digital Configuration Input to MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 620 | DigitalOut SHDN_pin(D6); // Digital Configuration Input to MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 621 | // AnalogIn OUT_pin(A0); // Analog Output from MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 622 | DigitalIn UPO_pin(D2); // Digital General-Purpose Output from MAX5171 device |
whismanoid | 0:3edb3708c8c5 | 623 | MAX5171 g_MAX5171_device(spi, spi_cs, RS_pin, PDLb_pin, CLRb_pin, SHDN_pin, UPO_pin, MAX5171::MAX5171_IC); |
whismanoid | 0:3edb3708c8c5 | 624 | // |
whismanoid | 0:3edb3708c8c5 | 625 | #elif APPLICATION_MAX11410 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 626 | // |
whismanoid | 0:3edb3708c8c5 | 627 | MAX11410 g_MAX11410_device(spi, spi_cs, MAX11410::MAX11410_IC); |
whismanoid | 0:3edb3708c8c5 | 628 | // |
whismanoid | 0:3edb3708c8c5 | 629 | #elif APPLICATION_MAX12345 // SPI interface default settings |
whismanoid | 0:3edb3708c8c5 | 630 | // |
whismanoid | 0:3edb3708c8c5 | 631 | MAX12345 g_MAX12345_device(spi, spi_cs, ...); |
whismanoid | 0:3edb3708c8c5 | 632 | // |
whismanoid | 0:3edb3708c8c5 | 633 | #else // APPLICATION_ArduinoPinsMonitor diagnostic |
whismanoid | 0:3edb3708c8c5 | 634 | // |
whismanoid | 0:3edb3708c8c5 | 635 | #endif |
whismanoid | 0:3edb3708c8c5 | 636 | |
whismanoid | 0:3edb3708c8c5 | 637 | |
whismanoid | 0:3edb3708c8c5 | 638 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 639 | // Option to dedicate I2C port pins |
whismanoid | 0:3edb3708c8c5 | 640 | // |
whismanoid | 0:3edb3708c8c5 | 641 | #ifndef HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 642 | #define HAS_I2C 1 |
whismanoid | 0:3edb3708c8c5 | 643 | #endif |
whismanoid | 0:3edb3708c8c5 | 644 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 645 | //#include "I2C.h" |
whismanoid | 0:3edb3708c8c5 | 646 | //#include "I2CSlave.h" |
whismanoid | 0:3edb3708c8c5 | 647 | //#define I2C_SCL_Hz 400000 // 400kHz |
whismanoid | 0:3edb3708c8c5 | 648 | //#define I2C_SCL_Hz 200000 // 200kHz |
whismanoid | 0:3edb3708c8c5 | 649 | #define I2C_SCL_Hz 100000 // 100kHz |
whismanoid | 0:3edb3708c8c5 | 650 | // |
whismanoid | 0:3edb3708c8c5 | 651 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 652 | // TODO1: validate g_I2C_SCL_Hz against system clock frequency SystemCoreClock F_CPU |
whismanoid | 0:3edb3708c8c5 | 653 | const uint32_t limit_max_I2C_SCL_Hz = (SystemCoreClock / 2); // F_CPU / 2; // 8MHz / 2 = 4MHz |
whismanoid | 0:3edb3708c8c5 | 654 | const uint32_t limit_min_I2C_SCL_Hz = (SystemCoreClock / 8191); // F_CPU / 128; // 8MHz / 128 = 62.5kHz |
whismanoid | 0:3edb3708c8c5 | 655 | // |
whismanoid | 0:3edb3708c8c5 | 656 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 657 | //I2C i2cMaster0(I2C0_SDA, I2C0_SCL); // sda scl MAX32630FTHR: NOT_CONNECTED |
whismanoid | 0:3edb3708c8c5 | 658 | //I2C i2cMaster1(I2C1_SDA, I2C1_SCL); // sda scl MAX32630FTHR: P3_4, P3_5 |
whismanoid | 0:3edb3708c8c5 | 659 | //I2C i2cMaster2(I2C2_SDA, I2C2_SCL); // sda scl MAX32630FTHR: P5_7, P6_0 |
whismanoid | 0:3edb3708c8c5 | 660 | //I2C i2cMaster(I2C2_SDA, I2C2_SCL); // sda scl MAX32630FTHR: P5_7, P6_0 |
whismanoid | 0:3edb3708c8c5 | 661 | // |
whismanoid | 0:3edb3708c8c5 | 662 | //I2CSlave i2cSlave0(I2C0_SDA, I2C0_SCL); // sda scl MAX32630FTHR: NOT_CONNECTED |
whismanoid | 0:3edb3708c8c5 | 663 | //I2CSlave i2cSlave1(I2C1_SDA, I2C1_SCL); // sda scl MAX32630FTHR: P3_4, P3_5 |
whismanoid | 0:3edb3708c8c5 | 664 | //I2CSlave i2cSlave2(I2C2_SDA, I2C2_SCL); // sda scl MAX32630FTHR: P5_7, P6_0 |
whismanoid | 0:3edb3708c8c5 | 665 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 666 | // TODO1: validate g_I2C_SCL_Hz against system clock frequency SystemCoreClock F_CPU |
whismanoid | 0:3edb3708c8c5 | 667 | const uint32_t limit_max_I2C_SCL_Hz = (SystemCoreClock / 2); // F_CPU / 2; // 8MHz / 2 = 4MHz |
whismanoid | 0:3edb3708c8c5 | 668 | const uint32_t limit_min_I2C_SCL_Hz = (SystemCoreClock / 8191); // F_CPU / 128; // 8MHz / 128 = 62.5kHz |
whismanoid | 0:3edb3708c8c5 | 669 | // |
whismanoid | 0:3edb3708c8c5 | 670 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 671 | //I2C i2cMaster0(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 672 | //I2C i2cMaster1(I2C1_SDA, I2C1_SCL); // sda scl TARGET_MAX32635MBED: P3_4, P3_5 Arduino 6-pin header |
whismanoid | 0:3edb3708c8c5 | 673 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 674 | // |
whismanoid | 0:3edb3708c8c5 | 675 | #elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 676 | // TODO1: validate g_I2C_SCL_Hz against system clock frequency SystemCoreClock F_CPU |
whismanoid | 0:3edb3708c8c5 | 677 | const uint32_t limit_max_I2C_SCL_Hz = (SystemCoreClock / 2); // F_CPU / 2; // 8MHz / 2 = 4MHz |
whismanoid | 0:3edb3708c8c5 | 678 | const uint32_t limit_min_I2C_SCL_Hz = (SystemCoreClock / 8191); // F_CPU / 128; // 8MHz / 128 = 62.5kHz |
whismanoid | 0:3edb3708c8c5 | 679 | // |
whismanoid | 0:3edb3708c8c5 | 680 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 681 | //I2C i2cMaster0(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 682 | //I2C i2cMaster1(I2C1_SDA, I2C1_SCL); // sda scl TARGET_MAX32635MBED: P3_4, P3_5 Arduino 6-pin header |
whismanoid | 0:3edb3708c8c5 | 683 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 684 | # ifndef I2C0_SDA |
whismanoid | 0:3edb3708c8c5 | 685 | # define I2C0_SDA I2C_SDA |
whismanoid | 0:3edb3708c8c5 | 686 | # define I2C0_SCL I2C_SCL |
whismanoid | 0:3edb3708c8c5 | 687 | # endif |
whismanoid | 0:3edb3708c8c5 | 688 | // |
whismanoid | 0:3edb3708c8c5 | 689 | #elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 690 | // TODO1: validate g_I2C_SCL_Hz against system clock frequency SystemCoreClock F_CPU |
whismanoid | 0:3edb3708c8c5 | 691 | const uint32_t limit_max_I2C_SCL_Hz = (SystemCoreClock / 2); // F_CPU / 2; // 8MHz / 2 = 4MHz |
whismanoid | 0:3edb3708c8c5 | 692 | const uint32_t limit_min_I2C_SCL_Hz = (SystemCoreClock / 8191); // F_CPU / 128; // 8MHz / 128 = 62.5kHz |
whismanoid | 0:3edb3708c8c5 | 693 | // |
whismanoid | 0:3edb3708c8c5 | 694 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 695 | //I2C i2cMaster0(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 696 | //I2C i2cMaster1(I2C1_SDA, I2C1_SCL); // sda scl TARGET_MAX32635MBED: P3_4, P3_5 Arduino 6-pin header |
whismanoid | 0:3edb3708c8c5 | 697 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 698 | # ifndef I2C0_SDA |
whismanoid | 0:3edb3708c8c5 | 699 | # define I2C0_SDA I2C_SDA |
whismanoid | 0:3edb3708c8c5 | 700 | # define I2C0_SCL I2C_SCL |
whismanoid | 0:3edb3708c8c5 | 701 | # endif |
whismanoid | 0:3edb3708c8c5 | 702 | // |
whismanoid | 0:3edb3708c8c5 | 703 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 704 | #else |
whismanoid | 0:3edb3708c8c5 | 705 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 706 | #endif |
whismanoid | 0:3edb3708c8c5 | 707 | // |
whismanoid | 0:3edb3708c8c5 | 708 | #endif |
whismanoid | 0:3edb3708c8c5 | 709 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 710 | uint32_t g_I2C_SCL_Hz = I2C_SCL_Hz; |
whismanoid | 0:3edb3708c8c5 | 711 | uint8_t g_I2C_status = 0; // g_I2C_status = Wire_Sr.endTransmission(); |
whismanoid | 0:3edb3708c8c5 | 712 | uint8_t g_I2C_deviceAddress7 = (0xA0 >> 1); // I2C device address (slave address on I2C bus), 7-bits, RIGHT-justified. |
whismanoid | 0:3edb3708c8c5 | 713 | uint8_t g_I2C_read_count = 0; |
whismanoid | 0:3edb3708c8c5 | 714 | uint8_t g_I2C_write_count = 0; |
whismanoid | 0:3edb3708c8c5 | 715 | uint8_t g_I2C_write_data[256]; |
whismanoid | 0:3edb3708c8c5 | 716 | uint8_t g_I2C_command_regAddress; |
whismanoid | 0:3edb3708c8c5 | 717 | // |
whismanoid | 0:3edb3708c8c5 | 718 | // TODO: i2c init |
whismanoid | 0:3edb3708c8c5 | 719 | // i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 720 | #endif |
whismanoid | 0:3edb3708c8c5 | 721 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 722 | // TODO: i2c transfer |
whismanoid | 0:3edb3708c8c5 | 723 | //const int addr7bit = 0x48; // 7 bit I2C address |
whismanoid | 0:3edb3708c8c5 | 724 | //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90 |
whismanoid | 0:3edb3708c8c5 | 725 | // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 726 | // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 727 | // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 728 | // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 729 | // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 730 | // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 731 | // /* 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 | 0:3edb3708c8c5 | 732 | // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More... |
whismanoid | 0:3edb3708c8c5 | 733 | #endif |
whismanoid | 0:3edb3708c8c5 | 734 | |
whismanoid | 0:3edb3708c8c5 | 735 | |
whismanoid | 0:3edb3708c8c5 | 736 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 737 | // Declare the Serial driver |
whismanoid | 0:3edb3708c8c5 | 738 | // default baud rate settings are 9600 8N1 |
whismanoid | 0:3edb3708c8c5 | 739 | // install device driver from http://developer.mbed.org/media/downloads/drivers/mbedWinSerial_16466.exe |
whismanoid | 0:3edb3708c8c5 | 740 | // see docs https://docs.mbed.com/docs/mbed-os-handbook/en/5.5/getting_started/what_need/ |
whismanoid | 0:3edb3708c8c5 | 741 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 742 | #include "USBSerial.h" |
whismanoid | 0:3edb3708c8c5 | 743 | // Hardware serial port over DAPLink |
whismanoid | 0:3edb3708c8c5 | 744 | // The default baud rate for the DapLink UART is 9600 |
whismanoid | 0:3edb3708c8c5 | 745 | Serial DAPLINKserial(P2_1, P2_0); // tx, rx |
whismanoid | 0:3edb3708c8c5 | 746 | #define HAS_DAPLINK_SERIAL 1 |
whismanoid | 0:3edb3708c8c5 | 747 | // Virtual serial port over USB |
whismanoid | 0:3edb3708c8c5 | 748 | // The baud rate does not affect the virtual USBSerial UART. |
whismanoid | 0:3edb3708c8c5 | 749 | USBSerial microUSBserial; |
whismanoid | 0:3edb3708c8c5 | 750 | #define HAS_MICROUSBSERIAL 1 |
whismanoid | 0:3edb3708c8c5 | 751 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 752 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 753 | #include "USBSerial.h" |
whismanoid | 0:3edb3708c8c5 | 754 | // Hardware serial port over DAPLink |
whismanoid | 0:3edb3708c8c5 | 755 | // The default baud rate for the DapLink UART is 9600 |
whismanoid | 0:3edb3708c8c5 | 756 | Serial DAPLINKserial(P2_1, P2_0); // tx, rx |
whismanoid | 0:3edb3708c8c5 | 757 | #define HAS_DAPLINK_SERIAL 1 |
whismanoid | 0:3edb3708c8c5 | 758 | // Virtual serial port over USB |
whismanoid | 0:3edb3708c8c5 | 759 | // The baud rate does not affect the virtual USBSerial UART. |
whismanoid | 0:3edb3708c8c5 | 760 | USBSerial microUSBserial; |
whismanoid | 0:3edb3708c8c5 | 761 | #define HAS_MICROUSBSERIAL 1 |
whismanoid | 0:3edb3708c8c5 | 762 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 763 | #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 764 | Serial microUSBserial(SERIAL_TX, SERIAL_RX); // tx, rx |
whismanoid | 0:3edb3708c8c5 | 765 | #define HAS_MICROUSBSERIAL 1 |
whismanoid | 0:3edb3708c8c5 | 766 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 767 | // TODO1: TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM |
whismanoid | 0:3edb3708c8c5 | 768 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 769 | Serial microUSBserial(USBTX, USBRX); // tx, rx |
whismanoid | 0:3edb3708c8c5 | 770 | #define HAS_MICROUSBSERIAL 1 |
whismanoid | 0:3edb3708c8c5 | 771 | #else |
whismanoid | 0:3edb3708c8c5 | 772 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 773 | #endif |
whismanoid | 0:3edb3708c8c5 | 774 | |
whismanoid | 0:3edb3708c8c5 | 775 | void on_immediate_0x21(); // Unicode (U+0021) ! EXCLAMATION MARK |
whismanoid | 0:3edb3708c8c5 | 776 | void on_immediate_0x7b(); // Unicode (U+007B) { LEFT CURLY BRACKET |
whismanoid | 0:3edb3708c8c5 | 777 | void on_immediate_0x7d(); // Unicode (U+007D) } RIGHT CURLY BRACKET |
whismanoid | 0:3edb3708c8c5 | 778 | |
whismanoid | 0:3edb3708c8c5 | 779 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 780 | // Option to process command buffer from microUSBserial or DAPLINKserial |
whismanoid | 0:3edb3708c8c5 | 781 | #ifndef USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 782 | #define USE_COMMAND_BUFFER 1 |
whismanoid | 0:3edb3708c8c5 | 783 | #endif |
whismanoid | 0:3edb3708c8c5 | 784 | #if USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 785 | #include "CmdLine.h" |
whismanoid | 0:3edb3708c8c5 | 786 | |
whismanoid | 0:3edb3708c8c5 | 787 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 788 | CmdLine cmdLine_DAPLINKserial(DAPLINKserial, "DAPLINK"); |
whismanoid | 0:3edb3708c8c5 | 789 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 790 | // TODO1: diagnostic: define HAS_MICROUSBSERIAL 0 |
whismanoid | 0:3edb3708c8c5 | 791 | //~ #define HAS_MICROUSBSERIAL 0 |
whismanoid | 0:3edb3708c8c5 | 792 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 793 | CmdLine cmdLine_microUSBserial(microUSBserial, "microUSB"); |
whismanoid | 0:3edb3708c8c5 | 794 | # endif // HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 795 | |
whismanoid | 0:3edb3708c8c5 | 796 | #endif // USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 797 | |
whismanoid | 0:3edb3708c8c5 | 798 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 799 | // tolerate AT commands, which may be sent during probe, such as: |
whismanoid | 0:3edb3708c8c5 | 800 | // AT |
whismanoid | 0:3edb3708c8c5 | 801 | // AT+CGMI -- request manufacturer identification AT+CMGI=? |
whismanoid | 0:3edb3708c8c5 | 802 | // AT+CGMM -- request manufacturer model |
whismanoid | 0:3edb3708c8c5 | 803 | // AT%IPSYS? |
whismanoid | 0:3edb3708c8c5 | 804 | // ATE0 -- echo disable |
whismanoid | 0:3edb3708c8c5 | 805 | // ATV1 -- verbose result codes OK | ERROR | NO CARRIER |
whismanoid | 0:3edb3708c8c5 | 806 | // AT+CMEE=1 |
whismanoid | 0:3edb3708c8c5 | 807 | // ATX4 |
whismanoid | 0:3edb3708c8c5 | 808 | // AT&C1 |
whismanoid | 0:3edb3708c8c5 | 809 | // ATE0 |
whismanoid | 0:3edb3708c8c5 | 810 | // AT+CMEE=1 |
whismanoid | 0:3edb3708c8c5 | 811 | // AT+GCAP |
whismanoid | 0:3edb3708c8c5 | 812 | // ATI |
whismanoid | 0:3edb3708c8c5 | 813 | // AT+CPIN? |
whismanoid | 0:3edb3708c8c5 | 814 | // AT+CGMM |
whismanoid | 0:3edb3708c8c5 | 815 | #ifndef IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 816 | #define IGNORE_AT_COMMANDS 1 |
whismanoid | 0:3edb3708c8c5 | 817 | #endif |
whismanoid | 0:3edb3708c8c5 | 818 | |
whismanoid | 0:3edb3708c8c5 | 819 | |
whismanoid | 0:3edb3708c8c5 | 820 | // uncrustify-0.66.1 *INDENT-OFF* |
whismanoid | 0:3edb3708c8c5 | 821 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 822 | // Declare the DigitalInOut GPIO pins |
whismanoid | 0:3edb3708c8c5 | 823 | // Optional digitalInOut support. If there is only one it should be digitalInOut1. |
whismanoid | 0:3edb3708c8c5 | 824 | // D) Digital High/Low/Input Pin |
whismanoid | 0:3edb3708c8c5 | 825 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 826 | // +-------------[microUSB]-------------+ |
whismanoid | 0:3edb3708c8c5 | 827 | // | J1 MAX32630FTHR J2 | |
whismanoid | 0:3edb3708c8c5 | 828 | // | [ ] RST GND [ ] | |
whismanoid | 0:3edb3708c8c5 | 829 | // | [ ] 3V3 BAT+[ ] | |
whismanoid | 0:3edb3708c8c5 | 830 | // | [ ] 1V8 reset SW1 | |
whismanoid | 0:3edb3708c8c5 | 831 | // | [ ] GND J4 J3 | |
whismanoid | 0:3edb3708c8c5 | 832 | // | [ ] AIN_0 1.2Vfs (bat) SYS [ ] | |
whismanoid | 0:3edb3708c8c5 | 833 | // | [ ] AIN_1 1.2Vfs PWR [ ] | |
whismanoid | 0:3edb3708c8c5 | 834 | // | [ ] AIN_2 1.2Vfs +5V VBUS [ ] | |
whismanoid | 0:3edb3708c8c5 | 835 | // | [ ] AIN_3 1.2Vfs 1-WIRE P4_0 [ ] | dig9 |
whismanoid | 0:3edb3708c8c5 | 836 | // dig10 | [x] P5_7 SDA2 SRN P5_6 [ ] | dig8 |
whismanoid | 0:3edb3708c8c5 | 837 | // dig11 | [x] P6_0 SCL2 SDIO3 P5_5 [ ] | dig7 |
whismanoid | 0:3edb3708c8c5 | 838 | // dig12 | [x] P5_0 SCLK SDIO2 P5_4 [ ] | dig6 |
whismanoid | 0:3edb3708c8c5 | 839 | // dig13 | [x] P5_1 MOSI SSEL P5_3 [x] | dig5 |
whismanoid | 0:3edb3708c8c5 | 840 | // dig14 | [ ] P5_2 MISO RTS P3_3 [ ] | dig4 |
whismanoid | 0:3edb3708c8c5 | 841 | // dig15 | [ ] P3_0 RX CTS P3_2 [ ] | dig3 |
whismanoid | 0:3edb3708c8c5 | 842 | // dig0 | [ ] P3_1 TX SCL P3_5 [x] | dig2 |
whismanoid | 0:3edb3708c8c5 | 843 | // | [ ] GND SDA P3_4 [x] | dig1 |
whismanoid | 0:3edb3708c8c5 | 844 | // +------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 845 | #define HAS_digitalInOut0 1 // P3_1 TARGET_MAX32630 J1.15 |
whismanoid | 0:3edb3708c8c5 | 846 | #define HAS_digitalInOut1 1 // P3_4 TARGET_MAX32630 J3.12 |
whismanoid | 0:3edb3708c8c5 | 847 | #define HAS_digitalInOut2 1 // P3_5 TARGET_MAX32630 J3.11 |
whismanoid | 0:3edb3708c8c5 | 848 | #define HAS_digitalInOut3 1 // P3_2 TARGET_MAX32630 J3.10 |
whismanoid | 0:3edb3708c8c5 | 849 | #define HAS_digitalInOut4 1 // P3_3 TARGET_MAX32630 J3.9 |
whismanoid | 0:3edb3708c8c5 | 850 | #define HAS_digitalInOut5 1 // P5_3 TARGET_MAX32630 J3.8 |
whismanoid | 0:3edb3708c8c5 | 851 | #define HAS_digitalInOut6 1 // P5_4 TARGET_MAX32630 J3.7 |
whismanoid | 0:3edb3708c8c5 | 852 | #define HAS_digitalInOut7 1 // P5_5 TARGET_MAX32630 J3.6 |
whismanoid | 0:3edb3708c8c5 | 853 | #define HAS_digitalInOut8 1 // P5_6 TARGET_MAX32630 J3.5 |
whismanoid | 0:3edb3708c8c5 | 854 | #define HAS_digitalInOut9 1 // P4_0 TARGET_MAX32630 J3.4 |
whismanoid | 0:3edb3708c8c5 | 855 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 856 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 857 | #define HAS_digitalInOut10 0 // P5_7 TARGET_MAX32630 J1.9 |
whismanoid | 0:3edb3708c8c5 | 858 | #define HAS_digitalInOut11 0 // P6_0 TARGET_MAX32630 J1.10 |
whismanoid | 0:3edb3708c8c5 | 859 | #else // HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 860 | #define HAS_digitalInOut10 1 // P5_7 TARGET_MAX32630 J1.9 |
whismanoid | 0:3edb3708c8c5 | 861 | #define HAS_digitalInOut11 1 // P6_0 TARGET_MAX32630 J1.10 |
whismanoid | 0:3edb3708c8c5 | 862 | #endif // HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 863 | #if HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 864 | // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 865 | #define HAS_digitalInOut12 0 // P5_0 TARGET_MAX32630 J1.11 |
whismanoid | 0:3edb3708c8c5 | 866 | #define HAS_digitalInOut13 0 // P5_1 TARGET_MAX32630 J1.12 |
whismanoid | 0:3edb3708c8c5 | 867 | #define HAS_digitalInOut14 0 // P5_2 TARGET_MAX32630 J1.13 |
whismanoid | 0:3edb3708c8c5 | 868 | #define HAS_digitalInOut15 0 // P3_0 TARGET_MAX32630 J1.14 |
whismanoid | 0:3edb3708c8c5 | 869 | #else // HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 870 | #define HAS_digitalInOut12 1 // P5_0 TARGET_MAX32630 J1.11 |
whismanoid | 0:3edb3708c8c5 | 871 | #define HAS_digitalInOut13 1 // P5_1 TARGET_MAX32630 J1.12 |
whismanoid | 0:3edb3708c8c5 | 872 | #define HAS_digitalInOut14 1 // P5_2 TARGET_MAX32630 J1.13 |
whismanoid | 0:3edb3708c8c5 | 873 | #define HAS_digitalInOut15 1 // P3_0 TARGET_MAX32630 J1.14 |
whismanoid | 0:3edb3708c8c5 | 874 | #endif // HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 875 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 876 | DigitalInOut digitalInOut0(P3_1, PIN_INPUT, PullUp, 1); // P3_1 TARGET_MAX32630 J1.15 |
whismanoid | 0:3edb3708c8c5 | 877 | #endif |
whismanoid | 0:3edb3708c8c5 | 878 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 879 | DigitalInOut digitalInOut1(P3_4, PIN_INPUT, PullUp, 1); // P3_4 TARGET_MAX32630 J3.12 |
whismanoid | 0:3edb3708c8c5 | 880 | #endif |
whismanoid | 0:3edb3708c8c5 | 881 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 882 | DigitalInOut digitalInOut2(P3_5, PIN_INPUT, PullUp, 1); // P3_5 TARGET_MAX32630 J3.11 |
whismanoid | 0:3edb3708c8c5 | 883 | #endif |
whismanoid | 0:3edb3708c8c5 | 884 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 885 | DigitalInOut digitalInOut3(P3_2, PIN_INPUT, PullUp, 1); // P3_2 TARGET_MAX32630 J3.10 |
whismanoid | 0:3edb3708c8c5 | 886 | #endif |
whismanoid | 0:3edb3708c8c5 | 887 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 888 | DigitalInOut digitalInOut4(P3_3, PIN_INPUT, PullUp, 1); // P3_3 TARGET_MAX32630 J3.9 |
whismanoid | 0:3edb3708c8c5 | 889 | #endif |
whismanoid | 0:3edb3708c8c5 | 890 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 891 | DigitalInOut digitalInOut5(P5_3, PIN_INPUT, PullUp, 1); // P5_3 TARGET_MAX32630 J3.8 |
whismanoid | 0:3edb3708c8c5 | 892 | #endif |
whismanoid | 0:3edb3708c8c5 | 893 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 894 | DigitalInOut digitalInOut6(P5_4, PIN_INPUT, PullUp, 1); // P5_4 TARGET_MAX32630 J3.7 |
whismanoid | 0:3edb3708c8c5 | 895 | #endif |
whismanoid | 0:3edb3708c8c5 | 896 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 897 | DigitalInOut digitalInOut7(P5_5, PIN_INPUT, PullUp, 1); // P5_5 TARGET_MAX32630 J3.6 |
whismanoid | 0:3edb3708c8c5 | 898 | #endif |
whismanoid | 0:3edb3708c8c5 | 899 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 900 | DigitalInOut digitalInOut8(P5_6, PIN_INPUT, PullUp, 1); // P5_6 TARGET_MAX32630 J3.5 |
whismanoid | 0:3edb3708c8c5 | 901 | #endif |
whismanoid | 0:3edb3708c8c5 | 902 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 903 | DigitalInOut digitalInOut9(P4_0, PIN_INPUT, PullUp, 1); // P4_0 TARGET_MAX32630 J3.4 |
whismanoid | 0:3edb3708c8c5 | 904 | #endif |
whismanoid | 0:3edb3708c8c5 | 905 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 906 | DigitalInOut digitalInOut10(P5_7, PIN_INPUT, PullUp, 1); // P5_7 TARGET_MAX32630 J1.9 |
whismanoid | 0:3edb3708c8c5 | 907 | #endif |
whismanoid | 0:3edb3708c8c5 | 908 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 909 | DigitalInOut digitalInOut11(P6_0, PIN_INPUT, PullUp, 1); // P6_0 TARGET_MAX32630 J1.10 |
whismanoid | 0:3edb3708c8c5 | 910 | #endif |
whismanoid | 0:3edb3708c8c5 | 911 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 912 | DigitalInOut digitalInOut12(P5_0, PIN_INPUT, PullUp, 1); // P5_0 TARGET_MAX32630 J1.11 |
whismanoid | 0:3edb3708c8c5 | 913 | #endif |
whismanoid | 0:3edb3708c8c5 | 914 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 915 | DigitalInOut digitalInOut13(P5_1, PIN_INPUT, PullUp, 1); // P5_1 TARGET_MAX32630 J1.12 |
whismanoid | 0:3edb3708c8c5 | 916 | #endif |
whismanoid | 0:3edb3708c8c5 | 917 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 918 | DigitalInOut digitalInOut14(P5_2, PIN_INPUT, PullUp, 1); // P5_2 TARGET_MAX32630 J1.13 |
whismanoid | 0:3edb3708c8c5 | 919 | #endif |
whismanoid | 0:3edb3708c8c5 | 920 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 921 | DigitalInOut digitalInOut15(P3_0, PIN_INPUT, PullUp, 1); // P3_0 TARGET_MAX32630 J1.14 |
whismanoid | 0:3edb3708c8c5 | 922 | #endif |
whismanoid | 0:3edb3708c8c5 | 923 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 924 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 925 | // TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM |
whismanoid | 0:3edb3708c8c5 | 926 | // +-------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 927 | // | MAX32625MBED Arduino UNO header | |
whismanoid | 0:3edb3708c8c5 | 928 | // | | |
whismanoid | 0:3edb3708c8c5 | 929 | // | A5/SCL[ ] | P1_7 dig15 |
whismanoid | 0:3edb3708c8c5 | 930 | // | A4/SDA[ ] | P1_6 dig14 |
whismanoid | 0:3edb3708c8c5 | 931 | // | AREF=N/C[ ] | |
whismanoid | 0:3edb3708c8c5 | 932 | // | GND[ ] | |
whismanoid | 0:3edb3708c8c5 | 933 | // | [ ]N/C SCK/13[ ] | P1_0 dig13 |
whismanoid | 0:3edb3708c8c5 | 934 | // | [ ]IOREF=3V3 MISO/12[ ] | P1_2 dig12 |
whismanoid | 0:3edb3708c8c5 | 935 | // | [ ]RST MOSI/11[ ]~| P1_1 dig11 |
whismanoid | 0:3edb3708c8c5 | 936 | // | [ ]3V3 CS/10[ ]~| P1_3 dig10 |
whismanoid | 0:3edb3708c8c5 | 937 | // | [ ]5V0 9[ ]~| P1_5 dig9 |
whismanoid | 0:3edb3708c8c5 | 938 | // | [ ]GND 8[ ] | P1_4 dig8 |
whismanoid | 0:3edb3708c8c5 | 939 | // | [ ]GND | |
whismanoid | 0:3edb3708c8c5 | 940 | // | [ ]Vin 7[ ] | P0_7 dig7 |
whismanoid | 0:3edb3708c8c5 | 941 | // | 6[ ]~| P0_6 dig6 |
whismanoid | 0:3edb3708c8c5 | 942 | // AIN_0 | [ ]A0 5[ ]~| P0_5 dig5 |
whismanoid | 0:3edb3708c8c5 | 943 | // AIN_1 | [ ]A1 4[ ] | P0_4 dig4 |
whismanoid | 0:3edb3708c8c5 | 944 | // AIN_2 | [ ]A2 INT1/3[ ]~| P0_3 dig3 |
whismanoid | 0:3edb3708c8c5 | 945 | // AIN_3 | [ ]A3 INT0/2[ ] | P0_2 dig2 |
whismanoid | 0:3edb3708c8c5 | 946 | // dig16 P3_4 | [ ]A4/SDA RST SCK MISO TX>1[ ] | P0_1 dig1 |
whismanoid | 0:3edb3708c8c5 | 947 | // dig17 P3_5 | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | P0_0 dig0 |
whismanoid | 0:3edb3708c8c5 | 948 | // | [ ] [ ] [ ] | |
whismanoid | 0:3edb3708c8c5 | 949 | // | UNO_R3 GND MOSI 5V ____________/ |
whismanoid | 0:3edb3708c8c5 | 950 | // \_______________________/ |
whismanoid | 0:3edb3708c8c5 | 951 | // |
whismanoid | 0:3edb3708c8c5 | 952 | #define HAS_digitalInOut0 1 // P0_0 TARGET_MAX32625MBED D0 |
whismanoid | 0:3edb3708c8c5 | 953 | #define HAS_digitalInOut1 1 // P0_1 TARGET_MAX32625MBED D1 |
whismanoid | 0:3edb3708c8c5 | 954 | #if APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 955 | #define HAS_digitalInOut2 0 // P0_2 TARGET_MAX32625MBED D2 -- MAX11131 EOC DigitalIn |
whismanoid | 0:3edb3708c8c5 | 956 | #else |
whismanoid | 0:3edb3708c8c5 | 957 | #define HAS_digitalInOut2 1 // P0_2 TARGET_MAX32625MBED D2 |
whismanoid | 0:3edb3708c8c5 | 958 | #endif |
whismanoid | 0:3edb3708c8c5 | 959 | #define HAS_digitalInOut3 1 // P0_3 TARGET_MAX32625MBED D3 |
whismanoid | 0:3edb3708c8c5 | 960 | #define HAS_digitalInOut4 1 // P0_4 TARGET_MAX32625MBED D4 |
whismanoid | 0:3edb3708c8c5 | 961 | #define HAS_digitalInOut5 1 // P0_5 TARGET_MAX32625MBED D5 |
whismanoid | 0:3edb3708c8c5 | 962 | #define HAS_digitalInOut6 1 // P0_6 TARGET_MAX32625MBED D6 |
whismanoid | 0:3edb3708c8c5 | 963 | #define HAS_digitalInOut7 1 // P0_7 TARGET_MAX32625MBED D7 |
whismanoid | 0:3edb3708c8c5 | 964 | #define HAS_digitalInOut8 1 // P1_4 TARGET_MAX32625MBED D8 |
whismanoid | 0:3edb3708c8c5 | 965 | #if APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 966 | #define HAS_digitalInOut9 0 // P1_5 TARGET_MAX32625MBED D9 -- MAX11131 CNVST DigitalOut |
whismanoid | 0:3edb3708c8c5 | 967 | #else |
whismanoid | 0:3edb3708c8c5 | 968 | #define HAS_digitalInOut9 1 // P1_5 TARGET_MAX32625MBED D9 |
whismanoid | 0:3edb3708c8c5 | 969 | #endif |
whismanoid | 0:3edb3708c8c5 | 970 | #if HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 971 | // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 972 | #define HAS_digitalInOut10 0 // P1_3 TARGET_MAX32635MBED CS/10 |
whismanoid | 0:3edb3708c8c5 | 973 | #define HAS_digitalInOut11 0 // P1_1 TARGET_MAX32635MBED MOSI/11 |
whismanoid | 0:3edb3708c8c5 | 974 | #define HAS_digitalInOut12 0 // P1_2 TARGET_MAX32635MBED MISO/12 |
whismanoid | 0:3edb3708c8c5 | 975 | #define HAS_digitalInOut13 0 // P1_0 TARGET_MAX32635MBED SCK/13 |
whismanoid | 0:3edb3708c8c5 | 976 | #else // HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 977 | #define HAS_digitalInOut10 1 // P1_3 TARGET_MAX32635MBED CS/10 |
whismanoid | 0:3edb3708c8c5 | 978 | #define HAS_digitalInOut11 1 // P1_1 TARGET_MAX32635MBED MOSI/11 |
whismanoid | 0:3edb3708c8c5 | 979 | #define HAS_digitalInOut12 1 // P1_2 TARGET_MAX32635MBED MISO/12 |
whismanoid | 0:3edb3708c8c5 | 980 | #define HAS_digitalInOut13 1 // P1_0 TARGET_MAX32635MBED SCK/13 |
whismanoid | 0:3edb3708c8c5 | 981 | #endif // HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 982 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 983 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 984 | #define HAS_digitalInOut14 0 // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 985 | #define HAS_digitalInOut15 0 // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 986 | #define HAS_digitalInOut16 0 // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 987 | #define HAS_digitalInOut17 0 // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 988 | #else // HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 989 | #define HAS_digitalInOut14 1 // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 990 | #define HAS_digitalInOut15 1 // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 991 | #define HAS_digitalInOut16 1 // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 992 | #define HAS_digitalInOut17 1 // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 993 | #endif // HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 994 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 995 | DigitalInOut digitalInOut0(P0_0, PIN_INPUT, PullUp, 1); // P0_0 TARGET_MAX32625MBED D0 |
whismanoid | 0:3edb3708c8c5 | 996 | #endif |
whismanoid | 0:3edb3708c8c5 | 997 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 998 | DigitalInOut digitalInOut1(P0_1, PIN_INPUT, PullUp, 1); // P0_1 TARGET_MAX32625MBED D1 |
whismanoid | 0:3edb3708c8c5 | 999 | #endif |
whismanoid | 0:3edb3708c8c5 | 1000 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 1001 | DigitalInOut digitalInOut2(P0_2, PIN_INPUT, PullUp, 1); // P0_2 TARGET_MAX32625MBED D2 |
whismanoid | 0:3edb3708c8c5 | 1002 | #endif |
whismanoid | 0:3edb3708c8c5 | 1003 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 1004 | DigitalInOut digitalInOut3(P0_3, PIN_INPUT, PullUp, 1); // P0_3 TARGET_MAX32625MBED D3 |
whismanoid | 0:3edb3708c8c5 | 1005 | #endif |
whismanoid | 0:3edb3708c8c5 | 1006 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 1007 | DigitalInOut digitalInOut4(P0_4, PIN_INPUT, PullUp, 1); // P0_4 TARGET_MAX32625MBED D4 |
whismanoid | 0:3edb3708c8c5 | 1008 | #endif |
whismanoid | 0:3edb3708c8c5 | 1009 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 1010 | DigitalInOut digitalInOut5(P0_5, PIN_INPUT, PullUp, 1); // P0_5 TARGET_MAX32625MBED D5 |
whismanoid | 0:3edb3708c8c5 | 1011 | #endif |
whismanoid | 0:3edb3708c8c5 | 1012 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 1013 | DigitalInOut digitalInOut6(P0_6, PIN_INPUT, PullUp, 1); // P0_6 TARGET_MAX32625MBED D6 |
whismanoid | 0:3edb3708c8c5 | 1014 | #endif |
whismanoid | 0:3edb3708c8c5 | 1015 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 1016 | DigitalInOut digitalInOut7(P0_7, PIN_INPUT, PullUp, 1); // P0_7 TARGET_MAX32625MBED D7 |
whismanoid | 0:3edb3708c8c5 | 1017 | #endif |
whismanoid | 0:3edb3708c8c5 | 1018 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 1019 | DigitalInOut digitalInOut8(P1_4, PIN_INPUT, PullUp, 1); // P1_4 TARGET_MAX32625MBED D8 |
whismanoid | 0:3edb3708c8c5 | 1020 | #endif |
whismanoid | 0:3edb3708c8c5 | 1021 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 1022 | DigitalInOut digitalInOut9(P1_5, PIN_INPUT, PullUp, 1); // P1_5 TARGET_MAX32625MBED D9 |
whismanoid | 0:3edb3708c8c5 | 1023 | #endif |
whismanoid | 0:3edb3708c8c5 | 1024 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 1025 | DigitalInOut digitalInOut10(P1_3, PIN_INPUT, PullUp, 1); // P1_3 TARGET_MAX32635MBED CS/10 |
whismanoid | 0:3edb3708c8c5 | 1026 | #endif |
whismanoid | 0:3edb3708c8c5 | 1027 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 1028 | DigitalInOut digitalInOut11(P1_1, PIN_INPUT, PullUp, 1); // P1_1 TARGET_MAX32635MBED MOSI/11 |
whismanoid | 0:3edb3708c8c5 | 1029 | #endif |
whismanoid | 0:3edb3708c8c5 | 1030 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 1031 | DigitalInOut digitalInOut12(P1_2, PIN_INPUT, PullUp, 1); // P1_2 TARGET_MAX32635MBED MISO/12 |
whismanoid | 0:3edb3708c8c5 | 1032 | #endif |
whismanoid | 0:3edb3708c8c5 | 1033 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 1034 | DigitalInOut digitalInOut13(P1_0, PIN_INPUT, PullUp, 1); // P1_0 TARGET_MAX32635MBED SCK/13 |
whismanoid | 0:3edb3708c8c5 | 1035 | #endif |
whismanoid | 0:3edb3708c8c5 | 1036 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 1037 | // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5 |
whismanoid | 0:3edb3708c8c5 | 1038 | // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain |
whismanoid | 0:3edb3708c8c5 | 1039 | DigitalInOut digitalInOut14(P1_6, PIN_INPUT, OpenDrain, 1); // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 1040 | #endif |
whismanoid | 0:3edb3708c8c5 | 1041 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 1042 | // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5 |
whismanoid | 0:3edb3708c8c5 | 1043 | DigitalInOut digitalInOut15(P1_7, PIN_INPUT, OpenDrain, 1); // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 1044 | #endif |
whismanoid | 0:3edb3708c8c5 | 1045 | #if HAS_digitalInOut16 |
whismanoid | 0:3edb3708c8c5 | 1046 | // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5 |
whismanoid | 0:3edb3708c8c5 | 1047 | // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain |
whismanoid | 0:3edb3708c8c5 | 1048 | // PullUp-->3.4V, PullDown-->1.7V, PullNone-->3.5V, OpenDrain-->0.00V |
whismanoid | 0:3edb3708c8c5 | 1049 | DigitalInOut digitalInOut16(P3_4, PIN_INPUT, OpenDrain, 0); // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 1050 | #endif |
whismanoid | 0:3edb3708c8c5 | 1051 | #if HAS_digitalInOut17 |
whismanoid | 0:3edb3708c8c5 | 1052 | // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5 |
whismanoid | 0:3edb3708c8c5 | 1053 | DigitalInOut digitalInOut17(P3_5, PIN_INPUT, OpenDrain, 0); // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 1054 | #endif |
whismanoid | 0:3edb3708c8c5 | 1055 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1056 | #elif defined(TARGET_NUCLEO_F446RE) || defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 1057 | #define HAS_digitalInOut0 0 // P0_0 TARGET_MAX32625MBED D0 |
whismanoid | 0:3edb3708c8c5 | 1058 | #define HAS_digitalInOut1 0 // P0_1 TARGET_MAX32625MBED D1 |
whismanoid | 0:3edb3708c8c5 | 1059 | #if APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 1060 | #define HAS_digitalInOut2 0 // P0_2 TARGET_MAX32625MBED D2 -- MAX11131 EOC DigitalIn |
whismanoid | 0:3edb3708c8c5 | 1061 | #else |
whismanoid | 0:3edb3708c8c5 | 1062 | #define HAS_digitalInOut2 1 // P0_2 TARGET_MAX32625MBED D2 |
whismanoid | 0:3edb3708c8c5 | 1063 | #endif |
whismanoid | 0:3edb3708c8c5 | 1064 | #define HAS_digitalInOut3 1 // P0_3 TARGET_MAX32625MBED D3 |
whismanoid | 0:3edb3708c8c5 | 1065 | #define HAS_digitalInOut4 1 // P0_4 TARGET_MAX32625MBED D4 |
whismanoid | 0:3edb3708c8c5 | 1066 | #define HAS_digitalInOut5 1 // P0_5 TARGET_MAX32625MBED D5 |
whismanoid | 0:3edb3708c8c5 | 1067 | #define HAS_digitalInOut6 1 // P0_6 TARGET_MAX32625MBED D6 |
whismanoid | 0:3edb3708c8c5 | 1068 | #define HAS_digitalInOut7 1 // P0_7 TARGET_MAX32625MBED D7 |
whismanoid | 0:3edb3708c8c5 | 1069 | #if APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 1070 | #define HAS_digitalInOut8 0 // P1_4 TARGET_MAX32625MBED D8 -- MAX5715 CLRb DigitalOut |
whismanoid | 0:3edb3708c8c5 | 1071 | #else |
whismanoid | 0:3edb3708c8c5 | 1072 | #define HAS_digitalInOut8 1 // P1_4 TARGET_MAX32625MBED D8 |
whismanoid | 0:3edb3708c8c5 | 1073 | #endif |
whismanoid | 0:3edb3708c8c5 | 1074 | #if APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 1075 | #define HAS_digitalInOut9 0 // P1_5 TARGET_MAX32625MBED D9 -- MAX5715 LDACb DigitalOut |
whismanoid | 0:3edb3708c8c5 | 1076 | #elif APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 1077 | #define HAS_digitalInOut9 0 // P1_5 TARGET_MAX32625MBED D9 -- MAX11131 CNVST DigitalOut |
whismanoid | 0:3edb3708c8c5 | 1078 | #else |
whismanoid | 0:3edb3708c8c5 | 1079 | #define HAS_digitalInOut9 1 // P1_5 TARGET_MAX32625MBED D9 |
whismanoid | 0:3edb3708c8c5 | 1080 | #endif |
whismanoid | 0:3edb3708c8c5 | 1081 | #if HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 1082 | // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 1083 | // Arduino digital pin D10 SPI function is CS/10 |
whismanoid | 0:3edb3708c8c5 | 1084 | // Arduino digital pin D11 SPI function is MOSI/11 |
whismanoid | 0:3edb3708c8c5 | 1085 | // Arduino digital pin D12 SPI function is MISO/12 |
whismanoid | 0:3edb3708c8c5 | 1086 | // Arduino digital pin D13 SPI function is SCK/13 |
whismanoid | 0:3edb3708c8c5 | 1087 | #define HAS_digitalInOut10 0 |
whismanoid | 0:3edb3708c8c5 | 1088 | #define HAS_digitalInOut11 0 |
whismanoid | 0:3edb3708c8c5 | 1089 | #define HAS_digitalInOut12 0 |
whismanoid | 0:3edb3708c8c5 | 1090 | #define HAS_digitalInOut13 0 |
whismanoid | 0:3edb3708c8c5 | 1091 | #else // HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 1092 | #define HAS_digitalInOut10 1 |
whismanoid | 0:3edb3708c8c5 | 1093 | #define HAS_digitalInOut11 1 |
whismanoid | 0:3edb3708c8c5 | 1094 | #define HAS_digitalInOut12 1 |
whismanoid | 0:3edb3708c8c5 | 1095 | #define HAS_digitalInOut13 1 |
whismanoid | 0:3edb3708c8c5 | 1096 | #endif // HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 1097 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 1098 | // avoid resource conflict between P5_7, P6_0 I2C and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 1099 | // Arduino digital pin D14 I2C function is A4/SDA (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 1100 | // Arduino digital pin D15 I2C function is A5/SCL (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 1101 | // Arduino digital pin D16 I2C function is A4/SDA (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 1102 | // Arduino digital pin D17 I2C function is A5/SCL (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 1103 | #define HAS_digitalInOut14 0 |
whismanoid | 0:3edb3708c8c5 | 1104 | #define HAS_digitalInOut15 0 |
whismanoid | 0:3edb3708c8c5 | 1105 | #define HAS_digitalInOut16 0 |
whismanoid | 0:3edb3708c8c5 | 1106 | #define HAS_digitalInOut17 0 |
whismanoid | 0:3edb3708c8c5 | 1107 | #else // HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 1108 | #define HAS_digitalInOut14 1 |
whismanoid | 0:3edb3708c8c5 | 1109 | #define HAS_digitalInOut15 1 |
whismanoid | 0:3edb3708c8c5 | 1110 | #define HAS_digitalInOut16 0 |
whismanoid | 0:3edb3708c8c5 | 1111 | #define HAS_digitalInOut17 0 |
whismanoid | 0:3edb3708c8c5 | 1112 | #endif // HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 1113 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 1114 | DigitalInOut digitalInOut0(D0, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1115 | #endif |
whismanoid | 0:3edb3708c8c5 | 1116 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 1117 | DigitalInOut digitalInOut1(D1, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1118 | #endif |
whismanoid | 0:3edb3708c8c5 | 1119 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 1120 | DigitalInOut digitalInOut2(D2, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1121 | #endif |
whismanoid | 0:3edb3708c8c5 | 1122 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 1123 | DigitalInOut digitalInOut3(D3, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1124 | #endif |
whismanoid | 0:3edb3708c8c5 | 1125 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 1126 | DigitalInOut digitalInOut4(D4, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1127 | #endif |
whismanoid | 0:3edb3708c8c5 | 1128 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 1129 | DigitalInOut digitalInOut5(D5, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1130 | #endif |
whismanoid | 0:3edb3708c8c5 | 1131 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 1132 | DigitalInOut digitalInOut6(D6, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1133 | #endif |
whismanoid | 0:3edb3708c8c5 | 1134 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 1135 | DigitalInOut digitalInOut7(D7, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1136 | #endif |
whismanoid | 0:3edb3708c8c5 | 1137 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 1138 | DigitalInOut digitalInOut8(D8, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1139 | #endif |
whismanoid | 0:3edb3708c8c5 | 1140 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 1141 | DigitalInOut digitalInOut9(D9, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1142 | #endif |
whismanoid | 0:3edb3708c8c5 | 1143 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 1144 | // Arduino digital pin D10 SPI function is CS/10 |
whismanoid | 0:3edb3708c8c5 | 1145 | DigitalInOut digitalInOut10(D10, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1146 | #endif |
whismanoid | 0:3edb3708c8c5 | 1147 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 1148 | // Arduino digital pin D11 SPI function is MOSI/11 |
whismanoid | 0:3edb3708c8c5 | 1149 | DigitalInOut digitalInOut11(D11, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1150 | #endif |
whismanoid | 0:3edb3708c8c5 | 1151 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 1152 | // Arduino digital pin D12 SPI function is MISO/12 |
whismanoid | 0:3edb3708c8c5 | 1153 | DigitalInOut digitalInOut12(D12, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1154 | #endif |
whismanoid | 0:3edb3708c8c5 | 1155 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 1156 | // Arduino digital pin D13 SPI function is SCK/13 |
whismanoid | 0:3edb3708c8c5 | 1157 | DigitalInOut digitalInOut13(D13, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1158 | #endif |
whismanoid | 0:3edb3708c8c5 | 1159 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 1160 | // Arduino digital pin D14 I2C function is A4/SDA (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 1161 | DigitalInOut digitalInOut14(D14, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1162 | #endif |
whismanoid | 0:3edb3708c8c5 | 1163 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 1164 | // Arduino digital pin D15 I2C function is A5/SCL (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 1165 | DigitalInOut digitalInOut15(D15, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1166 | #endif |
whismanoid | 0:3edb3708c8c5 | 1167 | #if HAS_digitalInOut16 |
whismanoid | 0:3edb3708c8c5 | 1168 | // Arduino digital pin D16 I2C function is A4/SDA (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 1169 | DigitalInOut digitalInOut16(D16, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1170 | #endif |
whismanoid | 0:3edb3708c8c5 | 1171 | #if HAS_digitalInOut17 |
whismanoid | 0:3edb3708c8c5 | 1172 | // Arduino digital pin D17 I2C function is A5/SCL (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 1173 | DigitalInOut digitalInOut17(D17, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1174 | #endif |
whismanoid | 0:3edb3708c8c5 | 1175 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1176 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 1177 | #define HAS_digitalInOut0 1 |
whismanoid | 0:3edb3708c8c5 | 1178 | #define HAS_digitalInOut1 1 |
whismanoid | 0:3edb3708c8c5 | 1179 | #define HAS_digitalInOut2 1 |
whismanoid | 0:3edb3708c8c5 | 1180 | #define HAS_digitalInOut3 1 |
whismanoid | 0:3edb3708c8c5 | 1181 | #define HAS_digitalInOut4 1 |
whismanoid | 0:3edb3708c8c5 | 1182 | #define HAS_digitalInOut5 1 |
whismanoid | 0:3edb3708c8c5 | 1183 | #define HAS_digitalInOut6 1 |
whismanoid | 0:3edb3708c8c5 | 1184 | #define HAS_digitalInOut7 1 |
whismanoid | 0:3edb3708c8c5 | 1185 | #define HAS_digitalInOut8 1 |
whismanoid | 0:3edb3708c8c5 | 1186 | #define HAS_digitalInOut9 1 |
whismanoid | 0:3edb3708c8c5 | 1187 | // #define HAS_digitalInOut10 1 |
whismanoid | 0:3edb3708c8c5 | 1188 | // #define HAS_digitalInOut11 1 |
whismanoid | 0:3edb3708c8c5 | 1189 | // #define HAS_digitalInOut12 1 |
whismanoid | 0:3edb3708c8c5 | 1190 | // #define HAS_digitalInOut13 1 |
whismanoid | 0:3edb3708c8c5 | 1191 | // #define HAS_digitalInOut14 1 |
whismanoid | 0:3edb3708c8c5 | 1192 | // #define HAS_digitalInOut15 1 |
whismanoid | 0:3edb3708c8c5 | 1193 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 1194 | DigitalInOut digitalInOut0(p5, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.9/I2STX_SDA/MOSI1/MAT2.3 |
whismanoid | 0:3edb3708c8c5 | 1195 | #endif |
whismanoid | 0:3edb3708c8c5 | 1196 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 1197 | DigitalInOut digitalInOut1(p6, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.8/I2STX_WS/MISO1/MAT2.2 |
whismanoid | 0:3edb3708c8c5 | 1198 | #endif |
whismanoid | 0:3edb3708c8c5 | 1199 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 1200 | DigitalInOut digitalInOut2(p7, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.7/I2STX_CLK/SCK1/MAT2.1 |
whismanoid | 0:3edb3708c8c5 | 1201 | #endif |
whismanoid | 0:3edb3708c8c5 | 1202 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 1203 | DigitalInOut digitalInOut3(p8, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.6/I2SRX_SDA/SSEL1/MAT2.0 |
whismanoid | 0:3edb3708c8c5 | 1204 | #endif |
whismanoid | 0:3edb3708c8c5 | 1205 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 1206 | DigitalInOut digitalInOut4(p9, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.0/CAN_RX1/TXD3/SDA1 |
whismanoid | 0:3edb3708c8c5 | 1207 | #endif |
whismanoid | 0:3edb3708c8c5 | 1208 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 1209 | DigitalInOut digitalInOut5(p10, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.1/CAN_TX1/RXD3/SCL1 |
whismanoid | 0:3edb3708c8c5 | 1210 | #endif |
whismanoid | 0:3edb3708c8c5 | 1211 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 1212 | DigitalInOut digitalInOut6(p11, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.18/DCD1/MOSI0/MOSI1 |
whismanoid | 0:3edb3708c8c5 | 1213 | #endif |
whismanoid | 0:3edb3708c8c5 | 1214 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 1215 | DigitalInOut digitalInOut7(p12, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.17/CTS1/MISO0/MISO |
whismanoid | 0:3edb3708c8c5 | 1216 | #endif |
whismanoid | 0:3edb3708c8c5 | 1217 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 1218 | DigitalInOut digitalInOut8(p13, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.15/TXD1/SCK0/SCK |
whismanoid | 0:3edb3708c8c5 | 1219 | #endif |
whismanoid | 0:3edb3708c8c5 | 1220 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 1221 | DigitalInOut digitalInOut9(p14, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.16/RXD1/SSEL0/SSEL |
whismanoid | 0:3edb3708c8c5 | 1222 | #endif |
whismanoid | 0:3edb3708c8c5 | 1223 | // |
whismanoid | 0:3edb3708c8c5 | 1224 | // these pins support analog input analogIn0 .. analogIn5 |
whismanoid | 0:3edb3708c8c5 | 1225 | //DigitalInOut digitalInOut_(p15, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.23/AD0.0/I2SRX_CLK/CAP3.0 |
whismanoid | 0:3edb3708c8c5 | 1226 | //DigitalInOut digitalInOut_(p16, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.24/AD0.1/I2SRX_WS/CAP3.1 |
whismanoid | 0:3edb3708c8c5 | 1227 | //DigitalInOut digitalInOut_(p17, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.25/AD0.2/I2SRX_SDA/TXD3 |
whismanoid | 0:3edb3708c8c5 | 1228 | //DigitalInOut digitalInOut_(p18, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.26/AD0.3/AOUT/RXD3 |
whismanoid | 0:3edb3708c8c5 | 1229 | //DigitalInOut digitalInOut_(p19, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P1.30/VBUS/AD0.4 |
whismanoid | 0:3edb3708c8c5 | 1230 | //DigitalInOut digitalInOut_(p20, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P1.31/SCK1/AD0.5 |
whismanoid | 0:3edb3708c8c5 | 1231 | // |
whismanoid | 0:3edb3708c8c5 | 1232 | // these pins support PWM pwmDriver1 .. pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 1233 | //DigitalInOut digitalInOut_(p21, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.5/PWM1.6/DTR1/TRACEDATA0 |
whismanoid | 0:3edb3708c8c5 | 1234 | //DigitalInOut digitalInOut_(p22, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.4/PWM1.5/DSR1/TRACEDATA1 |
whismanoid | 0:3edb3708c8c5 | 1235 | //DigitalInOut digitalInOut_(p23, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.3/PWM1.4/DCD1/TRACEDATA2 |
whismanoid | 0:3edb3708c8c5 | 1236 | //DigitalInOut digitalInOut_(p24, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.2/PWM1.3/CTS1/TRACEDATA3 |
whismanoid | 0:3edb3708c8c5 | 1237 | //DigitalInOut digitalInOut_(p25, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.1/PWM1.2/RXD1 |
whismanoid | 0:3edb3708c8c5 | 1238 | //DigitalInOut digitalInOut_(p26, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P2.0/PWM1.1/TXD1/TRACECLK |
whismanoid | 0:3edb3708c8c5 | 1239 | // |
whismanoid | 0:3edb3708c8c5 | 1240 | // these could be additional digitalInOut pins |
whismanoid | 0:3edb3708c8c5 | 1241 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 1242 | DigitalInOut digitalInOut10(p27, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.11/RXD2/SCL2/MAT3.1 |
whismanoid | 0:3edb3708c8c5 | 1243 | #endif |
whismanoid | 0:3edb3708c8c5 | 1244 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 1245 | DigitalInOut digitalInOut11(p28, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.10/TXD2/SDA2/MAT3.0 |
whismanoid | 0:3edb3708c8c5 | 1246 | #endif |
whismanoid | 0:3edb3708c8c5 | 1247 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 1248 | DigitalInOut digitalInOut12(p29, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.5/I2SRX_WS/CAN_TX2/CAP2.1 |
whismanoid | 0:3edb3708c8c5 | 1249 | #endif |
whismanoid | 0:3edb3708c8c5 | 1250 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 1251 | DigitalInOut digitalInOut13(p30, PIN_INPUT, PullUp, 1); // TARGET_LPC1768 P0.4/I2SRX_CLK/CAN_RX2/CAP2.0 |
whismanoid | 0:3edb3708c8c5 | 1252 | #endif |
whismanoid | 0:3edb3708c8c5 | 1253 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 1254 | DigitalInOut digitalInOut14(___, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1255 | #endif |
whismanoid | 0:3edb3708c8c5 | 1256 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 1257 | DigitalInOut digitalInOut15(___, PIN_INPUT, PullUp, 1); |
whismanoid | 0:3edb3708c8c5 | 1258 | #endif |
whismanoid | 0:3edb3708c8c5 | 1259 | #else |
whismanoid | 0:3edb3708c8c5 | 1260 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 1261 | #endif |
whismanoid | 0:3edb3708c8c5 | 1262 | // uncrustify-0.66.1 *INDENT-ON* |
whismanoid | 0:3edb3708c8c5 | 1263 | #if HAS_digitalInOut0 || HAS_digitalInOut1 \ |
whismanoid | 0:3edb3708c8c5 | 1264 | || HAS_digitalInOut2 || HAS_digitalInOut3 \ |
whismanoid | 0:3edb3708c8c5 | 1265 | || HAS_digitalInOut4 || HAS_digitalInOut5 \ |
whismanoid | 0:3edb3708c8c5 | 1266 | || HAS_digitalInOut6 || HAS_digitalInOut7 \ |
whismanoid | 0:3edb3708c8c5 | 1267 | || HAS_digitalInOut8 || HAS_digitalInOut9 \ |
whismanoid | 0:3edb3708c8c5 | 1268 | || HAS_digitalInOut10 || HAS_digitalInOut11 \ |
whismanoid | 0:3edb3708c8c5 | 1269 | || HAS_digitalInOut12 || HAS_digitalInOut13 \ |
whismanoid | 0:3edb3708c8c5 | 1270 | || HAS_digitalInOut14 || HAS_digitalInOut15 \ |
whismanoid | 0:3edb3708c8c5 | 1271 | || HAS_digitalInOut16 || HAS_digitalInOut17 |
whismanoid | 0:3edb3708c8c5 | 1272 | #define HAS_digitalInOuts 1 |
whismanoid | 0:3edb3708c8c5 | 1273 | #endif |
whismanoid | 0:3edb3708c8c5 | 1274 | |
whismanoid | 0:3edb3708c8c5 | 1275 | // uncrustify-0.66.1 *INDENT-OFF* |
whismanoid | 0:3edb3708c8c5 | 1276 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1277 | // Declare the PwmOut driver |
whismanoid | 0:3edb3708c8c5 | 1278 | // Optional PwmOut support. If there is only one it should be pwmDriver1. |
whismanoid | 0:3edb3708c8c5 | 1279 | // P) PWM pin#, duty cycle |
whismanoid | 0:3edb3708c8c5 | 1280 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 1281 | // +-------------[microUSB]-------------+ |
whismanoid | 0:3edb3708c8c5 | 1282 | // | J1 MAX32630FTHR J2 | |
whismanoid | 0:3edb3708c8c5 | 1283 | // | [ ] RST GND [ ] | |
whismanoid | 0:3edb3708c8c5 | 1284 | // | [ ] 3V3 BAT+[ ] | |
whismanoid | 0:3edb3708c8c5 | 1285 | // | [ ] 1V8 reset SW1 | |
whismanoid | 0:3edb3708c8c5 | 1286 | // | [ ] GND J4 J3 | |
whismanoid | 0:3edb3708c8c5 | 1287 | // | [ ] AIN_0 1.2Vfs (bat) SYS [ ] | |
whismanoid | 0:3edb3708c8c5 | 1288 | // | [ ] AIN_1 1.2Vfs PWR [ ] | |
whismanoid | 0:3edb3708c8c5 | 1289 | // | [ ] AIN_2 1.2Vfs +5V VBUS [ ] | |
whismanoid | 0:3edb3708c8c5 | 1290 | // | [ ] AIN_3 1.2Vfs 1-WIRE P4_0 [x] | pwm4 |
whismanoid | 0:3edb3708c8c5 | 1291 | // | [ ] P5_7 SDA2 SRN P5_6 [x] | pwm5 |
whismanoid | 0:3edb3708c8c5 | 1292 | // | [ ] P6_0 SCL2 SDIO3 P5_5 [x] | pwm6 |
whismanoid | 0:3edb3708c8c5 | 1293 | // pwm13 | [ ] P5_0 SCLK SDIO2 P5_4 [x] | pwm7 |
whismanoid | 0:3edb3708c8c5 | 1294 | // pwm14 | [ ] P5_1 MOSI SSEL P5_3 [x] | pwm8 |
whismanoid | 0:3edb3708c8c5 | 1295 | // pwm3 | [x] P5_2 MISO RTS P3_3 [x] | pwm9 |
whismanoid | 0:3edb3708c8c5 | 1296 | // pwm2 | [x] P3_0 RX CTS P3_2 [ ] | pwm10 |
whismanoid | 0:3edb3708c8c5 | 1297 | // pwm1 | [x] P3_1 TX SCL P3_5 [ ] | pwm11 |
whismanoid | 0:3edb3708c8c5 | 1298 | // | [ ] GND SDA P3_4 [ ] | pwm12 |
whismanoid | 0:3edb3708c8c5 | 1299 | // +------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 1300 | // MAX32630FTHR mbed PwmOut driver is limited to 32-bit counter value; |
whismanoid | 0:3edb3708c8c5 | 1301 | // see pwmout_update function in mbed-os/targets/TARGET_Maxim/TARGET_MAX32630/pwmout_api.c |
whismanoid | 0:3edb3708c8c5 | 1302 | // int div = (obj->period * (SystemCoreClock / 1000000))/32; |
whismanoid | 0:3edb3708c8c5 | 1303 | #if HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 1304 | // avoid resource conflict between P5_0, P5_1, P5_2 SPI and DigitalInOut |
whismanoid | 0:3edb3708c8c5 | 1305 | #define HAS_pwmDriver13 0 // P5_0 PT8 TARGET_MAX32630 J1.11 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1306 | #define HAS_pwmDriver14 0 // P5_1 PT9 TARGET_MAX32630 J1.12 pass ok; conflict PT9 P3_1 P5_1 |
whismanoid | 0:3edb3708c8c5 | 1307 | #define HAS_pwmDriver3 0 // P5_2 PT10 TARGET_MAX32630 J1.13 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1308 | #define HAS_pwmDriver2 0 // P3_0 PT8 TARGET_MAX32630 J1.14 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1309 | #endif |
whismanoid | 0:3edb3708c8c5 | 1310 | // #define HAS_pwmDriver0 0 // not assigned |
whismanoid | 0:3edb3708c8c5 | 1311 | # ifndef HAS_pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 1312 | //~ #define HAS_pwmDriver1 1 // P3_1 PT9 TARGET_MAX32630 J1.15 pass ok; conflict PT9 P3_1 P5_1 |
whismanoid | 0:3edb3708c8c5 | 1313 | # endif |
whismanoid | 0:3edb3708c8c5 | 1314 | # ifndef HAS_pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 1315 | #define HAS_pwmDriver2 1 // P3_0 PT8 TARGET_MAX32630 J1.14 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1316 | # endif |
whismanoid | 0:3edb3708c8c5 | 1317 | # ifndef HAS_pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 1318 | #define HAS_pwmDriver3 1 // P5_2 PT10 TARGET_MAX32630 J1.13 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1319 | # endif |
whismanoid | 0:3edb3708c8c5 | 1320 | # ifndef HAS_pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 1321 | //~ #define HAS_pwmDriver4 1 // P4_0 PT0 TARGET_MAX32630 J3.4 pass ok |
whismanoid | 0:3edb3708c8c5 | 1322 | # endif |
whismanoid | 0:3edb3708c8c5 | 1323 | # ifndef HAS_pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 1324 | //~ #define HAS_pwmDriver5 1 // P5_6 PT14 TARGET_MAX32630 J3.5 pass ok |
whismanoid | 0:3edb3708c8c5 | 1325 | # endif |
whismanoid | 0:3edb3708c8c5 | 1326 | # ifndef HAS_pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 1327 | //~ #define HAS_pwmDriver6 1 // P5_5 PT13 TARGET_MAX32630 J3.6 pass ok; conflict PT13 P3_5 P5_5 |
whismanoid | 0:3edb3708c8c5 | 1328 | # endif |
whismanoid | 0:3edb3708c8c5 | 1329 | # ifndef HAS_pwmDriver7 |
whismanoid | 0:3edb3708c8c5 | 1330 | //~ #define HAS_pwmDriver7 1 // P5_4 PT12 TARGET_MAX32630 J3.7 pass ok; conflict PT12 P3_4 P5_4 |
whismanoid | 0:3edb3708c8c5 | 1331 | # endif |
whismanoid | 0:3edb3708c8c5 | 1332 | # ifndef HAS_pwmDriver8 |
whismanoid | 0:3edb3708c8c5 | 1333 | //~ #define HAS_pwmDriver8 1 // P5_3 PT11 TARGET_MAX32630 J3.8 pass ok; conflict PT11 P3_3 P5_3 |
whismanoid | 0:3edb3708c8c5 | 1334 | # endif |
whismanoid | 0:3edb3708c8c5 | 1335 | # ifndef HAS_pwmDriver9 |
whismanoid | 0:3edb3708c8c5 | 1336 | // #define HAS_pwmDriver9 1 // P3_3 PT11 TARGET_MAX32630 J3.9 pass ok; conflict PT11 P3_3 P5_3 |
whismanoid | 0:3edb3708c8c5 | 1337 | # endif |
whismanoid | 0:3edb3708c8c5 | 1338 | # ifndef HAS_pwmDriver10 |
whismanoid | 0:3edb3708c8c5 | 1339 | // #define HAS_pwmDriver10 1 // P3_2 PT10 TARGET_MAX32630 J3.10 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1340 | # endif |
whismanoid | 0:3edb3708c8c5 | 1341 | # ifndef HAS_pwmDriver11 |
whismanoid | 0:3edb3708c8c5 | 1342 | // #define HAS_pwmDriver11 1 // P3_5 PT13 TARGET_MAX32630 J3.11 pass ok; conflict PT13 P3_5 P5_5 |
whismanoid | 0:3edb3708c8c5 | 1343 | # endif |
whismanoid | 0:3edb3708c8c5 | 1344 | # ifndef HAS_pwmDriver12 |
whismanoid | 0:3edb3708c8c5 | 1345 | // #define HAS_pwmDriver12 1 // P3_4 PT12 TARGET_MAX32630 J3.12 pass ok; conflict PT12 P3_4 P5_4 |
whismanoid | 0:3edb3708c8c5 | 1346 | # endif |
whismanoid | 0:3edb3708c8c5 | 1347 | # ifndef HAS_pwmDriver13 |
whismanoid | 0:3edb3708c8c5 | 1348 | // #define HAS_pwmDriver13 1 // P5_0 PT8 TARGET_MAX32630 J1.11 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1349 | # endif |
whismanoid | 0:3edb3708c8c5 | 1350 | # ifndef HAS_pwmDriver14 |
whismanoid | 0:3edb3708c8c5 | 1351 | // #define HAS_pwmDriver14 1 // P5_1 PT9 TARGET_MAX32630 J1.12 pass ok; conflict PT9 P3_1 P5_1 |
whismanoid | 0:3edb3708c8c5 | 1352 | # endif |
whismanoid | 0:3edb3708c8c5 | 1353 | # ifndef HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 1354 | // #define HAS_pwmDriver15 0 // not assigned |
whismanoid | 0:3edb3708c8c5 | 1355 | # endif |
whismanoid | 0:3edb3708c8c5 | 1356 | #if HAS_pwmDriver0 |
whismanoid | 0:3edb3708c8c5 | 1357 | PwmOut pwmDriver0(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1358 | #endif |
whismanoid | 0:3edb3708c8c5 | 1359 | #if HAS_pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 1360 | PwmOut pwmDriver1(P3_1); // PT9 TARGET_MAX32630 J1.15 pass ok |
whismanoid | 0:3edb3708c8c5 | 1361 | // Investigating which TARGET_MAX32630 PWM drivers work. |
whismanoid | 0:3edb3708c8c5 | 1362 | // fail assert = runtime failure at system boot, as the only pwm pin |
whismanoid | 0:3edb3708c8c5 | 1363 | // pass? = no runtime failure as the only pwm pin, may be ok |
whismanoid | 0:3edb3708c8c5 | 1364 | // pass ok = plays well with others |
whismanoid | 0:3edb3708c8c5 | 1365 | // PT0..PT15 identify which Pulse Train resource drives that GPIO pin |
whismanoid | 0:3edb3708c8c5 | 1366 | //PwmOut pwmDriver1(P5_7); // P5_7 PT15 TARGET_MAX32630 J1.9 fail assert; resource conflict |
whismanoid | 0:3edb3708c8c5 | 1367 | //PwmOut pwmDriver1(P6_0); // P6_0 PT0 TARGET_MAX32630 J1.10 fail assert; resource conflict |
whismanoid | 0:3edb3708c8c5 | 1368 | //PwmOut pwmDriver1(P5_0); // P5_0 PT8 TARGET_MAX32630 J1.11 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1369 | //PwmOut pwmDriver1(P5_1); // P5_1 PT9 TARGET_MAX32630 J1.12 pass ok; conflict PT9 P3_1 P5_1 |
whismanoid | 0:3edb3708c8c5 | 1370 | //PwmOut pwmDriver1(P5_2); // P5_2 PT10 TARGET_MAX32630 J1.13 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1371 | //PwmOut pwmDriver1(P3_0); // P3_0 PT8 TARGET_MAX32630 J1.14 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1372 | //PwmOut pwmDriver1(P3_1); // P3_1 PT9 TARGET_MAX32630 J1.15 pass ok; conflict PT9 P3_1 P5_1 |
whismanoid | 0:3edb3708c8c5 | 1373 | // |
whismanoid | 0:3edb3708c8c5 | 1374 | //PwmOut pwmDriver1(P4_0); // P4_0 PT0 TARGET_MAX32630 J3.4 pass ok |
whismanoid | 0:3edb3708c8c5 | 1375 | //PwmOut pwmDriver1(P5_6); // P5_6 PT14 TARGET_MAX32630 J3.5 pass ok |
whismanoid | 0:3edb3708c8c5 | 1376 | //PwmOut pwmDriver1(P5_5); // P5_5 PT13 TARGET_MAX32630 J3.6 pass ok; conflict PT13 P3_5 P5_5 |
whismanoid | 0:3edb3708c8c5 | 1377 | //PwmOut pwmDriver1(P5_4); // P5_4 PT12 TARGET_MAX32630 J3.7 pass ok; conflict PT12 P3_4 P5_4 |
whismanoid | 0:3edb3708c8c5 | 1378 | //PwmOut pwmDriver1(P5_3); // P5_3 PT11 TARGET_MAX32630 J3.8 pass ok; conflict PT11 P3_3 P5_3 |
whismanoid | 0:3edb3708c8c5 | 1379 | //PwmOut pwmDriver1(P3_3); // P3_3 PT11 TARGET_MAX32630 J3.9 pass ok; conflict PT11 P3_3 P5_3 |
whismanoid | 0:3edb3708c8c5 | 1380 | //PwmOut pwmDriver1(P3_2); // P3_2 PT10 TARGET_MAX32630 J3.10 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1381 | //PwmOut pwmDriver1(P3_5); // P3_5 PT13 TARGET_MAX32630 J3.11 pass ok; conflict PT13 P3_5 P5_5 |
whismanoid | 0:3edb3708c8c5 | 1382 | //PwmOut pwmDriver1(P3_4); // P3_4 PT12 TARGET_MAX32630 J3.12 pass ok; conflict PT12 P3_4 P5_4 |
whismanoid | 0:3edb3708c8c5 | 1383 | #endif |
whismanoid | 0:3edb3708c8c5 | 1384 | #if HAS_pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 1385 | PwmOut pwmDriver2(P3_0); // P3_0 PT8 TARGET_MAX32630 J1.14 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1386 | #endif |
whismanoid | 0:3edb3708c8c5 | 1387 | #if HAS_pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 1388 | PwmOut pwmDriver3(P5_2); // P5_2 PT10 TARGET_MAX32630 J1.13 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1389 | #endif |
whismanoid | 0:3edb3708c8c5 | 1390 | #if HAS_pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 1391 | PwmOut pwmDriver4(P4_0); // P4_0 PT0 TARGET_MAX32630 J3.4 pass ok |
whismanoid | 0:3edb3708c8c5 | 1392 | #endif |
whismanoid | 0:3edb3708c8c5 | 1393 | #if HAS_pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 1394 | PwmOut pwmDriver5(P5_6); // P5_6 PT14 TARGET_MAX32630 J3.5 pass ok |
whismanoid | 0:3edb3708c8c5 | 1395 | #endif |
whismanoid | 0:3edb3708c8c5 | 1396 | #if HAS_pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 1397 | PwmOut pwmDriver6(P5_5); // P5_5 PT13 TARGET_MAX32630 J3.6 pass ok; conflict PT13 P3_5 P5_5 |
whismanoid | 0:3edb3708c8c5 | 1398 | #endif |
whismanoid | 0:3edb3708c8c5 | 1399 | #if HAS_pwmDriver7 |
whismanoid | 0:3edb3708c8c5 | 1400 | PwmOut pwmDriver7(P5_4); // P5_4 PT12 TARGET_MAX32630 J3.7 pass ok; conflict PT12 P3_4 P5_4 |
whismanoid | 0:3edb3708c8c5 | 1401 | #endif |
whismanoid | 0:3edb3708c8c5 | 1402 | #if HAS_pwmDriver8 |
whismanoid | 0:3edb3708c8c5 | 1403 | PwmOut pwmDriver8(P5_3); // P5_3 PT11 TARGET_MAX32630 J3.8 pass ok; conflict PT11 P3_3 P5_3 |
whismanoid | 0:3edb3708c8c5 | 1404 | #endif |
whismanoid | 0:3edb3708c8c5 | 1405 | #if HAS_pwmDriver9 |
whismanoid | 0:3edb3708c8c5 | 1406 | PwmOut pwmDriver9(P3_3); // P3_3 PT11 TARGET_MAX32630 J3.9 pass ok; conflict PT11 P3_3 P5_3 |
whismanoid | 0:3edb3708c8c5 | 1407 | #endif |
whismanoid | 0:3edb3708c8c5 | 1408 | #if HAS_pwmDriver10 |
whismanoid | 0:3edb3708c8c5 | 1409 | PwmOut pwmDriver10(P3_2); // P3_2 PT10 TARGET_MAX32630 J3.10 pass ok; conflict PT10 P3_2 P5_2 |
whismanoid | 0:3edb3708c8c5 | 1410 | #endif |
whismanoid | 0:3edb3708c8c5 | 1411 | #if HAS_pwmDriver11 |
whismanoid | 0:3edb3708c8c5 | 1412 | PwmOut pwmDriver11(P3_5); // P3_5 PT13 TARGET_MAX32630 J3.11 pass ok; conflict PT13 P3_5 P5_5 |
whismanoid | 0:3edb3708c8c5 | 1413 | #endif |
whismanoid | 0:3edb3708c8c5 | 1414 | #if HAS_pwmDriver12 |
whismanoid | 0:3edb3708c8c5 | 1415 | PwmOut pwmDriver12(P3_4); // P3_4 PT12 TARGET_MAX32630 J3.12 pass ok; conflict PT12 P3_4 P5_4 |
whismanoid | 0:3edb3708c8c5 | 1416 | #endif |
whismanoid | 0:3edb3708c8c5 | 1417 | #if HAS_pwmDriver13 |
whismanoid | 0:3edb3708c8c5 | 1418 | PwmOut pwmDriver13(P5_0); // P5_0 PT8 TARGET_MAX32630 J1.11 pass ok; conflict PT8 P3_0 P5_0 |
whismanoid | 0:3edb3708c8c5 | 1419 | #endif |
whismanoid | 0:3edb3708c8c5 | 1420 | #if HAS_pwmDriver14 |
whismanoid | 0:3edb3708c8c5 | 1421 | PwmOut pwmDriver14(P5_1); // P5_1 PT9 TARGET_MAX32630 J1.12 pass ok; conflict PT9 P3_1 P5_1 |
whismanoid | 0:3edb3708c8c5 | 1422 | #endif |
whismanoid | 0:3edb3708c8c5 | 1423 | #if HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 1424 | PwmOut pwmDriver15(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1425 | #endif |
whismanoid | 0:3edb3708c8c5 | 1426 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1427 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 1428 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1429 | // TODO1: pwmDriver TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM |
whismanoid | 0:3edb3708c8c5 | 1430 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 1431 | // TARGET=LPC1768 ARM Cortex-M3 100 MHz 512kB flash 64kB SRAM |
whismanoid | 0:3edb3708c8c5 | 1432 | // +-------------[microUSB]-------------+ |
whismanoid | 0:3edb3708c8c5 | 1433 | // ______ | [ ] GND +3.3V VOUT [ ] | |
whismanoid | 0:3edb3708c8c5 | 1434 | // ______ | [ ] 4.5V<VIN<9.0V +5.0V VU [ ] | |
whismanoid | 0:3edb3708c8c5 | 1435 | // ______ | [ ] VB USB.IF- [ ] | |
whismanoid | 0:3edb3708c8c5 | 1436 | // ______ | [ ] nR USB.IF+ [ ] | |
whismanoid | 0:3edb3708c8c5 | 1437 | // ______ | [ ] p5 MOSI ETHERNET.RD- [ ] | |
whismanoid | 0:3edb3708c8c5 | 1438 | // ______ | [ ] p6 MISO ETHERNET.RD+ [ ] | |
whismanoid | 0:3edb3708c8c5 | 1439 | // ______ | [ ] p7 SCLK ETHERNET.TD- [ ] | |
whismanoid | 0:3edb3708c8c5 | 1440 | // ______ | [ ] p8 ETHERNET.TD+ [ ] | |
whismanoid | 0:3edb3708c8c5 | 1441 | // ______ | [ ] p9 TX SDA USB.D- [ ] | |
whismanoid | 0:3edb3708c8c5 | 1442 | // ______ | [ ] p10 RX SCL USB.D+ [ ] | |
whismanoid | 0:3edb3708c8c5 | 1443 | // ______ | [ ] p11 MOSI CAN-RD p30 [ ] | |
whismanoid | 0:3edb3708c8c5 | 1444 | // ______ | [ ] p12 MISO CAN-TD p29 [ ] | |
whismanoid | 0:3edb3708c8c5 | 1445 | // ______ | [ ] p13 TX SCLK SDA TX p28 [ ] | |
whismanoid | 0:3edb3708c8c5 | 1446 | // ______ | [ ] p14 RX SCL RX p27 [ ] | |
whismanoid | 0:3edb3708c8c5 | 1447 | // ______ | [ ] p15 AIN0 3.3Vfs PWM1 p26 [ ] | pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 1448 | // ______ | [ ] p16 AIN1 3.3Vfs PWM2 p25 [ ] | pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 1449 | // ______ | [ ] p17 AIN2 3.3Vfs PWM3 p24 [ ] | pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 1450 | // ______ | [ ] p18 AIN3 AOUT PWM4 p23 [ ] | pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 1451 | // ______ | [ ] p19 AIN4 3.3Vfs PWM5 p22 [ ] | pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 1452 | // ______ | [ ] p20 AIN5 3.3Vfs PWM6 p21 [ ] | pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 1453 | // +------------------------------------+ |
whismanoid | 0:3edb3708c8c5 | 1454 | // #define HAS_pwmDriver0 1 |
whismanoid | 0:3edb3708c8c5 | 1455 | # ifndef HAS_pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 1456 | #define HAS_pwmDriver1 1 |
whismanoid | 0:3edb3708c8c5 | 1457 | # endif |
whismanoid | 0:3edb3708c8c5 | 1458 | # ifndef HAS_pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 1459 | #define HAS_pwmDriver2 1 |
whismanoid | 0:3edb3708c8c5 | 1460 | # endif |
whismanoid | 0:3edb3708c8c5 | 1461 | # ifndef HAS_pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 1462 | #define HAS_pwmDriver3 1 |
whismanoid | 0:3edb3708c8c5 | 1463 | # endif |
whismanoid | 0:3edb3708c8c5 | 1464 | # ifndef HAS_pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 1465 | #define HAS_pwmDriver4 1 |
whismanoid | 0:3edb3708c8c5 | 1466 | # endif |
whismanoid | 0:3edb3708c8c5 | 1467 | # ifndef HAS_pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 1468 | #define HAS_pwmDriver5 1 |
whismanoid | 0:3edb3708c8c5 | 1469 | # endif |
whismanoid | 0:3edb3708c8c5 | 1470 | # ifndef HAS_pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 1471 | #define HAS_pwmDriver6 1 |
whismanoid | 0:3edb3708c8c5 | 1472 | # endif |
whismanoid | 0:3edb3708c8c5 | 1473 | # ifndef HAS_pwmDriver7 |
whismanoid | 0:3edb3708c8c5 | 1474 | // #define HAS_pwmDriver7 1 |
whismanoid | 0:3edb3708c8c5 | 1475 | # endif |
whismanoid | 0:3edb3708c8c5 | 1476 | # ifndef HAS_pwmDriver8 |
whismanoid | 0:3edb3708c8c5 | 1477 | // #define HAS_pwmDriver8 1 |
whismanoid | 0:3edb3708c8c5 | 1478 | # endif |
whismanoid | 0:3edb3708c8c5 | 1479 | # ifndef HAS_pwmDriver9 |
whismanoid | 0:3edb3708c8c5 | 1480 | // #define HAS_pwmDriver9 1 |
whismanoid | 0:3edb3708c8c5 | 1481 | # endif |
whismanoid | 0:3edb3708c8c5 | 1482 | # ifndef HAS_pwmDriver10 |
whismanoid | 0:3edb3708c8c5 | 1483 | // #define HAS_pwmDriver10 1 |
whismanoid | 0:3edb3708c8c5 | 1484 | # endif |
whismanoid | 0:3edb3708c8c5 | 1485 | # ifndef HAS_pwmDriver11 |
whismanoid | 0:3edb3708c8c5 | 1486 | // #define HAS_pwmDriver11 1 |
whismanoid | 0:3edb3708c8c5 | 1487 | # endif |
whismanoid | 0:3edb3708c8c5 | 1488 | # ifndef HAS_pwmDriver12 |
whismanoid | 0:3edb3708c8c5 | 1489 | // #define HAS_pwmDriver12 1 |
whismanoid | 0:3edb3708c8c5 | 1490 | # endif |
whismanoid | 0:3edb3708c8c5 | 1491 | # ifndef HAS_pwmDriver13 |
whismanoid | 0:3edb3708c8c5 | 1492 | // #define HAS_pwmDriver13 1 |
whismanoid | 0:3edb3708c8c5 | 1493 | # endif |
whismanoid | 0:3edb3708c8c5 | 1494 | # ifndef HAS_pwmDriver14 |
whismanoid | 0:3edb3708c8c5 | 1495 | // #define HAS_pwmDriver14 1 |
whismanoid | 0:3edb3708c8c5 | 1496 | # endif |
whismanoid | 0:3edb3708c8c5 | 1497 | # ifndef HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 1498 | // #define HAS_pwmDriver15 1 |
whismanoid | 0:3edb3708c8c5 | 1499 | # endif |
whismanoid | 0:3edb3708c8c5 | 1500 | #if HAS_pwmDriver0 |
whismanoid | 0:3edb3708c8c5 | 1501 | PwmOut pwmDriver0(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1502 | #endif |
whismanoid | 0:3edb3708c8c5 | 1503 | #if HAS_pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 1504 | PwmOut pwmDriver1(p26); // TARGET_LPC1768 P2.0/PWM1.1/TXD1/TRACECLK |
whismanoid | 0:3edb3708c8c5 | 1505 | #endif |
whismanoid | 0:3edb3708c8c5 | 1506 | #if HAS_pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 1507 | PwmOut pwmDriver2(p25); // TARGET_LPC1768 P2.1/PWM1.2/RXD1 |
whismanoid | 0:3edb3708c8c5 | 1508 | #endif |
whismanoid | 0:3edb3708c8c5 | 1509 | #if HAS_pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 1510 | PwmOut pwmDriver3(p24); // TARGET_LPC1768 P2.2/PWM1.3/CTS1/TRACEDATA3 |
whismanoid | 0:3edb3708c8c5 | 1511 | #endif |
whismanoid | 0:3edb3708c8c5 | 1512 | #if HAS_pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 1513 | PwmOut pwmDriver4(p23); // TARGET_LPC1768 P2.3/PWM1.4/DCD1/TRACEDATA2 |
whismanoid | 0:3edb3708c8c5 | 1514 | #endif |
whismanoid | 0:3edb3708c8c5 | 1515 | #if HAS_pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 1516 | PwmOut pwmDriver5(p22); // TARGET_LPC1768 P2.4/PWM1.5/DSR1/TRACEDATA1 |
whismanoid | 0:3edb3708c8c5 | 1517 | #endif |
whismanoid | 0:3edb3708c8c5 | 1518 | #if HAS_pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 1519 | PwmOut pwmDriver6(p21); // TARGET_LPC1768 P2.5/PWM1.6/DTR1/TRACEDATA0 |
whismanoid | 0:3edb3708c8c5 | 1520 | #endif |
whismanoid | 0:3edb3708c8c5 | 1521 | #if HAS_pwmDriver7 |
whismanoid | 0:3edb3708c8c5 | 1522 | PwmOut pwmDriver7(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1523 | #endif |
whismanoid | 0:3edb3708c8c5 | 1524 | #if HAS_pwmDriver8 |
whismanoid | 0:3edb3708c8c5 | 1525 | PwmOut pwmDriver8(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1526 | #endif |
whismanoid | 0:3edb3708c8c5 | 1527 | #if HAS_pwmDriver9 |
whismanoid | 0:3edb3708c8c5 | 1528 | PwmOut pwmDriver9(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1529 | #endif |
whismanoid | 0:3edb3708c8c5 | 1530 | #if HAS_pwmDriver10 |
whismanoid | 0:3edb3708c8c5 | 1531 | PwmOut pwmDriver10(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1532 | #endif |
whismanoid | 0:3edb3708c8c5 | 1533 | #if HAS_pwmDriver11 |
whismanoid | 0:3edb3708c8c5 | 1534 | PwmOut pwmDriver11(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1535 | #endif |
whismanoid | 0:3edb3708c8c5 | 1536 | #if HAS_pwmDriver12 |
whismanoid | 0:3edb3708c8c5 | 1537 | PwmOut pwmDriver12(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1538 | #endif |
whismanoid | 0:3edb3708c8c5 | 1539 | #if HAS_pwmDriver13 |
whismanoid | 0:3edb3708c8c5 | 1540 | PwmOut pwmDriver13(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1541 | #endif |
whismanoid | 0:3edb3708c8c5 | 1542 | #if HAS_pwmDriver14 |
whismanoid | 0:3edb3708c8c5 | 1543 | PwmOut pwmDriver14(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1544 | #endif |
whismanoid | 0:3edb3708c8c5 | 1545 | #if HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 1546 | PwmOut pwmDriver15(____); // not assigned |
whismanoid | 0:3edb3708c8c5 | 1547 | #endif |
whismanoid | 0:3edb3708c8c5 | 1548 | #else |
whismanoid | 0:3edb3708c8c5 | 1549 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 1550 | #endif |
whismanoid | 0:3edb3708c8c5 | 1551 | // uncrustify-0.66.1 *INDENT-ON* |
whismanoid | 0:3edb3708c8c5 | 1552 | #if HAS_pwmDriver0 || HAS_pwmDriver1 \ |
whismanoid | 0:3edb3708c8c5 | 1553 | || HAS_pwmDriver2 || HAS_pwmDriver3 \ |
whismanoid | 0:3edb3708c8c5 | 1554 | || HAS_pwmDriver4 || HAS_pwmDriver5 \ |
whismanoid | 0:3edb3708c8c5 | 1555 | || HAS_pwmDriver6 || HAS_pwmDriver7 \ |
whismanoid | 0:3edb3708c8c5 | 1556 | || HAS_pwmDriver8 || HAS_pwmDriver9 \ |
whismanoid | 0:3edb3708c8c5 | 1557 | || HAS_pwmDriver10 || HAS_pwmDriver11 \ |
whismanoid | 0:3edb3708c8c5 | 1558 | || HAS_pwmDriver12 || HAS_pwmDriver13 \ |
whismanoid | 0:3edb3708c8c5 | 1559 | || HAS_pwmDriver14 || HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 1560 | #define HAS_pwmDrivers 1 |
whismanoid | 0:3edb3708c8c5 | 1561 | #endif |
whismanoid | 0:3edb3708c8c5 | 1562 | |
whismanoid | 0:3edb3708c8c5 | 1563 | // uncrustify-0.66.1 *INDENT-OFF* |
whismanoid | 0:3edb3708c8c5 | 1564 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1565 | // Declare the AnalogIn driver |
whismanoid | 0:3edb3708c8c5 | 1566 | // Optional analogIn support. If there is only one it should be analogIn1. |
whismanoid | 0:3edb3708c8c5 | 1567 | // A) analog input |
whismanoid | 0:3edb3708c8c5 | 1568 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 1569 | #define HAS_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 1570 | #define HAS_analogIn1 1 |
whismanoid | 0:3edb3708c8c5 | 1571 | #define HAS_analogIn2 1 |
whismanoid | 0:3edb3708c8c5 | 1572 | #define HAS_analogIn3 1 |
whismanoid | 0:3edb3708c8c5 | 1573 | #define HAS_analogIn4 1 |
whismanoid | 0:3edb3708c8c5 | 1574 | #define HAS_analogIn5 1 |
whismanoid | 0:3edb3708c8c5 | 1575 | #define HAS_analogIn6 1 |
whismanoid | 0:3edb3708c8c5 | 1576 | #define HAS_analogIn7 1 |
whismanoid | 0:3edb3708c8c5 | 1577 | #define HAS_analogIn8 1 |
whismanoid | 0:3edb3708c8c5 | 1578 | #define HAS_analogIn9 1 |
whismanoid | 0:3edb3708c8c5 | 1579 | // #define HAS_analogIn10 0 |
whismanoid | 0:3edb3708c8c5 | 1580 | // #define HAS_analogIn11 0 |
whismanoid | 0:3edb3708c8c5 | 1581 | // #define HAS_analogIn12 0 |
whismanoid | 0:3edb3708c8c5 | 1582 | // #define HAS_analogIn13 0 |
whismanoid | 0:3edb3708c8c5 | 1583 | // #define HAS_analogIn14 0 |
whismanoid | 0:3edb3708c8c5 | 1584 | // #define HAS_analogIn15 0 |
whismanoid | 0:3edb3708c8c5 | 1585 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 1586 | AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1587 | #endif |
whismanoid | 0:3edb3708c8c5 | 1588 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 1589 | AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1590 | #endif |
whismanoid | 0:3edb3708c8c5 | 1591 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 1592 | AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1593 | #endif |
whismanoid | 0:3edb3708c8c5 | 1594 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 1595 | AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1596 | #endif |
whismanoid | 0:3edb3708c8c5 | 1597 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 1598 | AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 1599 | #endif |
whismanoid | 0:3edb3708c8c5 | 1600 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 1601 | AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 1602 | #endif |
whismanoid | 0:3edb3708c8c5 | 1603 | #if HAS_analogIn6 |
whismanoid | 0:3edb3708c8c5 | 1604 | AnalogIn analogIn6(AIN_6); // TARGET_MAX32630 AIN_6 = VDDB / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 1605 | #endif |
whismanoid | 0:3edb3708c8c5 | 1606 | #if HAS_analogIn7 |
whismanoid | 0:3edb3708c8c5 | 1607 | AnalogIn analogIn7(AIN_7); // TARGET_MAX32630 AIN_7 = VDD18 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1608 | #endif |
whismanoid | 0:3edb3708c8c5 | 1609 | #if HAS_analogIn8 |
whismanoid | 0:3edb3708c8c5 | 1610 | AnalogIn analogIn8(AIN_8); // TARGET_MAX32630 AIN_8 = VDD12 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1611 | #endif |
whismanoid | 0:3edb3708c8c5 | 1612 | #if HAS_analogIn9 |
whismanoid | 0:3edb3708c8c5 | 1613 | AnalogIn analogIn9(AIN_9); // TARGET_MAX32630 AIN_9 = VRTC / 2.0 fullscale is 2.4V |
whismanoid | 0:3edb3708c8c5 | 1614 | #endif |
whismanoid | 0:3edb3708c8c5 | 1615 | #if HAS_analogIn10 |
whismanoid | 0:3edb3708c8c5 | 1616 | AnalogIn analogIn10(____); // TARGET_MAX32630 AIN_10 = x undefined? |
whismanoid | 0:3edb3708c8c5 | 1617 | #endif |
whismanoid | 0:3edb3708c8c5 | 1618 | #if HAS_analogIn11 |
whismanoid | 0:3edb3708c8c5 | 1619 | AnalogIn analogIn11(____); // TARGET_MAX32630 AIN_11 = VDDIO / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 1620 | #endif |
whismanoid | 0:3edb3708c8c5 | 1621 | #if HAS_analogIn12 |
whismanoid | 0:3edb3708c8c5 | 1622 | AnalogIn analogIn12(____); // TARGET_MAX32630 AIN_12 = VDDIOH / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 1623 | #endif |
whismanoid | 0:3edb3708c8c5 | 1624 | #if HAS_analogIn13 |
whismanoid | 0:3edb3708c8c5 | 1625 | AnalogIn analogIn13(____); |
whismanoid | 0:3edb3708c8c5 | 1626 | #endif |
whismanoid | 0:3edb3708c8c5 | 1627 | #if HAS_analogIn14 |
whismanoid | 0:3edb3708c8c5 | 1628 | AnalogIn analogIn14(____); |
whismanoid | 0:3edb3708c8c5 | 1629 | #endif |
whismanoid | 0:3edb3708c8c5 | 1630 | #if HAS_analogIn15 |
whismanoid | 0:3edb3708c8c5 | 1631 | AnalogIn analogIn15(____); |
whismanoid | 0:3edb3708c8c5 | 1632 | #endif |
whismanoid | 0:3edb3708c8c5 | 1633 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1634 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 1635 | #define HAS_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 1636 | #define HAS_analogIn1 1 |
whismanoid | 0:3edb3708c8c5 | 1637 | #define HAS_analogIn2 1 |
whismanoid | 0:3edb3708c8c5 | 1638 | #define HAS_analogIn3 1 |
whismanoid | 0:3edb3708c8c5 | 1639 | #define HAS_analogIn4 1 |
whismanoid | 0:3edb3708c8c5 | 1640 | #define HAS_analogIn5 1 |
whismanoid | 0:3edb3708c8c5 | 1641 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 1642 | AnalogIn analogIn0(AIN_0); // TARGET_MAX32630 J1.5 AIN_0 = AIN0 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1643 | #endif |
whismanoid | 0:3edb3708c8c5 | 1644 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 1645 | AnalogIn analogIn1(AIN_1); // TARGET_MAX32630 J1.6 AIN_1 = AIN1 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1646 | #endif |
whismanoid | 0:3edb3708c8c5 | 1647 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 1648 | AnalogIn analogIn2(AIN_2); // TARGET_MAX32630 J1.7 AIN_2 = AIN2 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1649 | #endif |
whismanoid | 0:3edb3708c8c5 | 1650 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 1651 | AnalogIn analogIn3(AIN_3); // TARGET_MAX32630 J1.8 AIN_3 = AIN3 pin fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 1652 | #endif |
whismanoid | 0:3edb3708c8c5 | 1653 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 1654 | AnalogIn analogIn4(AIN_4); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 1655 | #endif |
whismanoid | 0:3edb3708c8c5 | 1656 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 1657 | AnalogIn analogIn5(AIN_5); // TARGET_MAX32630 J1.6 AIN_5 = AIN1 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 1658 | #endif |
whismanoid | 0:3edb3708c8c5 | 1659 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1660 | #elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 1661 | #define HAS_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 1662 | #define HAS_analogIn1 1 |
whismanoid | 0:3edb3708c8c5 | 1663 | #define HAS_analogIn2 1 |
whismanoid | 0:3edb3708c8c5 | 1664 | #define HAS_analogIn3 1 |
whismanoid | 0:3edb3708c8c5 | 1665 | #define HAS_analogIn4 1 |
whismanoid | 0:3edb3708c8c5 | 1666 | #define HAS_analogIn5 1 |
whismanoid | 0:3edb3708c8c5 | 1667 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 1668 | AnalogIn analogIn0(A0); |
whismanoid | 0:3edb3708c8c5 | 1669 | #endif |
whismanoid | 0:3edb3708c8c5 | 1670 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 1671 | AnalogIn analogIn1(A1); |
whismanoid | 0:3edb3708c8c5 | 1672 | #endif |
whismanoid | 0:3edb3708c8c5 | 1673 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 1674 | AnalogIn analogIn2(A2); |
whismanoid | 0:3edb3708c8c5 | 1675 | #endif |
whismanoid | 0:3edb3708c8c5 | 1676 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 1677 | AnalogIn analogIn3(A3); |
whismanoid | 0:3edb3708c8c5 | 1678 | #endif |
whismanoid | 0:3edb3708c8c5 | 1679 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 1680 | AnalogIn analogIn4(A4); |
whismanoid | 0:3edb3708c8c5 | 1681 | #endif |
whismanoid | 0:3edb3708c8c5 | 1682 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 1683 | AnalogIn analogIn5(A5); |
whismanoid | 0:3edb3708c8c5 | 1684 | #endif |
whismanoid | 0:3edb3708c8c5 | 1685 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1686 | #elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 1687 | #define HAS_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 1688 | #define HAS_analogIn1 1 |
whismanoid | 0:3edb3708c8c5 | 1689 | #define HAS_analogIn2 1 |
whismanoid | 0:3edb3708c8c5 | 1690 | #define HAS_analogIn3 1 |
whismanoid | 0:3edb3708c8c5 | 1691 | #define HAS_analogIn4 1 |
whismanoid | 0:3edb3708c8c5 | 1692 | #define HAS_analogIn5 1 |
whismanoid | 0:3edb3708c8c5 | 1693 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 1694 | AnalogIn analogIn0(A0); |
whismanoid | 0:3edb3708c8c5 | 1695 | #endif |
whismanoid | 0:3edb3708c8c5 | 1696 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 1697 | AnalogIn analogIn1(A1); |
whismanoid | 0:3edb3708c8c5 | 1698 | #endif |
whismanoid | 0:3edb3708c8c5 | 1699 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 1700 | AnalogIn analogIn2(A2); |
whismanoid | 0:3edb3708c8c5 | 1701 | #endif |
whismanoid | 0:3edb3708c8c5 | 1702 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 1703 | AnalogIn analogIn3(A3); |
whismanoid | 0:3edb3708c8c5 | 1704 | #endif |
whismanoid | 0:3edb3708c8c5 | 1705 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 1706 | AnalogIn analogIn4(A4); |
whismanoid | 0:3edb3708c8c5 | 1707 | #endif |
whismanoid | 0:3edb3708c8c5 | 1708 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 1709 | AnalogIn analogIn5(A5); |
whismanoid | 0:3edb3708c8c5 | 1710 | #endif |
whismanoid | 0:3edb3708c8c5 | 1711 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1712 | // TODO1: TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM |
whismanoid | 0:3edb3708c8c5 | 1713 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 1714 | #define HAS_analogIn0 1 |
whismanoid | 0:3edb3708c8c5 | 1715 | #define HAS_analogIn1 1 |
whismanoid | 0:3edb3708c8c5 | 1716 | #define HAS_analogIn2 1 |
whismanoid | 0:3edb3708c8c5 | 1717 | #define HAS_analogIn3 1 |
whismanoid | 0:3edb3708c8c5 | 1718 | #define HAS_analogIn4 1 |
whismanoid | 0:3edb3708c8c5 | 1719 | #define HAS_analogIn5 1 |
whismanoid | 0:3edb3708c8c5 | 1720 | // #define HAS_analogIn6 1 |
whismanoid | 0:3edb3708c8c5 | 1721 | // #define HAS_analogIn7 1 |
whismanoid | 0:3edb3708c8c5 | 1722 | // #define HAS_analogIn8 1 |
whismanoid | 0:3edb3708c8c5 | 1723 | // #define HAS_analogIn9 1 |
whismanoid | 0:3edb3708c8c5 | 1724 | // #define HAS_analogIn10 1 |
whismanoid | 0:3edb3708c8c5 | 1725 | // #define HAS_analogIn11 1 |
whismanoid | 0:3edb3708c8c5 | 1726 | // #define HAS_analogIn12 1 |
whismanoid | 0:3edb3708c8c5 | 1727 | // #define HAS_analogIn13 1 |
whismanoid | 0:3edb3708c8c5 | 1728 | // #define HAS_analogIn14 1 |
whismanoid | 0:3edb3708c8c5 | 1729 | // #define HAS_analogIn15 1 |
whismanoid | 0:3edb3708c8c5 | 1730 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 1731 | AnalogIn analogIn0(p15); // TARGET_LPC1768 P0.23/AD0.0/I2SRX_CLK/CAP3.0 |
whismanoid | 0:3edb3708c8c5 | 1732 | #endif |
whismanoid | 0:3edb3708c8c5 | 1733 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 1734 | AnalogIn analogIn1(p16); // TARGET_LPC1768 P0.24/AD0.1/I2SRX_WS/CAP3.1 |
whismanoid | 0:3edb3708c8c5 | 1735 | #endif |
whismanoid | 0:3edb3708c8c5 | 1736 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 1737 | AnalogIn analogIn2(p17); // TARGET_LPC1768 P0.25/AD0.2/I2SRX_SDA/TXD3 |
whismanoid | 0:3edb3708c8c5 | 1738 | #endif |
whismanoid | 0:3edb3708c8c5 | 1739 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 1740 | AnalogIn analogIn3(p18); // TARGET_LPC1768 P0.26/AD0.3/AOUT/RXD3 |
whismanoid | 0:3edb3708c8c5 | 1741 | #endif |
whismanoid | 0:3edb3708c8c5 | 1742 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 1743 | AnalogIn analogIn4(p19); // TARGET_LPC1768 P1.30/VBUS/AD0.4 |
whismanoid | 0:3edb3708c8c5 | 1744 | #endif |
whismanoid | 0:3edb3708c8c5 | 1745 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 1746 | AnalogIn analogIn5(p20); // TARGET_LPC1768 P1.31/SCK1/AD0.5 |
whismanoid | 0:3edb3708c8c5 | 1747 | #endif |
whismanoid | 0:3edb3708c8c5 | 1748 | #if HAS_analogIn6 |
whismanoid | 0:3edb3708c8c5 | 1749 | AnalogIn analogIn6(____); |
whismanoid | 0:3edb3708c8c5 | 1750 | #endif |
whismanoid | 0:3edb3708c8c5 | 1751 | #if HAS_analogIn7 |
whismanoid | 0:3edb3708c8c5 | 1752 | AnalogIn analogIn7(____); |
whismanoid | 0:3edb3708c8c5 | 1753 | #endif |
whismanoid | 0:3edb3708c8c5 | 1754 | #if HAS_analogIn8 |
whismanoid | 0:3edb3708c8c5 | 1755 | AnalogIn analogIn8(____); |
whismanoid | 0:3edb3708c8c5 | 1756 | #endif |
whismanoid | 0:3edb3708c8c5 | 1757 | #if HAS_analogIn9 |
whismanoid | 0:3edb3708c8c5 | 1758 | AnalogIn analogIn9(____); |
whismanoid | 0:3edb3708c8c5 | 1759 | #endif |
whismanoid | 0:3edb3708c8c5 | 1760 | #if HAS_analogIn10 |
whismanoid | 0:3edb3708c8c5 | 1761 | AnalogIn analogIn10(____); |
whismanoid | 0:3edb3708c8c5 | 1762 | #endif |
whismanoid | 0:3edb3708c8c5 | 1763 | #if HAS_analogIn11 |
whismanoid | 0:3edb3708c8c5 | 1764 | AnalogIn analogIn11(____); |
whismanoid | 0:3edb3708c8c5 | 1765 | #endif |
whismanoid | 0:3edb3708c8c5 | 1766 | #if HAS_analogIn12 |
whismanoid | 0:3edb3708c8c5 | 1767 | AnalogIn analogIn12(____); |
whismanoid | 0:3edb3708c8c5 | 1768 | #endif |
whismanoid | 0:3edb3708c8c5 | 1769 | #if HAS_analogIn13 |
whismanoid | 0:3edb3708c8c5 | 1770 | AnalogIn analogIn13(____); |
whismanoid | 0:3edb3708c8c5 | 1771 | #endif |
whismanoid | 0:3edb3708c8c5 | 1772 | #if HAS_analogIn14 |
whismanoid | 0:3edb3708c8c5 | 1773 | AnalogIn analogIn14(____); |
whismanoid | 0:3edb3708c8c5 | 1774 | #endif |
whismanoid | 0:3edb3708c8c5 | 1775 | #if HAS_analogIn15 |
whismanoid | 0:3edb3708c8c5 | 1776 | AnalogIn analogIn15(____); |
whismanoid | 0:3edb3708c8c5 | 1777 | #endif |
whismanoid | 0:3edb3708c8c5 | 1778 | #else |
whismanoid | 0:3edb3708c8c5 | 1779 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 1780 | #endif |
whismanoid | 0:3edb3708c8c5 | 1781 | // uncrustify-0.66.1 *INDENT-ON* |
whismanoid | 0:3edb3708c8c5 | 1782 | #if HAS_analogIn0 || HAS_analogIn1 \ |
whismanoid | 0:3edb3708c8c5 | 1783 | || HAS_analogIn2 || HAS_analogIn3 \ |
whismanoid | 0:3edb3708c8c5 | 1784 | || HAS_analogIn4 || HAS_analogIn5 \ |
whismanoid | 0:3edb3708c8c5 | 1785 | || HAS_analogIn6 || HAS_analogIn7 \ |
whismanoid | 0:3edb3708c8c5 | 1786 | || HAS_analogIn8 || HAS_analogIn9 \ |
whismanoid | 0:3edb3708c8c5 | 1787 | || HAS_analogIn10 || HAS_analogIn11 \ |
whismanoid | 0:3edb3708c8c5 | 1788 | || HAS_analogIn12 || HAS_analogIn13 \ |
whismanoid | 0:3edb3708c8c5 | 1789 | || HAS_analogIn14 || HAS_analogIn15 |
whismanoid | 0:3edb3708c8c5 | 1790 | #define HAS_analogIns 1 |
whismanoid | 0:3edb3708c8c5 | 1791 | #endif |
whismanoid | 0:3edb3708c8c5 | 1792 | |
whismanoid | 0:3edb3708c8c5 | 1793 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1794 | // Diagnostic: scope trigger |
whismanoid | 0:3edb3708c8c5 | 1795 | //#define SCOPE_TRIG_PIN p11 |
whismanoid | 0:3edb3708c8c5 | 1796 | //#ifdef SCOPE_TRIG_PIN |
whismanoid | 0:3edb3708c8c5 | 1797 | //# if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 1798 | // // TARGET=MAX32630 |
whismanoid | 0:3edb3708c8c5 | 1799 | // DigitalOut scopeTrigPinP11(P3_1, 1); |
whismanoid | 0:3edb3708c8c5 | 1800 | // DigitalOut scopePinP12(P3_0, 1); |
whismanoid | 0:3edb3708c8c5 | 1801 | //# elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 1802 | // // TARGET=LPC1768 |
whismanoid | 0:3edb3708c8c5 | 1803 | // DigitalOut scopeTrigPinP11(p11, 1); |
whismanoid | 0:3edb3708c8c5 | 1804 | // DigitalOut scopePinP12(p12, 1); |
whismanoid | 0:3edb3708c8c5 | 1805 | //# else |
whismanoid | 0:3edb3708c8c5 | 1806 | // // unknown target |
whismanoid | 0:3edb3708c8c5 | 1807 | //# endif |
whismanoid | 0:3edb3708c8c5 | 1808 | //#endif |
whismanoid | 0:3edb3708c8c5 | 1809 | |
whismanoid | 0:3edb3708c8c5 | 1810 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1811 | // Option to use LEDs to show status |
whismanoid | 0:3edb3708c8c5 | 1812 | #ifndef USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 1813 | #define USE_LEDS 1 |
whismanoid | 0:3edb3708c8c5 | 1814 | #endif |
whismanoid | 0:3edb3708c8c5 | 1815 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 1816 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 1817 | # define LED_ON 0 |
whismanoid | 0:3edb3708c8c5 | 1818 | # define LED_OFF 1 |
whismanoid | 0:3edb3708c8c5 | 1819 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1820 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 1821 | # define LED_ON 0 |
whismanoid | 0:3edb3708c8c5 | 1822 | # define LED_OFF 1 |
whismanoid | 0:3edb3708c8c5 | 1823 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1824 | // TODO1: TARGET=MAX32625MBED ARM Cortex-M4F 96MHz 512kB Flash 160kB SRAM |
whismanoid | 0:3edb3708c8c5 | 1825 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 1826 | # define LED_ON 1 |
whismanoid | 0:3edb3708c8c5 | 1827 | # define LED_OFF 0 |
whismanoid | 0:3edb3708c8c5 | 1828 | #else // not defined(TARGET_LPC1768 etc.) |
whismanoid | 0:3edb3708c8c5 | 1829 | # define LED_ON 1 |
whismanoid | 0:3edb3708c8c5 | 1830 | # define LED_OFF 0 |
whismanoid | 0:3edb3708c8c5 | 1831 | #endif // target definition |
whismanoid | 0:3edb3708c8c5 | 1832 | DigitalOut led1(LED1, LED_OFF); // MAX32630FTHR: LED1 = LED_RED |
whismanoid | 0:3edb3708c8c5 | 1833 | DigitalOut led2(LED2, LED_OFF); // MAX32630FTHR: LED2 = LED_GREEN |
whismanoid | 0:3edb3708c8c5 | 1834 | DigitalOut led3(LED3, LED_OFF); // MAX32630FTHR: LED3 = LED_BLUE |
whismanoid | 0:3edb3708c8c5 | 1835 | DigitalOut led4(LED4, LED_OFF); |
whismanoid | 0:3edb3708c8c5 | 1836 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 1837 | |
whismanoid | 0:3edb3708c8c5 | 1838 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1839 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 1840 | class RGB_LED { |
whismanoid | 0:3edb3708c8c5 | 1841 | public: |
whismanoid | 0:3edb3708c8c5 | 1842 | RGB_LED(DigitalOut &led_red, DigitalOut &led_green, DigitalOut &led_blue) |
whismanoid | 0:3edb3708c8c5 | 1843 | : m_red(led_red), m_green(led_green), m_blue(led_blue) |
whismanoid | 0:3edb3708c8c5 | 1844 | { |
whismanoid | 0:3edb3708c8c5 | 1845 | }; |
whismanoid | 0:3edb3708c8c5 | 1846 | DigitalOut &m_red; |
whismanoid | 0:3edb3708c8c5 | 1847 | DigitalOut &m_green; |
whismanoid | 0:3edb3708c8c5 | 1848 | DigitalOut &m_blue; |
whismanoid | 0:3edb3708c8c5 | 1849 | ~RGB_LED() |
whismanoid | 0:3edb3708c8c5 | 1850 | { |
whismanoid | 0:3edb3708c8c5 | 1851 | }; |
whismanoid | 0:3edb3708c8c5 | 1852 | /* diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 1853 | */ |
whismanoid | 0:3edb3708c8c5 | 1854 | void red() { |
whismanoid | 0:3edb3708c8c5 | 1855 | m_red = LED_ON; m_green = LED_OFF; m_blue = LED_OFF; // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 1856 | }; |
whismanoid | 0:3edb3708c8c5 | 1857 | /* diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 1858 | */ |
whismanoid | 0:3edb3708c8c5 | 1859 | void green() { |
whismanoid | 0:3edb3708c8c5 | 1860 | m_red = LED_OFF; m_green = LED_ON; m_blue = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 1861 | }; |
whismanoid | 0:3edb3708c8c5 | 1862 | /* diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 1863 | */ |
whismanoid | 0:3edb3708c8c5 | 1864 | void blue() { |
whismanoid | 0:3edb3708c8c5 | 1865 | m_red = LED_OFF; m_green = LED_OFF; m_blue = LED_ON; // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 1866 | }; |
whismanoid | 0:3edb3708c8c5 | 1867 | /* diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 1868 | */ |
whismanoid | 0:3edb3708c8c5 | 1869 | void white() { |
whismanoid | 0:3edb3708c8c5 | 1870 | m_red = LED_ON; m_green = LED_ON; m_blue = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 1871 | }; |
whismanoid | 0:3edb3708c8c5 | 1872 | /* diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 1873 | */ |
whismanoid | 0:3edb3708c8c5 | 1874 | void cyan() { |
whismanoid | 0:3edb3708c8c5 | 1875 | m_red = LED_OFF; m_green = LED_ON; m_blue = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 1876 | }; |
whismanoid | 0:3edb3708c8c5 | 1877 | /* diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 1878 | */ |
whismanoid | 0:3edb3708c8c5 | 1879 | void magenta() { |
whismanoid | 0:3edb3708c8c5 | 1880 | m_red = LED_ON; m_green = LED_OFF; m_blue = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 1881 | }; |
whismanoid | 0:3edb3708c8c5 | 1882 | /* diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 1883 | */ |
whismanoid | 0:3edb3708c8c5 | 1884 | void yellow() { |
whismanoid | 0:3edb3708c8c5 | 1885 | m_red = LED_ON; m_green = LED_ON; m_blue = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 1886 | }; |
whismanoid | 0:3edb3708c8c5 | 1887 | /* diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 1888 | */ |
whismanoid | 0:3edb3708c8c5 | 1889 | void black() { |
whismanoid | 0:3edb3708c8c5 | 1890 | m_red = LED_OFF; m_green = LED_OFF; m_blue = LED_OFF; // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 1891 | }; |
whismanoid | 0:3edb3708c8c5 | 1892 | }; |
whismanoid | 0:3edb3708c8c5 | 1893 | RGB_LED rgb_led(led1, led2, led3); // red, green, blue LEDs |
whismanoid | 0:3edb3708c8c5 | 1894 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 1895 | |
whismanoid | 0:3edb3708c8c5 | 1896 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1897 | // use BUTTON1 trigger some action |
whismanoid | 0:3edb3708c8c5 | 1898 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 1899 | #define HAS_BUTTON1_DEMO_INTERRUPT 1 |
whismanoid | 0:3edb3708c8c5 | 1900 | #elif defined(TARGET_MAX32625) |
whismanoid | 0:3edb3708c8c5 | 1901 | #define HAS_BUTTON1_DEMO_INTERRUPT 1 |
whismanoid | 0:3edb3708c8c5 | 1902 | #define HAS_BUTTON2_DEMO_INTERRUPT 1 |
whismanoid | 0:3edb3708c8c5 | 1903 | #elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 1904 | #define HAS_BUTTON1_DEMO_INTERRUPT 0 |
whismanoid | 0:3edb3708c8c5 | 1905 | #define HAS_BUTTON2_DEMO_INTERRUPT 0 |
whismanoid | 0:3edb3708c8c5 | 1906 | #elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 1907 | #define HAS_BUTTON1_DEMO_INTERRUPT 0 |
whismanoid | 0:3edb3708c8c5 | 1908 | #define HAS_BUTTON2_DEMO_INTERRUPT 0 |
whismanoid | 0:3edb3708c8c5 | 1909 | #endif |
whismanoid | 0:3edb3708c8c5 | 1910 | // |
whismanoid | 0:3edb3708c8c5 | 1911 | #ifndef HAS_BUTTON1_DEMO |
whismanoid | 0:3edb3708c8c5 | 1912 | #define HAS_BUTTON1_DEMO 0 |
whismanoid | 0:3edb3708c8c5 | 1913 | #endif |
whismanoid | 0:3edb3708c8c5 | 1914 | #ifndef HAS_BUTTON2_DEMO |
whismanoid | 0:3edb3708c8c5 | 1915 | #define HAS_BUTTON2_DEMO 0 |
whismanoid | 0:3edb3708c8c5 | 1916 | #endif |
whismanoid | 0:3edb3708c8c5 | 1917 | // |
whismanoid | 0:3edb3708c8c5 | 1918 | // avoid runtime error on button1 press [mbed-os-5.11] |
whismanoid | 0:3edb3708c8c5 | 1919 | // instead of using InterruptIn, use DigitalIn and poll in main while(1) |
whismanoid | 0:3edb3708c8c5 | 1920 | #ifndef HAS_BUTTON1_DEMO_INTERRUPT_POLLING |
whismanoid | 0:3edb3708c8c5 | 1921 | #define HAS_BUTTON1_DEMO_INTERRUPT_POLLING 1 |
whismanoid | 0:3edb3708c8c5 | 1922 | #endif |
whismanoid | 0:3edb3708c8c5 | 1923 | // |
whismanoid | 0:3edb3708c8c5 | 1924 | #ifndef HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 1925 | #define HAS_BUTTON1_DEMO_INTERRUPT 1 |
whismanoid | 0:3edb3708c8c5 | 1926 | #endif |
whismanoid | 0:3edb3708c8c5 | 1927 | #ifndef HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 1928 | #define HAS_BUTTON2_DEMO_INTERRUPT 1 |
whismanoid | 0:3edb3708c8c5 | 1929 | #endif |
whismanoid | 0:3edb3708c8c5 | 1930 | // |
whismanoid | 0:3edb3708c8c5 | 1931 | #if HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 1932 | # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING |
whismanoid | 0:3edb3708c8c5 | 1933 | // avoid runtime error on button1 press [mbed-os-5.11] |
whismanoid | 0:3edb3708c8c5 | 1934 | // instead of using InterruptIn, use DigitalIn and poll in main while(1) |
whismanoid | 0:3edb3708c8c5 | 1935 | DigitalIn button1(BUTTON1); |
whismanoid | 0:3edb3708c8c5 | 1936 | # else |
whismanoid | 0:3edb3708c8c5 | 1937 | InterruptIn button1(BUTTON1); |
whismanoid | 0:3edb3708c8c5 | 1938 | # endif |
whismanoid | 0:3edb3708c8c5 | 1939 | #elif HAS_BUTTON1_DEMO |
whismanoid | 0:3edb3708c8c5 | 1940 | DigitalIn button1(BUTTON1); |
whismanoid | 0:3edb3708c8c5 | 1941 | #endif |
whismanoid | 0:3edb3708c8c5 | 1942 | #if HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 1943 | # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING |
whismanoid | 0:3edb3708c8c5 | 1944 | // avoid runtime error on button1 press [mbed-os-5.11] |
whismanoid | 0:3edb3708c8c5 | 1945 | // instead of using InterruptIn, use DigitalIn and poll in main while(1) |
whismanoid | 0:3edb3708c8c5 | 1946 | DigitalIn button2(BUTTON2); |
whismanoid | 0:3edb3708c8c5 | 1947 | # else |
whismanoid | 0:3edb3708c8c5 | 1948 | InterruptIn button2(BUTTON2); |
whismanoid | 0:3edb3708c8c5 | 1949 | # endif |
whismanoid | 0:3edb3708c8c5 | 1950 | #elif HAS_BUTTON2_DEMO |
whismanoid | 0:3edb3708c8c5 | 1951 | DigitalIn button2(BUTTON2); |
whismanoid | 0:3edb3708c8c5 | 1952 | #endif |
whismanoid | 0:3edb3708c8c5 | 1953 | |
whismanoid | 0:3edb3708c8c5 | 1954 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1955 | // Ticker is the periodic interrupt timer itself |
whismanoid | 0:3edb3708c8c5 | 1956 | #define USE_PERIODIC_TIMER 0 |
whismanoid | 0:3edb3708c8c5 | 1957 | #if USE_PERIODIC_TIMER |
whismanoid | 0:3edb3708c8c5 | 1958 | Ticker periodicInterruptTimer; |
whismanoid | 0:3edb3708c8c5 | 1959 | us_timestamp_t periodicInterruptTimer_interval_usec = 50; |
whismanoid | 0:3edb3708c8c5 | 1960 | us_timestamp_t periodicInterruptTimer_interval_usec_MAX = 1000; |
whismanoid | 0:3edb3708c8c5 | 1961 | us_timestamp_t periodicInterruptTimer_interval_usec_MIN = 20; |
whismanoid | 0:3edb3708c8c5 | 1962 | #endif |
whismanoid | 0:3edb3708c8c5 | 1963 | |
whismanoid | 0:3edb3708c8c5 | 1964 | |
whismanoid | 0:3edb3708c8c5 | 1965 | #if APPLICATION_MAX5715 // hardware interface functions |
whismanoid | 0:3edb3708c8c5 | 1966 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1967 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 1968 | // declare user-provided hardware interface function drive MAX5717_LDACb_Pin LDAC# |
whismanoid | 0:3edb3708c8c5 | 1969 | // drive LDAC# Active-Low Asynchronous Load DAC Input for MAX5715 |
whismanoid | 0:3edb3708c8c5 | 1970 | // |
whismanoid | 0:3edb3708c8c5 | 1971 | //void GPIOoutputLDACb(int isLogicHigh) |
whismanoid | 0:3edb3708c8c5 | 1972 | //{ |
whismanoid | 0:3edb3708c8c5 | 1973 | // digitalInOut9.output(); |
whismanoid | 0:3edb3708c8c5 | 1974 | // digitalInOut9.write(isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 1975 | // |
whismanoid | 0:3edb3708c8c5 | 1976 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 1977 | // cmdLine_microUSBserial.serial().printf(" digitalInOutPin 9 Output %d ", isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 1978 | //#endif |
whismanoid | 0:3edb3708c8c5 | 1979 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 1980 | // cmdLine_DAPLINKserial.serial().printf(" digitalInOutPin 9 Output %d ", isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 1981 | //#endif |
whismanoid | 0:3edb3708c8c5 | 1982 | //} |
whismanoid | 0:3edb3708c8c5 | 1983 | |
whismanoid | 0:3edb3708c8c5 | 1984 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 1985 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 1986 | // declare user-provided hardware interface function drive MAX5717_CLRb_Pin CLR# |
whismanoid | 0:3edb3708c8c5 | 1987 | // drive CLR# Active-Low Clear Input for MAX5715 |
whismanoid | 0:3edb3708c8c5 | 1988 | // |
whismanoid | 0:3edb3708c8c5 | 1989 | //void GPIOoutputCLRb(int isLogicHigh) |
whismanoid | 0:3edb3708c8c5 | 1990 | //{ |
whismanoid | 0:3edb3708c8c5 | 1991 | // digitalInOut8.output(); |
whismanoid | 0:3edb3708c8c5 | 1992 | // digitalInOut8.write(isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 1993 | // |
whismanoid | 0:3edb3708c8c5 | 1994 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 1995 | // cmdLine_microUSBserial.serial().printf(" digitalInOutPin 8 Output %d ", isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 1996 | //#endif |
whismanoid | 0:3edb3708c8c5 | 1997 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 1998 | // cmdLine_DAPLINKserial.serial().printf(" digitalInOutPin 8 Output %d ", isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 1999 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2000 | //} |
whismanoid | 0:3edb3708c8c5 | 2001 | #endif |
whismanoid | 0:3edb3708c8c5 | 2002 | |
whismanoid | 0:3edb3708c8c5 | 2003 | |
whismanoid | 0:3edb3708c8c5 | 2004 | #if APPLICATION_MAX11131 // hardware interface functions |
whismanoid | 0:3edb3708c8c5 | 2005 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2006 | void print_value(CmdLine& cmdLine, int16_t value_u12, int channelId) |
whismanoid | 0:3edb3708c8c5 | 2007 | { |
whismanoid | 0:3edb3708c8c5 | 2008 | int channelPairIndex = channelId / 2; |
whismanoid | 0:3edb3708c8c5 | 2009 | // format: 1 0 0 0 1 UCH0/1 UCH2/3 UCH4/5 UCH6/7 UCH8/9 UCH10/11 UCH12/13 UCH14/15 PDIFF_COM x x |
whismanoid | 0:3edb3708c8c5 | 2010 | // unused variable: int UCHn = (g_MAX11131_device.UNIPOLAR >> (10 - channelPairIndex)) & 0x01; |
whismanoid | 0:3edb3708c8c5 | 2011 | int BCHn = (g_MAX11131_device.BIPOLAR >> (10 - channelPairIndex)) & 0x01; |
whismanoid | 0:3edb3708c8c5 | 2012 | // unused variable: int RANGEn = (g_MAX11131_device.RANGE >> (10 - channelPairIndex)) & 0x01; |
whismanoid | 0:3edb3708c8c5 | 2013 | // |
whismanoid | 0:3edb3708c8c5 | 2014 | cmdLine.serial().printf(" ch="); |
whismanoid | 0:3edb3708c8c5 | 2015 | // TODO1: if CHANID=0 don't print ch=channelId |
whismanoid | 0:3edb3708c8c5 | 2016 | if ((g_MAX11131_device.isExternalClock == 0) || (g_MAX11131_device.chan_id_0_1 == 1)) |
whismanoid | 0:3edb3708c8c5 | 2017 | { |
whismanoid | 0:3edb3708c8c5 | 2018 | // Internal clock modes always use channel ID. |
whismanoid | 0:3edb3708c8c5 | 2019 | // External clock modes use channel ID if ADC_MODE_CONTROL.CHAN_ID is 1. |
whismanoid | 0:3edb3708c8c5 | 2020 | cmdLine.serial().printf("%d", channelId); |
whismanoid | 0:3edb3708c8c5 | 2021 | } else { |
whismanoid | 0:3edb3708c8c5 | 2022 | cmdLine.serial().printf("?"); |
whismanoid | 0:3edb3708c8c5 | 2023 | } |
whismanoid | 0:3edb3708c8c5 | 2024 | if (BCHn) |
whismanoid | 0:3edb3708c8c5 | 2025 | { |
whismanoid | 0:3edb3708c8c5 | 2026 | cmdLine.serial().printf(" xb=%d", g_MAX11131_device.TwosComplementValue(value_u12)); |
whismanoid | 0:3edb3708c8c5 | 2027 | } |
whismanoid | 0:3edb3708c8c5 | 2028 | else |
whismanoid | 0:3edb3708c8c5 | 2029 | { |
whismanoid | 0:3edb3708c8c5 | 2030 | cmdLine.serial().printf(" xu=%d", value_u12); |
whismanoid | 0:3edb3708c8c5 | 2031 | } |
whismanoid | 0:3edb3708c8c5 | 2032 | cmdLine.serial().printf(" = 0x%4.4x = %6.4fV", |
whismanoid | 0:3edb3708c8c5 | 2033 | (value_u12 & 0xFFFF), |
whismanoid | 0:3edb3708c8c5 | 2034 | g_MAX11131_device.VoltageOfCode(value_u12, channelId) |
whismanoid | 0:3edb3708c8c5 | 2035 | ); |
whismanoid | 0:3edb3708c8c5 | 2036 | // dtostrf width and precision: 2.5v / 4096 LSB = 0.0006103515625 volts per LSB |
whismanoid | 0:3edb3708c8c5 | 2037 | } |
whismanoid | 0:3edb3708c8c5 | 2038 | |
whismanoid | 0:3edb3708c8c5 | 2039 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2040 | // read data words |
whismanoid | 0:3edb3708c8c5 | 2041 | // @pre RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 2042 | // @pre AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 2043 | // For internal clock modes, the data format always includes the channel address. |
whismanoid | 0:3edb3708c8c5 | 2044 | // misoData16 = CH[3:0] DATA[11:0] |
whismanoid | 0:3edb3708c8c5 | 2045 | void AINcode_print_value_chanID(CmdLine& cmdLine, int nWords) |
whismanoid | 0:3edb3708c8c5 | 2046 | { |
whismanoid | 0:3edb3708c8c5 | 2047 | cmdLine.serial().printf("ScanRead_nWords_chanID nWords=%d\r\n", nWords); |
whismanoid | 0:3edb3708c8c5 | 2048 | for (int index = 0; index < nWords; index++) { |
whismanoid | 0:3edb3708c8c5 | 2049 | //~ int16_t misoData16 = MAX11131_ScanRead(); |
whismanoid | 0:3edb3708c8c5 | 2050 | // For internal clock modes, the data format always includes the channel address. |
whismanoid | 0:3edb3708c8c5 | 2051 | // misoData16 = CH[3:0] DATA[11:0] |
whismanoid | 0:3edb3708c8c5 | 2052 | int16_t value_u12 = (g_MAX11131_device.RAW_misoData16[index] & 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 2053 | int channelId = ((g_MAX11131_device.RAW_misoData16[index] >> 12) & 0x000F); |
whismanoid | 0:3edb3708c8c5 | 2054 | // diagnostic: print raw MISO data |
whismanoid | 0:3edb3708c8c5 | 2055 | cmdLine.serial().printf(" MAX11131.MISO[%u]=0x%4.4x:", index, |
whismanoid | 0:3edb3708c8c5 | 2056 | (g_MAX11131_device.RAW_misoData16[index] & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 2057 | print_value(cmdLine, value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 2058 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2059 | } |
whismanoid | 0:3edb3708c8c5 | 2060 | } |
whismanoid | 0:3edb3708c8c5 | 2061 | |
whismanoid | 0:3edb3708c8c5 | 2062 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2063 | // read data words |
whismanoid | 0:3edb3708c8c5 | 2064 | // @pre RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 2065 | // @pre AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 2066 | // For external clock modes, the data format returned depends on the CHAN_ID bit. |
whismanoid | 0:3edb3708c8c5 | 2067 | // when CHAN_ID = 0: misoData16 = 0 DATA[11:0] x x x |
whismanoid | 0:3edb3708c8c5 | 2068 | // when CHAN_ID = 1: misoData16 = CH[3:0] DATA[11:0] |
whismanoid | 0:3edb3708c8c5 | 2069 | void AINcode_print_value_externalClock(CmdLine& cmdLine, int nWords) |
whismanoid | 0:3edb3708c8c5 | 2070 | { |
whismanoid | 0:3edb3708c8c5 | 2071 | // For external clock modes, the data format returned depends on the CHAN_ID bit. |
whismanoid | 0:3edb3708c8c5 | 2072 | // when CHAN_ID = 0: misoData16 = 0 DATA[11:0] x x x |
whismanoid | 0:3edb3708c8c5 | 2073 | // when CHAN_ID = 1: misoData16 = CH[3:0] DATA[11:0] |
whismanoid | 0:3edb3708c8c5 | 2074 | // For internal clock modes, the data format always includes the channel address. |
whismanoid | 0:3edb3708c8c5 | 2075 | // misoData16 = CH[3:0] DATA[11:0] |
whismanoid | 0:3edb3708c8c5 | 2076 | if (g_MAX11131_device.chan_id_0_1 != 0) { |
whismanoid | 0:3edb3708c8c5 | 2077 | AINcode_print_value_chanID(cmdLine, nWords); |
whismanoid | 0:3edb3708c8c5 | 2078 | return; |
whismanoid | 0:3edb3708c8c5 | 2079 | } |
whismanoid | 0:3edb3708c8c5 | 2080 | cmdLine.serial().printf("ScanRead_nWords_externalClock nWords=%d\r\n", nWords); |
whismanoid | 0:3edb3708c8c5 | 2081 | for (int index = 0; index < nWords; index++) { |
whismanoid | 0:3edb3708c8c5 | 2082 | // int16_t misoData16 = MAX11131_ScanRead(); |
whismanoid | 0:3edb3708c8c5 | 2083 | int16_t value_u12 = ((g_MAX11131_device.RAW_misoData16[index] >> 3) & 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 2084 | int channelId = g_MAX11131_device.channelNumber_0_15; |
whismanoid | 0:3edb3708c8c5 | 2085 | // diagnostic: print raw MISO data |
whismanoid | 0:3edb3708c8c5 | 2086 | cmdLine.serial().printf(" MAX11131.MISO[%u]=0x%4.4x:", index, |
whismanoid | 0:3edb3708c8c5 | 2087 | (g_MAX11131_device.RAW_misoData16[index] & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 2088 | print_value(cmdLine, value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 2089 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2090 | } |
whismanoid | 0:3edb3708c8c5 | 2091 | } |
whismanoid | 0:3edb3708c8c5 | 2092 | |
whismanoid | 0:3edb3708c8c5 | 2093 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2094 | // read data words and calculate mean, stddev |
whismanoid | 0:3edb3708c8c5 | 2095 | // @pre RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 2096 | // @pre AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 2097 | void AINcode_print_value_chanID_mean(CmdLine& cmdLine, int nWords) |
whismanoid | 0:3edb3708c8c5 | 2098 | { |
whismanoid | 0:3edb3708c8c5 | 2099 | cmdLine.serial().printf("ScanRead_nWords_chanID_mean nWords=%d\r\n", nWords); |
whismanoid | 0:3edb3708c8c5 | 2100 | double Sx = 0; |
whismanoid | 0:3edb3708c8c5 | 2101 | double Sxx = 0; |
whismanoid | 0:3edb3708c8c5 | 2102 | for (int index = 0; index < nWords; index++) { |
whismanoid | 0:3edb3708c8c5 | 2103 | //~ int16_t misoData16 = MAX11131_ScanRead(); |
whismanoid | 0:3edb3708c8c5 | 2104 | // For internal clock modes, the data format always includes the channel address. |
whismanoid | 0:3edb3708c8c5 | 2105 | // misoData16 = CH[3:0] DATA[11:0] |
whismanoid | 0:3edb3708c8c5 | 2106 | int16_t value_u12 = (g_MAX11131_device.RAW_misoData16[index] & 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 2107 | int channelId = ((g_MAX11131_device.RAW_misoData16[index] >> 12) & 0x000F); |
whismanoid | 0:3edb3708c8c5 | 2108 | // TODO: sign-extend value_s12 from value_u12 |
whismanoid | 0:3edb3708c8c5 | 2109 | // |
whismanoid | 0:3edb3708c8c5 | 2110 | cmdLine.serial().printf("n=%d", index); |
whismanoid | 0:3edb3708c8c5 | 2111 | print_value(cmdLine, value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 2112 | // |
whismanoid | 0:3edb3708c8c5 | 2113 | Sx = Sx + value_u12; |
whismanoid | 0:3edb3708c8c5 | 2114 | Sxx = Sxx + ((double)value_u12 * value_u12); |
whismanoid | 0:3edb3708c8c5 | 2115 | cmdLine.serial().printf(" Sx=%f Sxx=%f\r\n", Sx, Sxx); |
whismanoid | 0:3edb3708c8c5 | 2116 | } |
whismanoid | 0:3edb3708c8c5 | 2117 | double mean = Sx / nWords; |
whismanoid | 0:3edb3708c8c5 | 2118 | cmdLine.serial().printf(" mean=%f=0x%4.4x", mean, (int)mean); |
whismanoid | 0:3edb3708c8c5 | 2119 | // calculate standard deviation from N, Sx, Sxx |
whismanoid | 0:3edb3708c8c5 | 2120 | if (nWords >= 2) |
whismanoid | 0:3edb3708c8c5 | 2121 | { |
whismanoid | 0:3edb3708c8c5 | 2122 | double variance = (Sxx - ( Sx * Sx / nWords)) / (nWords - 1); |
whismanoid | 0:3edb3708c8c5 | 2123 | // stddev = square root of variance |
whismanoid | 0:3edb3708c8c5 | 2124 | double stddev = sqrt(variance); |
whismanoid | 0:3edb3708c8c5 | 2125 | cmdLine.serial().printf(" variance=%f stddev=%f", variance, stddev); |
whismanoid | 0:3edb3708c8c5 | 2126 | } |
whismanoid | 0:3edb3708c8c5 | 2127 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2128 | } |
whismanoid | 0:3edb3708c8c5 | 2129 | |
whismanoid | 0:3edb3708c8c5 | 2130 | /* MAX11131_print_register_verbose |
whismanoid | 0:3edb3708c8c5 | 2131 | * |
whismanoid | 0:3edb3708c8c5 | 2132 | * TODO: document this function |
whismanoid | 0:3edb3708c8c5 | 2133 | * This header was inserted by uncrustify; see uncrustify_func_header.txt. |
whismanoid | 0:3edb3708c8c5 | 2134 | * |
whismanoid | 0:3edb3708c8c5 | 2135 | */ |
whismanoid | 0:3edb3708c8c5 | 2136 | void MAX11131_print_register_verbose(CmdLine& cmdLine, int16_t registerData) |
whismanoid | 0:3edb3708c8c5 | 2137 | { |
whismanoid | 0:3edb3708c8c5 | 2138 | if (registerData & 0x8000) |
whismanoid | 0:3edb3708c8c5 | 2139 | { |
whismanoid | 0:3edb3708c8c5 | 2140 | switch (registerData & 0xF800) |
whismanoid | 0:3edb3708c8c5 | 2141 | { |
whismanoid | 0:3edb3708c8c5 | 2142 | case 0x8000: // ADC_CONFIGURATION 0x8000..0x87FF format: 1 0 0 0 0 REFSEL AVGON NAVG[1:0] NSCAN[1:0] SPM[1:0] ECHO 0 0 |
whismanoid | 0:3edb3708c8c5 | 2143 | cmdLine.serial().printf(" ADC_CONFIGURATION"); |
whismanoid | 0:3edb3708c8c5 | 2144 | { |
whismanoid | 0:3edb3708c8c5 | 2145 | // define write-only register ADC_CONFIGURATION |
whismanoid | 0:3edb3708c8c5 | 2146 | //int16_t ADC_CONFIGURATION = 0x8000; //!< registerData 0x8000..0x87FF format: 1 0 0 0 0 REFSEL AVGON NAVG[1:0] NSCAN[1:0] SPM[1:0] ECHO 0 0 |
whismanoid | 0:3edb3708c8c5 | 2147 | const int REFSEL_LSB = 10; const int REFSEL_BITS = 0x01; // ADC_CONFIGURATION.REFSEL |
whismanoid | 0:3edb3708c8c5 | 2148 | const int AVGON_LSB = 9; const int AVGON_BITS = 0x01; // ADC_CONFIGURATION.AVGON |
whismanoid | 0:3edb3708c8c5 | 2149 | const int NAVG_LSB = 7; const int NAVG_BITS = 0x03; // ADC_CONFIGURATION.NAVG[1:0] |
whismanoid | 0:3edb3708c8c5 | 2150 | const int NSCAN_LSB = 5; const int NSCAN_BITS = 0x03; // ADC_CONFIGURATION.NSCAN[1:0] |
whismanoid | 0:3edb3708c8c5 | 2151 | const int SPM_LSB = 3; const int SPM_BITS = 0x03; // ADC_CONFIGURATION.SPM[1:0] |
whismanoid | 0:3edb3708c8c5 | 2152 | const int ECHO_LSB = 2; const int ECHO_BITS = 0x01; // ADC_CONFIGURATION.ECHO |
whismanoid | 0:3edb3708c8c5 | 2153 | |
whismanoid | 0:3edb3708c8c5 | 2154 | const int REFSEL = ((registerData >> REFSEL_LSB) & REFSEL_BITS); |
whismanoid | 0:3edb3708c8c5 | 2155 | const int AVGON = ((registerData >> AVGON_LSB) & AVGON_BITS); |
whismanoid | 0:3edb3708c8c5 | 2156 | const int NAVG = ((registerData >> NAVG_LSB) & NAVG_BITS); |
whismanoid | 0:3edb3708c8c5 | 2157 | const int NSCAN = ((registerData >> NSCAN_LSB) & NSCAN_BITS); |
whismanoid | 0:3edb3708c8c5 | 2158 | const int SPM = ((registerData >> SPM_LSB) & SPM_BITS); |
whismanoid | 0:3edb3708c8c5 | 2159 | const int ECHO = ((registerData >> ECHO_LSB) & ECHO_BITS); |
whismanoid | 0:3edb3708c8c5 | 2160 | |
whismanoid | 0:3edb3708c8c5 | 2161 | if (REFSEL) { |
whismanoid | 0:3edb3708c8c5 | 2162 | cmdLine.serial().printf(" REFSEL=%d", REFSEL); |
whismanoid | 0:3edb3708c8c5 | 2163 | } |
whismanoid | 0:3edb3708c8c5 | 2164 | if (AVGON) { |
whismanoid | 0:3edb3708c8c5 | 2165 | cmdLine.serial().printf(" AVGON=%d", AVGON); |
whismanoid | 0:3edb3708c8c5 | 2166 | } |
whismanoid | 0:3edb3708c8c5 | 2167 | if (NAVG) { |
whismanoid | 0:3edb3708c8c5 | 2168 | cmdLine.serial().printf(" NAVG=%d", NAVG); |
whismanoid | 0:3edb3708c8c5 | 2169 | } |
whismanoid | 0:3edb3708c8c5 | 2170 | if (NSCAN) { |
whismanoid | 0:3edb3708c8c5 | 2171 | cmdLine.serial().printf(" NSCAN=%d", NSCAN); |
whismanoid | 0:3edb3708c8c5 | 2172 | } |
whismanoid | 0:3edb3708c8c5 | 2173 | if (SPM) { |
whismanoid | 0:3edb3708c8c5 | 2174 | cmdLine.serial().printf(" SPM=%d", SPM); |
whismanoid | 0:3edb3708c8c5 | 2175 | } |
whismanoid | 0:3edb3708c8c5 | 2176 | if (ECHO) { |
whismanoid | 0:3edb3708c8c5 | 2177 | cmdLine.serial().printf(" ECHO=%d", ECHO); |
whismanoid | 0:3edb3708c8c5 | 2178 | } |
whismanoid | 0:3edb3708c8c5 | 2179 | } |
whismanoid | 0:3edb3708c8c5 | 2180 | break; |
whismanoid | 0:3edb3708c8c5 | 2181 | case 0x8800: // UNIPOLAR 0x8800..0x8FFF format: 1 0 0 0 1 UCH0/1 UCH2/3 UCH4/5 UCH6/7 UCH8/9 UCH10/11 UCH12/13 UCH14/15 PDIFF_COM x x |
whismanoid | 0:3edb3708c8c5 | 2182 | cmdLine.serial().printf(" UNIPOLAR 0x%4.4x", ((registerData >> 3) & 0xFF)); |
whismanoid | 0:3edb3708c8c5 | 2183 | if ((registerData >> 2) & 0x01) { |
whismanoid | 0:3edb3708c8c5 | 2184 | cmdLine.serial().printf(" PDIFF_COM"); |
whismanoid | 0:3edb3708c8c5 | 2185 | } |
whismanoid | 0:3edb3708c8c5 | 2186 | break; |
whismanoid | 0:3edb3708c8c5 | 2187 | case 0x9000: // BIPOLAR 0x9000..0x97FF format: 1 0 0 1 0 BCH0/1 BCH2/3 BCH4/5 BCH6/7 BCH8/9 BCH10/11 BCH12/13 BCH14/15 x x x |
whismanoid | 0:3edb3708c8c5 | 2188 | cmdLine.serial().printf(" BIPOLAR 0x%4.4x", ((registerData >> 3) & 0xFF)); |
whismanoid | 0:3edb3708c8c5 | 2189 | break; |
whismanoid | 0:3edb3708c8c5 | 2190 | case 0x9800: // RANGE 0x9800..0x9FFF format: 1 0 0 1 1 RANGE0/1 RANGE2/3 RANGE4/5 RANGE6/7 RANGE8/9 RANGE10/11 RANGE12/13 RANGE14/15 x x x |
whismanoid | 0:3edb3708c8c5 | 2191 | cmdLine.serial().printf(" RANGE 0x%4.4x", ((registerData >> 3) & 0xFF)); |
whismanoid | 0:3edb3708c8c5 | 2192 | break; |
whismanoid | 0:3edb3708c8c5 | 2193 | case 0xA000: // CSCAN0 0xA000..0xA7FF format: 1 0 1 0 0 CHSCAN15 CHSCAN14 CHSCAN13 CHSCAN12 CHSCAN11 CHSCAN10 CHSCAN9 CHSCAN8 x x x |
whismanoid | 0:3edb3708c8c5 | 2194 | cmdLine.serial().printf(" CSCAN0 0x%4.4x", ((registerData >> 3) & 0xFF)); |
whismanoid | 0:3edb3708c8c5 | 2195 | break; |
whismanoid | 0:3edb3708c8c5 | 2196 | case 0xA800: // CSCAN1 0xA800..0xAFFF format: 1 0 1 0 1 CHSCAN7 CHSCAN6 CHSCAN5 CHSCAN4 CHSCAN3 CHSCAN2 CHSCAN1 CHSCAN0 x x x |
whismanoid | 0:3edb3708c8c5 | 2197 | cmdLine.serial().printf(" CSCAN1 0x%4.4x", ((registerData >> 3) & 0xFF)); |
whismanoid | 0:3edb3708c8c5 | 2198 | break; |
whismanoid | 0:3edb3708c8c5 | 2199 | case 0xB000: // SAMPLESET 0xB000..0xB7FF format: 1 0 1 1 0 SEQ_LENGTH[7:0] x x x |
whismanoid | 0:3edb3708c8c5 | 2200 | cmdLine.serial().printf(" SAMPLESET SEQ_LENGTH[7:0]=0x%4.4x", ((registerData >> 3) & 0xFF)); |
whismanoid | 0:3edb3708c8c5 | 2201 | cmdLine.serial().printf(" so length=%d channels", (((registerData >> 3) & 0xFF) + 1)); |
whismanoid | 0:3edb3708c8c5 | 2202 | break; |
whismanoid | 0:3edb3708c8c5 | 2203 | default: |
whismanoid | 0:3edb3708c8c5 | 2204 | cmdLine.serial().printf(" ???"); |
whismanoid | 0:3edb3708c8c5 | 2205 | break; |
whismanoid | 0:3edb3708c8c5 | 2206 | } |
whismanoid | 0:3edb3708c8c5 | 2207 | } |
whismanoid | 0:3edb3708c8c5 | 2208 | else |
whismanoid | 0:3edb3708c8c5 | 2209 | { |
whismanoid | 0:3edb3708c8c5 | 2210 | // ADC_MODE_CONTROL 0x0000..0x7FFF format: 0 SCAN[3:0] CHSEL[3:0] RESET[1:0] PM[1:0] CHAN_ID SWCNV 0 |
whismanoid | 0:3edb3708c8c5 | 2211 | cmdLine.serial().printf(" ADC_MODE_CONTROL"); |
whismanoid | 0:3edb3708c8c5 | 2212 | |
whismanoid | 0:3edb3708c8c5 | 2213 | // define write-only register ADC_MODE_CONTROL |
whismanoid | 0:3edb3708c8c5 | 2214 | //int16_t ADC_MODE_CONTROL = 0; //!< registerData 0x0000..0x7FFF format: 0 SCAN[3:0] CHSEL[3:0] RESET[1:0] PM[1:0] CHAN_ID SWCNV 0 |
whismanoid | 0:3edb3708c8c5 | 2215 | const int SCAN_LSB = 11; const int SCAN_BITS = 0x0F; //!< ADC_MODE_CONTROL.SCAN[3:0] ADC Scan Control (command) |
whismanoid | 0:3edb3708c8c5 | 2216 | const int CHSEL_LSB = 7; const int CHSEL_BITS = 0x0F; //!< ADC_MODE_CONTROL.CHSEL[3:0] Analog Input Channel Select AIN0..AIN15 |
whismanoid | 0:3edb3708c8c5 | 2217 | const int RESET_LSB = 5; const int RESET_BITS = 0x03; //!< ADC_MODE_CONTROL.RESET[1:0] Reset 0=Normal 1=ResetFIFO 2=ResetAllRegisters 3=reserved |
whismanoid | 0:3edb3708c8c5 | 2218 | const int PM_LSB = 3; const int PM_BITS = 0x03; //!< ADC_MODE_CONTROL.PM[1:0] Power Management 0=Normal, 1=AutoShutdown, 2=AutoStandby 3=reserved |
whismanoid | 0:3edb3708c8c5 | 2219 | const int CHAN_ID_LSB = 2; const int CHAN_ID_BITS = 0x01; //!< ADC_MODE_CONTROL.CHAN_ID |
whismanoid | 0:3edb3708c8c5 | 2220 | const int SWCNV_LSB = 1; const int SWCNV_BITS = 0x01; //!< ADC_MODE_CONTROL.SWCNV |
whismanoid | 0:3edb3708c8c5 | 2221 | |
whismanoid | 0:3edb3708c8c5 | 2222 | const int SCAN = ((registerData >> SCAN_LSB) & SCAN_BITS); |
whismanoid | 0:3edb3708c8c5 | 2223 | const int CHSEL = ((registerData >> CHSEL_LSB) & CHSEL_BITS); |
whismanoid | 0:3edb3708c8c5 | 2224 | const int RESET = ((registerData >> RESET_LSB) & RESET_BITS); |
whismanoid | 0:3edb3708c8c5 | 2225 | const int PM = ((registerData >> PM_LSB) & PM_BITS); |
whismanoid | 0:3edb3708c8c5 | 2226 | const int CHANID = ((registerData >> CHAN_ID_LSB) & CHAN_ID_BITS); |
whismanoid | 0:3edb3708c8c5 | 2227 | const int SWCNV = ((registerData >> SWCNV_LSB) & SWCNV_BITS); |
whismanoid | 0:3edb3708c8c5 | 2228 | |
whismanoid | 0:3edb3708c8c5 | 2229 | switch (SCAN) |
whismanoid | 0:3edb3708c8c5 | 2230 | { |
whismanoid | 0:3edb3708c8c5 | 2231 | case MAX11131::SCAN_0000_NOP: |
whismanoid | 0:3edb3708c8c5 | 2232 | cmdLine.serial().printf(" SCAN_0000_NOP"); |
whismanoid | 0:3edb3708c8c5 | 2233 | break; |
whismanoid | 0:3edb3708c8c5 | 2234 | case MAX11131::SCAN_0001_Manual: |
whismanoid | 0:3edb3708c8c5 | 2235 | cmdLine.serial().printf(" SCAN_0001_Manual CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2236 | break; |
whismanoid | 0:3edb3708c8c5 | 2237 | case MAX11131::SCAN_0010_Repeat: |
whismanoid | 0:3edb3708c8c5 | 2238 | cmdLine.serial().printf(" SCAN_0010_Repeat CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2239 | break; |
whismanoid | 0:3edb3708c8c5 | 2240 | case MAX11131::SCAN_0011_StandardInternalClock: |
whismanoid | 0:3edb3708c8c5 | 2241 | cmdLine.serial().printf(" SCAN_0011_StandardInt CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2242 | break; |
whismanoid | 0:3edb3708c8c5 | 2243 | case MAX11131::SCAN_0100_StandardExternalClock: |
whismanoid | 0:3edb3708c8c5 | 2244 | cmdLine.serial().printf(" SCAN_0100_StandardExt CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2245 | break; |
whismanoid | 0:3edb3708c8c5 | 2246 | case MAX11131::SCAN_0101_UpperInternalClock: |
whismanoid | 0:3edb3708c8c5 | 2247 | cmdLine.serial().printf(" SCAN_0101_UpperInt CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2248 | break; |
whismanoid | 0:3edb3708c8c5 | 2249 | case MAX11131::SCAN_0110_UpperExternalClock: |
whismanoid | 0:3edb3708c8c5 | 2250 | cmdLine.serial().printf(" SCAN_0110_UpperExt CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2251 | break; |
whismanoid | 0:3edb3708c8c5 | 2252 | case MAX11131::SCAN_0111_CustomInternalClock: |
whismanoid | 0:3edb3708c8c5 | 2253 | cmdLine.serial().printf(" SCAN_0111_CustomInt"); |
whismanoid | 0:3edb3708c8c5 | 2254 | break; |
whismanoid | 0:3edb3708c8c5 | 2255 | case MAX11131::SCAN_1000_CustomExternalClock: |
whismanoid | 0:3edb3708c8c5 | 2256 | cmdLine.serial().printf(" SCAN_1000_CustomExt"); |
whismanoid | 0:3edb3708c8c5 | 2257 | break; |
whismanoid | 0:3edb3708c8c5 | 2258 | case MAX11131::SCAN_1001_SampleSetExternalClock: |
whismanoid | 0:3edb3708c8c5 | 2259 | cmdLine.serial().printf(" SCAN_1001_SampleSetExt"); |
whismanoid | 0:3edb3708c8c5 | 2260 | break; |
whismanoid | 0:3edb3708c8c5 | 2261 | default: |
whismanoid | 0:3edb3708c8c5 | 2262 | cmdLine.serial().printf(" SCAN=%d", SCAN); |
whismanoid | 0:3edb3708c8c5 | 2263 | cmdLine.serial().printf(" CHSEL=%d", CHSEL); |
whismanoid | 0:3edb3708c8c5 | 2264 | } |
whismanoid | 0:3edb3708c8c5 | 2265 | if (RESET) { |
whismanoid | 0:3edb3708c8c5 | 2266 | cmdLine.serial().printf(" RESET=%d", RESET); |
whismanoid | 0:3edb3708c8c5 | 2267 | } |
whismanoid | 0:3edb3708c8c5 | 2268 | if (PM) { |
whismanoid | 0:3edb3708c8c5 | 2269 | cmdLine.serial().printf(" PM=%d", PM); |
whismanoid | 0:3edb3708c8c5 | 2270 | } |
whismanoid | 0:3edb3708c8c5 | 2271 | if (SCAN != MAX11131::SCAN_0000_NOP) |
whismanoid | 0:3edb3708c8c5 | 2272 | { |
whismanoid | 0:3edb3708c8c5 | 2273 | if (g_MAX11131_device.isExternalClock) |
whismanoid | 0:3edb3708c8c5 | 2274 | { |
whismanoid | 0:3edb3708c8c5 | 2275 | // if external clock mode, print CHANID |
whismanoid | 0:3edb3708c8c5 | 2276 | cmdLine.serial().printf(" CHANID=%d", CHANID); |
whismanoid | 0:3edb3708c8c5 | 2277 | } |
whismanoid | 0:3edb3708c8c5 | 2278 | else |
whismanoid | 0:3edb3708c8c5 | 2279 | { |
whismanoid | 0:3edb3708c8c5 | 2280 | // if internal clock mode, print SWCNV |
whismanoid | 0:3edb3708c8c5 | 2281 | cmdLine.serial().printf(" SWCNV=%d", SWCNV); |
whismanoid | 0:3edb3708c8c5 | 2282 | } |
whismanoid | 0:3edb3708c8c5 | 2283 | } |
whismanoid | 0:3edb3708c8c5 | 2284 | } |
whismanoid | 0:3edb3708c8c5 | 2285 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2286 | } |
whismanoid | 0:3edb3708c8c5 | 2287 | |
whismanoid | 0:3edb3708c8c5 | 2288 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2289 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 2290 | // declare user-provided hardware interface function |
whismanoid | 0:3edb3708c8c5 | 2291 | // Assert CNVST convert start. |
whismanoid | 0:3edb3708c8c5 | 2292 | // Required when using any of the InternalClock modes with SWCNV 0. |
whismanoid | 0:3edb3708c8c5 | 2293 | // Trigger measurement by driving CNVST/AIN14 pin low for a minimum active-low pulse duration of 5ns. (AIN14 is not available) |
whismanoid | 0:3edb3708c8c5 | 2294 | // |
whismanoid | 0:3edb3708c8c5 | 2295 | //void CNVSToutputPulseLow() |
whismanoid | 0:3edb3708c8c5 | 2296 | //{ |
whismanoid | 0:3edb3708c8c5 | 2297 | // digitalInOut9.output(); |
whismanoid | 0:3edb3708c8c5 | 2298 | // digitalInOut9.write(0); |
whismanoid | 0:3edb3708c8c5 | 2299 | // // CNVST active-low pulse duration must be 5ns (0.005us) minimum. |
whismanoid | 0:3edb3708c8c5 | 2300 | // digitalInOut9.write(1); |
whismanoid | 0:3edb3708c8c5 | 2301 | // |
whismanoid | 0:3edb3708c8c5 | 2302 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2303 | // cmdLine_microUSBserial.serial().printf(" CNVSToutputPulseLow "); |
whismanoid | 0:3edb3708c8c5 | 2304 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2305 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2306 | // cmdLine_DAPLINKserial.serial().printf(" CNVSToutputPulseLow "); |
whismanoid | 0:3edb3708c8c5 | 2307 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2308 | //} |
whismanoid | 0:3edb3708c8c5 | 2309 | |
whismanoid | 0:3edb3708c8c5 | 2310 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2311 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 2312 | // declare user-provided hardware interface function |
whismanoid | 0:3edb3708c8c5 | 2313 | // Wait for EOC pin low, indicating end of conversion. |
whismanoid | 0:3edb3708c8c5 | 2314 | // Required when using any of the InternalClock modes. |
whismanoid | 0:3edb3708c8c5 | 2315 | // |
whismanoid | 0:3edb3708c8c5 | 2316 | //void EOCinputWaitUntilLow() |
whismanoid | 0:3edb3708c8c5 | 2317 | //{ |
whismanoid | 0:3edb3708c8c5 | 2318 | // // |
whismanoid | 0:3edb3708c8c5 | 2319 | // // Arduino: pulseIn(pinIndex, HIGH | LOW, timeout_usec) // length of pulse in usec, or 0 if timeout |
whismanoid | 0:3edb3708c8c5 | 2320 | // // |
whismanoid | 0:3edb3708c8c5 | 2321 | // // const int timeout_usec = 1000; |
whismanoid | 0:3edb3708c8c5 | 2322 | // // TODO1: implement EOCinputWaitUntilLow APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 2323 | // // similar to Arduino pulseIn(MAX11131_EOC_Pin, LOW, timeout_usec); |
whismanoid | 0:3edb3708c8c5 | 2324 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2325 | // cmdLine_microUSBserial.serial().printf(" EOCinputWaitUntilLow "); |
whismanoid | 0:3edb3708c8c5 | 2326 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2327 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2328 | // cmdLine_DAPLINKserial.serial().printf(" EOCinputWaitUntilLow "); |
whismanoid | 0:3edb3708c8c5 | 2329 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2330 | //} |
whismanoid | 0:3edb3708c8c5 | 2331 | |
whismanoid | 0:3edb3708c8c5 | 2332 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2333 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 2334 | // declare user-provided hardware interface function |
whismanoid | 0:3edb3708c8c5 | 2335 | // Assert SPI Chip Select |
whismanoid | 0:3edb3708c8c5 | 2336 | // SPI chip-select for MAX5715 |
whismanoid | 0:3edb3708c8c5 | 2337 | // |
whismanoid | 0:3edb3708c8c5 | 2338 | //void SPIoutputCS(int isLogicHigh) |
whismanoid | 0:3edb3708c8c5 | 2339 | //{ |
whismanoid | 0:3edb3708c8c5 | 2340 | // g_SPI_cs_state = isLogicHigh; |
whismanoid | 0:3edb3708c8c5 | 2341 | // spi_cs = g_SPI_cs_state; |
whismanoid | 0:3edb3708c8c5 | 2342 | //} |
whismanoid | 0:3edb3708c8c5 | 2343 | |
whismanoid | 0:3edb3708c8c5 | 2344 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2345 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 2346 | // declare user-provided hardware interface function SPI write 16 bits |
whismanoid | 0:3edb3708c8c5 | 2347 | // SPI interface to MAX11131 shift 16 bits mosiData16 into MAX11131 DIN |
whismanoid | 0:3edb3708c8c5 | 2348 | // ignoring MAX11131 DOUT |
whismanoid | 0:3edb3708c8c5 | 2349 | //void SPIwrite16bits(int16_t mosiData16) |
whismanoid | 0:3edb3708c8c5 | 2350 | //{ |
whismanoid | 0:3edb3708c8c5 | 2351 | // // TODO1: implement SPIwrite16bits |
whismanoid | 0:3edb3708c8c5 | 2352 | // size_t byteCount = 2; |
whismanoid | 0:3edb3708c8c5 | 2353 | // static char mosiData[2]; |
whismanoid | 0:3edb3708c8c5 | 2354 | // static char misoData[2]; |
whismanoid | 0:3edb3708c8c5 | 2355 | // mosiData[0] = (char)((mosiData16 >> 8) & 0xFF); // MSByte |
whismanoid | 0:3edb3708c8c5 | 2356 | // mosiData[1] = (char)((mosiData16 >> 0) & 0xFF); // LSByte |
whismanoid | 0:3edb3708c8c5 | 2357 | // // |
whismanoid | 0:3edb3708c8c5 | 2358 | // // Arduino: begin critical section: noInterrupts() masks all interrupt sources; end critical section with interrupts() |
whismanoid | 0:3edb3708c8c5 | 2359 | // //~ noInterrupts(); |
whismanoid | 0:3edb3708c8c5 | 2360 | // // |
whismanoid | 0:3edb3708c8c5 | 2361 | // //~ digitalWrite(Scope_Trigger_Pin, LOW); // diagnostic Scope_Trigger_Pin |
whismanoid | 0:3edb3708c8c5 | 2362 | // // |
whismanoid | 0:3edb3708c8c5 | 2363 | // unsigned int numBytesTransferred = spi.write(mosiData, byteCount, misoData, byteCount); |
whismanoid | 0:3edb3708c8c5 | 2364 | // //~ SPI.transfer(mosiData8_FF0000); |
whismanoid | 0:3edb3708c8c5 | 2365 | // //~ SPI.transfer(mosiData16_00FF00); |
whismanoid | 0:3edb3708c8c5 | 2366 | // //~ SPI.transfer(mosiData16_0000FF); |
whismanoid | 0:3edb3708c8c5 | 2367 | // // |
whismanoid | 0:3edb3708c8c5 | 2368 | // //~ digitalWrite(Scope_Trigger_Pin, HIGH); // diagnostic Scope_Trigger_Pin |
whismanoid | 0:3edb3708c8c5 | 2369 | // // |
whismanoid | 0:3edb3708c8c5 | 2370 | // // Arduino: begin critical section: noInterrupts() masks all interrupt sources; end critical section with interrupts() |
whismanoid | 0:3edb3708c8c5 | 2371 | // //~ interrupts(); |
whismanoid | 0:3edb3708c8c5 | 2372 | // // |
whismanoid | 0:3edb3708c8c5 | 2373 | // // VERIFY: SPIwrite24bits print diagnostic information |
whismanoid | 0:3edb3708c8c5 | 2374 | // //cmdLine.serial().printf(" MOSI->")); |
whismanoid | 0:3edb3708c8c5 | 2375 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2376 | // //Serial.print( (mosiData8_FF0000 & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2377 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2378 | // //Serial.print( (mosiData16_00FF00 & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2379 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2380 | // //Serial.print( (mosiData16_0000FF & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2381 | // // hex dump mosiData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2382 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2383 | // cmdLine_microUSBserial.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 2384 | // if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 2385 | // cmdLine_microUSBserial.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 2386 | // } |
whismanoid | 0:3edb3708c8c5 | 2387 | // cmdLine_microUSBserial.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 2388 | // for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2389 | // { |
whismanoid | 0:3edb3708c8c5 | 2390 | // cmdLine_microUSBserial.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2391 | // } |
whismanoid | 0:3edb3708c8c5 | 2392 | // // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2393 | // cmdLine_microUSBserial.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 2394 | // for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2395 | // { |
whismanoid | 0:3edb3708c8c5 | 2396 | // cmdLine_microUSBserial.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2397 | // } |
whismanoid | 0:3edb3708c8c5 | 2398 | // cmdLine_microUSBserial.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 2399 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2400 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2401 | // cmdLine_DAPLINKserial.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 2402 | // if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 2403 | // cmdLine_DAPLINKserial.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 2404 | // } |
whismanoid | 0:3edb3708c8c5 | 2405 | // cmdLine_DAPLINKserial.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 2406 | // for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2407 | // { |
whismanoid | 0:3edb3708c8c5 | 2408 | // cmdLine_DAPLINKserial.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2409 | // } |
whismanoid | 0:3edb3708c8c5 | 2410 | // // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2411 | // cmdLine_DAPLINKserial.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 2412 | // for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2413 | // { |
whismanoid | 0:3edb3708c8c5 | 2414 | // cmdLine_DAPLINKserial.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2415 | // } |
whismanoid | 0:3edb3708c8c5 | 2416 | // cmdLine_DAPLINKserial.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 2417 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2418 | // // VERIFY: DIAGNOSTIC: print MAX5715 device register write |
whismanoid | 0:3edb3708c8c5 | 2419 | // // TODO: MAX5715_print_register_verbose(mosiData8_FF0000, mosiData16_00FFFF); |
whismanoid | 0:3edb3708c8c5 | 2420 | // // TODO: print_verbose_SPI_diagnostic(mosiData16_FF00, mosiData16_00FF, misoData16_FF00, misoData16_00FF); |
whismanoid | 0:3edb3708c8c5 | 2421 | // // |
whismanoid | 0:3edb3708c8c5 | 2422 | // // int misoData16 = (misoData16_FF00 << 8) | misoData16_00FF; |
whismanoid | 0:3edb3708c8c5 | 2423 | // // return misoData16; |
whismanoid | 0:3edb3708c8c5 | 2424 | //} |
whismanoid | 0:3edb3708c8c5 | 2425 | |
whismanoid | 0:3edb3708c8c5 | 2426 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2427 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 2428 | // declare user-provided hardware interface function SPI write 17-24 bits |
whismanoid | 0:3edb3708c8c5 | 2429 | // SPI interface to MAX11131 shift 16 bits mosiData16 into MAX11131 DIN |
whismanoid | 0:3edb3708c8c5 | 2430 | // followed by one additional SCLK byte. |
whismanoid | 0:3edb3708c8c5 | 2431 | // ignoring MAX11131 DOUT |
whismanoid | 0:3edb3708c8c5 | 2432 | //void SPIwrite24bits(int16_t mosiData16_FFFF00, int8_t mosiData8_0000FF) |
whismanoid | 0:3edb3708c8c5 | 2433 | //{ |
whismanoid | 0:3edb3708c8c5 | 2434 | // // TODO1: implement SPIwrite24bits |
whismanoid | 0:3edb3708c8c5 | 2435 | // size_t byteCount = 3; |
whismanoid | 0:3edb3708c8c5 | 2436 | // static char mosiData[3]; |
whismanoid | 0:3edb3708c8c5 | 2437 | // static char misoData[3]; |
whismanoid | 0:3edb3708c8c5 | 2438 | // mosiData[0] = (char)((mosiData16_FFFF00 >> 8) & 0xFF); // MSByte |
whismanoid | 0:3edb3708c8c5 | 2439 | // mosiData[1] = (char)((mosiData16_FFFF00 >> 0) & 0xFF); // LSByte |
whismanoid | 0:3edb3708c8c5 | 2440 | // mosiData[2] = mosiData8_0000FF; |
whismanoid | 0:3edb3708c8c5 | 2441 | // // |
whismanoid | 0:3edb3708c8c5 | 2442 | // // Arduino: begin critical section: noInterrupts() masks all interrupt sources; end critical section with interrupts() |
whismanoid | 0:3edb3708c8c5 | 2443 | // //~ noInterrupts(); |
whismanoid | 0:3edb3708c8c5 | 2444 | // // |
whismanoid | 0:3edb3708c8c5 | 2445 | // //~ digitalWrite(Scope_Trigger_Pin, LOW); // diagnostic Scope_Trigger_Pin |
whismanoid | 0:3edb3708c8c5 | 2446 | // // |
whismanoid | 0:3edb3708c8c5 | 2447 | // unsigned int numBytesTransferred = spi.write(mosiData, byteCount, misoData, byteCount); |
whismanoid | 0:3edb3708c8c5 | 2448 | // //~ SPI.transfer(mosiData8_FF0000); |
whismanoid | 0:3edb3708c8c5 | 2449 | // //~ SPI.transfer(mosiData16_00FF00); |
whismanoid | 0:3edb3708c8c5 | 2450 | // //~ SPI.transfer(mosiData16_0000FF); |
whismanoid | 0:3edb3708c8c5 | 2451 | // // |
whismanoid | 0:3edb3708c8c5 | 2452 | // //~ digitalWrite(Scope_Trigger_Pin, HIGH); // diagnostic Scope_Trigger_Pin |
whismanoid | 0:3edb3708c8c5 | 2453 | // // |
whismanoid | 0:3edb3708c8c5 | 2454 | // // Arduino: begin critical section: noInterrupts() masks all interrupt sources; end critical section with interrupts() |
whismanoid | 0:3edb3708c8c5 | 2455 | // //~ interrupts(); |
whismanoid | 0:3edb3708c8c5 | 2456 | // // |
whismanoid | 0:3edb3708c8c5 | 2457 | // // VERIFY: SPIwrite24bits print diagnostic information |
whismanoid | 0:3edb3708c8c5 | 2458 | // //cmdLine.serial().printf(" MOSI->")); |
whismanoid | 0:3edb3708c8c5 | 2459 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2460 | // //Serial.print( (mosiData8_FF0000 & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2461 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2462 | // //Serial.print( (mosiData16_00FF00 & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2463 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2464 | // //Serial.print( (mosiData16_0000FF & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2465 | // // hex dump mosiData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2466 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2467 | // cmdLine_microUSBserial.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 2468 | // if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 2469 | // cmdLine_microUSBserial.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 2470 | // } |
whismanoid | 0:3edb3708c8c5 | 2471 | // cmdLine_microUSBserial.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 2472 | // for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2473 | // { |
whismanoid | 0:3edb3708c8c5 | 2474 | // cmdLine_microUSBserial.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2475 | // } |
whismanoid | 0:3edb3708c8c5 | 2476 | // // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2477 | // cmdLine_microUSBserial.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 2478 | // for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2479 | // { |
whismanoid | 0:3edb3708c8c5 | 2480 | // cmdLine_microUSBserial.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2481 | // } |
whismanoid | 0:3edb3708c8c5 | 2482 | // cmdLine_microUSBserial.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 2483 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2484 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2485 | // cmdLine_DAPLINKserial.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 2486 | // if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 2487 | // cmdLine_DAPLINKserial.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 2488 | // } |
whismanoid | 0:3edb3708c8c5 | 2489 | // cmdLine_DAPLINKserial.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 2490 | // for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2491 | // { |
whismanoid | 0:3edb3708c8c5 | 2492 | // cmdLine_DAPLINKserial.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2493 | // } |
whismanoid | 0:3edb3708c8c5 | 2494 | // // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2495 | // cmdLine_DAPLINKserial.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 2496 | // for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2497 | // { |
whismanoid | 0:3edb3708c8c5 | 2498 | // cmdLine_DAPLINKserial.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2499 | // } |
whismanoid | 0:3edb3708c8c5 | 2500 | // cmdLine_DAPLINKserial.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 2501 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2502 | // // VERIFY: DIAGNOSTIC: print MAX5715 device register write |
whismanoid | 0:3edb3708c8c5 | 2503 | // // TODO: MAX5715_print_register_verbose(mosiData8_FF0000, mosiData16_00FFFF); |
whismanoid | 0:3edb3708c8c5 | 2504 | // // |
whismanoid | 0:3edb3708c8c5 | 2505 | // // int misoData16 = (misoData16_FF00 << 8) | misoData16_00FF; |
whismanoid | 0:3edb3708c8c5 | 2506 | // // return misoData16; |
whismanoid | 0:3edb3708c8c5 | 2507 | //} |
whismanoid | 0:3edb3708c8c5 | 2508 | |
whismanoid | 0:3edb3708c8c5 | 2509 | //---------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2510 | // User-provided hardware function |
whismanoid | 0:3edb3708c8c5 | 2511 | // declare user-provided hardware interface function SPI read 16 bits while MOSI (Maxim DIN) is 0 |
whismanoid | 0:3edb3708c8c5 | 2512 | // SPI interface to capture 16 bits miso data from MAX11131 DOUT |
whismanoid | 0:3edb3708c8c5 | 2513 | //int16_t SPIread16bits() |
whismanoid | 0:3edb3708c8c5 | 2514 | //{ |
whismanoid | 0:3edb3708c8c5 | 2515 | // // TODO1: implement SPIread16bits |
whismanoid | 0:3edb3708c8c5 | 2516 | // int mosiData16 = 0; |
whismanoid | 0:3edb3708c8c5 | 2517 | // size_t byteCount = 2; |
whismanoid | 0:3edb3708c8c5 | 2518 | // static char mosiData[2]; |
whismanoid | 0:3edb3708c8c5 | 2519 | // static char misoData[2]; |
whismanoid | 0:3edb3708c8c5 | 2520 | // mosiData[0] = (char)((mosiData16 >> 8) & 0xFF); // MSByte |
whismanoid | 0:3edb3708c8c5 | 2521 | // mosiData[1] = (char)((mosiData16 >> 0) & 0xFF); // LSByte |
whismanoid | 0:3edb3708c8c5 | 2522 | // // |
whismanoid | 0:3edb3708c8c5 | 2523 | // // Arduino: begin critical section: noInterrupts() masks all interrupt sources; end critical section with interrupts() |
whismanoid | 0:3edb3708c8c5 | 2524 | // //~ noInterrupts(); |
whismanoid | 0:3edb3708c8c5 | 2525 | // // |
whismanoid | 0:3edb3708c8c5 | 2526 | // //~ digitalWrite(Scope_Trigger_Pin, LOW); // diagnostic Scope_Trigger_Pin |
whismanoid | 0:3edb3708c8c5 | 2527 | // // |
whismanoid | 0:3edb3708c8c5 | 2528 | // unsigned int numBytesTransferred = spi.write(mosiData, byteCount, misoData, byteCount); |
whismanoid | 0:3edb3708c8c5 | 2529 | // //~ SPI.transfer(mosiData8_FF0000); |
whismanoid | 0:3edb3708c8c5 | 2530 | // //~ SPI.transfer(mosiData16_00FF00); |
whismanoid | 0:3edb3708c8c5 | 2531 | // //~ SPI.transfer(mosiData16_0000FF); |
whismanoid | 0:3edb3708c8c5 | 2532 | // // |
whismanoid | 0:3edb3708c8c5 | 2533 | // //~ digitalWrite(Scope_Trigger_Pin, HIGH); // diagnostic Scope_Trigger_Pin |
whismanoid | 0:3edb3708c8c5 | 2534 | // // |
whismanoid | 0:3edb3708c8c5 | 2535 | // // Arduino: begin critical section: noInterrupts() masks all interrupt sources; end critical section with interrupts() |
whismanoid | 0:3edb3708c8c5 | 2536 | // //~ interrupts(); |
whismanoid | 0:3edb3708c8c5 | 2537 | // // |
whismanoid | 0:3edb3708c8c5 | 2538 | // // VERIFY: SPIwrite24bits print diagnostic information |
whismanoid | 0:3edb3708c8c5 | 2539 | // //cmdLine.serial().printf(" MOSI->")); |
whismanoid | 0:3edb3708c8c5 | 2540 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2541 | // //Serial.print( (mosiData8_FF0000 & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2542 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2543 | // //Serial.print( (mosiData16_00FF00 & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2544 | // //cmdLine.serial().printf(" 0x")); |
whismanoid | 0:3edb3708c8c5 | 2545 | // //Serial.print( (mosiData16_0000FF & 0xFF), HEX); |
whismanoid | 0:3edb3708c8c5 | 2546 | // // hex dump mosiData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2547 | //#if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2548 | // cmdLine_microUSBserial.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 2549 | // if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 2550 | // cmdLine_microUSBserial.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 2551 | // } |
whismanoid | 0:3edb3708c8c5 | 2552 | // cmdLine_microUSBserial.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 2553 | // for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2554 | // { |
whismanoid | 0:3edb3708c8c5 | 2555 | // cmdLine_microUSBserial.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2556 | // } |
whismanoid | 0:3edb3708c8c5 | 2557 | // // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2558 | // cmdLine_microUSBserial.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 2559 | // for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2560 | // { |
whismanoid | 0:3edb3708c8c5 | 2561 | // cmdLine_microUSBserial.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2562 | // } |
whismanoid | 0:3edb3708c8c5 | 2563 | // cmdLine_microUSBserial.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 2564 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2565 | //#if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2566 | // cmdLine_DAPLINKserial.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 2567 | // if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 2568 | // cmdLine_DAPLINKserial.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 2569 | // } |
whismanoid | 0:3edb3708c8c5 | 2570 | // cmdLine_DAPLINKserial.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 2571 | // for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2572 | // { |
whismanoid | 0:3edb3708c8c5 | 2573 | // cmdLine_DAPLINKserial.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2574 | // } |
whismanoid | 0:3edb3708c8c5 | 2575 | // // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 2576 | // cmdLine_DAPLINKserial.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 2577 | // for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 2578 | // { |
whismanoid | 0:3edb3708c8c5 | 2579 | // cmdLine_DAPLINKserial.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 2580 | // } |
whismanoid | 0:3edb3708c8c5 | 2581 | // cmdLine_DAPLINKserial.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 2582 | //#endif |
whismanoid | 0:3edb3708c8c5 | 2583 | // // VERIFY: DIAGNOSTIC: print MAX5715 device register write |
whismanoid | 0:3edb3708c8c5 | 2584 | // // TODO: MAX5715_print_register_verbose(mosiData8_FF0000, mosiData16_00FFFF); |
whismanoid | 0:3edb3708c8c5 | 2585 | // // TODO: print_verbose_SPI_diagnostic(mosiData16_FF00, mosiData16_00FF, misoData16_FF00, misoData16_00FF); |
whismanoid | 0:3edb3708c8c5 | 2586 | // // |
whismanoid | 0:3edb3708c8c5 | 2587 | // int misoData16 = (misoData[0] << 8) | misoData[1]; |
whismanoid | 0:3edb3708c8c5 | 2588 | // return misoData16; |
whismanoid | 0:3edb3708c8c5 | 2589 | //} |
whismanoid | 0:3edb3708c8c5 | 2590 | |
whismanoid | 0:3edb3708c8c5 | 2591 | #endif |
whismanoid | 0:3edb3708c8c5 | 2592 | |
whismanoid | 0:3edb3708c8c5 | 2593 | |
whismanoid | 0:3edb3708c8c5 | 2594 | #if APPLICATION_MAX5171 // hardware interface functions |
whismanoid | 0:3edb3708c8c5 | 2595 | #endif |
whismanoid | 0:3edb3708c8c5 | 2596 | |
whismanoid | 0:3edb3708c8c5 | 2597 | |
whismanoid | 0:3edb3708c8c5 | 2598 | #if APPLICATION_MAX11410 // hardware interface functions |
whismanoid | 0:3edb3708c8c5 | 2599 | #endif |
whismanoid | 0:3edb3708c8c5 | 2600 | |
whismanoid | 0:3edb3708c8c5 | 2601 | |
whismanoid | 0:3edb3708c8c5 | 2602 | #if APPLICATION_MAX12345 // hardware interface functions |
whismanoid | 0:3edb3708c8c5 | 2603 | #endif |
whismanoid | 0:3edb3708c8c5 | 2604 | |
whismanoid | 0:3edb3708c8c5 | 2605 | |
whismanoid | 0:3edb3708c8c5 | 2606 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 2607 | // print banner message to serial port |
whismanoid | 0:3edb3708c8c5 | 2608 | void print_banner() |
whismanoid | 0:3edb3708c8c5 | 2609 | { |
whismanoid | 0:3edb3708c8c5 | 2610 | #if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2611 | DAPLINKserial.printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2612 | # if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 2613 | DAPLINKserial.printf("MAX32630"); |
whismanoid | 0:3edb3708c8c5 | 2614 | # elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 2615 | DAPLINKserial.printf("MAX32625MBED"); |
whismanoid | 0:3edb3708c8c5 | 2616 | # elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 2617 | DAPLINKserial.printf("NUCLEO_F446RE"); |
whismanoid | 0:3edb3708c8c5 | 2618 | # elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 2619 | DAPLINKserial.printf("NUCLEO_F401RE"); |
whismanoid | 0:3edb3708c8c5 | 2620 | # elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 2621 | DAPLINKserial.printf("LPC1768"); |
whismanoid | 0:3edb3708c8c5 | 2622 | # else |
whismanoid | 0:3edb3708c8c5 | 2623 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 2624 | DAPLINKserial.printf("unknownTarget"); |
whismanoid | 0:3edb3708c8c5 | 2625 | # endif |
whismanoid | 0:3edb3708c8c5 | 2626 | DAPLINKserial.printf(" DAPLINKserial\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2627 | #endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 2628 | |
whismanoid | 0:3edb3708c8c5 | 2629 | #if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2630 | microUSBserial.printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2631 | # if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 2632 | microUSBserial.printf("MAX32630"); |
whismanoid | 0:3edb3708c8c5 | 2633 | # elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 2634 | microUSBserial.printf("MAX32625MBED"); |
whismanoid | 0:3edb3708c8c5 | 2635 | # elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 2636 | microUSBserial.printf("NUCLEO_F446RE"); |
whismanoid | 0:3edb3708c8c5 | 2637 | # elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 2638 | microUSBserial.printf("NUCLEO_F401RE"); |
whismanoid | 0:3edb3708c8c5 | 2639 | # elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 2640 | microUSBserial.printf("LPC1768"); |
whismanoid | 0:3edb3708c8c5 | 2641 | # else |
whismanoid | 0:3edb3708c8c5 | 2642 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 2643 | microUSBserial.printf("unknownTarget"); |
whismanoid | 0:3edb3708c8c5 | 2644 | # endif |
whismanoid | 0:3edb3708c8c5 | 2645 | microUSBserial.printf(" microUSBserial\r\n"); |
whismanoid | 0:3edb3708c8c5 | 2646 | #endif // HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 2647 | } |
whismanoid | 0:3edb3708c8c5 | 2648 | |
whismanoid | 0:3edb3708c8c5 | 2649 | // DigitalInOut pin resource: print the pin index names to microUSBserial |
whismanoid | 0:3edb3708c8c5 | 2650 | #if HAS_digitalInOuts |
whismanoid | 0:3edb3708c8c5 | 2651 | void list_digitalInOutPins(Stream& serialStream) |
whismanoid | 0:3edb3708c8c5 | 2652 | { |
whismanoid | 0:3edb3708c8c5 | 2653 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 2654 | serialStream.printf(" 0"); |
whismanoid | 0:3edb3708c8c5 | 2655 | #endif |
whismanoid | 0:3edb3708c8c5 | 2656 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 2657 | serialStream.printf(" 1"); |
whismanoid | 0:3edb3708c8c5 | 2658 | #endif |
whismanoid | 0:3edb3708c8c5 | 2659 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 2660 | serialStream.printf(" 2"); |
whismanoid | 0:3edb3708c8c5 | 2661 | #endif |
whismanoid | 0:3edb3708c8c5 | 2662 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 2663 | serialStream.printf(" 3"); |
whismanoid | 0:3edb3708c8c5 | 2664 | #endif |
whismanoid | 0:3edb3708c8c5 | 2665 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 2666 | serialStream.printf(" 4"); |
whismanoid | 0:3edb3708c8c5 | 2667 | #endif |
whismanoid | 0:3edb3708c8c5 | 2668 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 2669 | serialStream.printf(" 5"); |
whismanoid | 0:3edb3708c8c5 | 2670 | #endif |
whismanoid | 0:3edb3708c8c5 | 2671 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 2672 | serialStream.printf(" 6"); |
whismanoid | 0:3edb3708c8c5 | 2673 | #endif |
whismanoid | 0:3edb3708c8c5 | 2674 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 2675 | serialStream.printf(" 7"); |
whismanoid | 0:3edb3708c8c5 | 2676 | #endif |
whismanoid | 0:3edb3708c8c5 | 2677 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 2678 | serialStream.printf(" 8"); |
whismanoid | 0:3edb3708c8c5 | 2679 | #endif |
whismanoid | 0:3edb3708c8c5 | 2680 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 2681 | serialStream.printf(" 9"); |
whismanoid | 0:3edb3708c8c5 | 2682 | #endif |
whismanoid | 0:3edb3708c8c5 | 2683 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 2684 | serialStream.printf(" 10"); |
whismanoid | 0:3edb3708c8c5 | 2685 | #endif |
whismanoid | 0:3edb3708c8c5 | 2686 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 2687 | serialStream.printf(" 11"); |
whismanoid | 0:3edb3708c8c5 | 2688 | #endif |
whismanoid | 0:3edb3708c8c5 | 2689 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 2690 | serialStream.printf(" 12"); |
whismanoid | 0:3edb3708c8c5 | 2691 | #endif |
whismanoid | 0:3edb3708c8c5 | 2692 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 2693 | serialStream.printf(" 13"); |
whismanoid | 0:3edb3708c8c5 | 2694 | #endif |
whismanoid | 0:3edb3708c8c5 | 2695 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 2696 | serialStream.printf(" 14"); |
whismanoid | 0:3edb3708c8c5 | 2697 | #endif |
whismanoid | 0:3edb3708c8c5 | 2698 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 2699 | serialStream.printf(" 15"); |
whismanoid | 0:3edb3708c8c5 | 2700 | #endif |
whismanoid | 0:3edb3708c8c5 | 2701 | #if HAS_digitalInOut16 |
whismanoid | 0:3edb3708c8c5 | 2702 | serialStream.printf(" 16"); |
whismanoid | 0:3edb3708c8c5 | 2703 | #endif |
whismanoid | 0:3edb3708c8c5 | 2704 | #if HAS_digitalInOut17 |
whismanoid | 0:3edb3708c8c5 | 2705 | serialStream.printf(" 17"); |
whismanoid | 0:3edb3708c8c5 | 2706 | #endif |
whismanoid | 0:3edb3708c8c5 | 2707 | } |
whismanoid | 0:3edb3708c8c5 | 2708 | #endif |
whismanoid | 0:3edb3708c8c5 | 2709 | |
whismanoid | 0:3edb3708c8c5 | 2710 | // DigitalInOut pin resource: present? |
whismanoid | 0:3edb3708c8c5 | 2711 | #if HAS_digitalInOuts |
whismanoid | 0:3edb3708c8c5 | 2712 | bool has_digitalInOutPin(int cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2713 | { |
whismanoid | 0:3edb3708c8c5 | 2714 | switch (cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2715 | { |
whismanoid | 0:3edb3708c8c5 | 2716 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 2717 | case '0': case 0x00: return true; |
whismanoid | 0:3edb3708c8c5 | 2718 | #endif |
whismanoid | 0:3edb3708c8c5 | 2719 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 2720 | case '1': case 0x01: return true; |
whismanoid | 0:3edb3708c8c5 | 2721 | #endif |
whismanoid | 0:3edb3708c8c5 | 2722 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 2723 | case '2': case 0x02: return true; |
whismanoid | 0:3edb3708c8c5 | 2724 | #endif |
whismanoid | 0:3edb3708c8c5 | 2725 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 2726 | case '3': case 0x03: return true; |
whismanoid | 0:3edb3708c8c5 | 2727 | #endif |
whismanoid | 0:3edb3708c8c5 | 2728 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 2729 | case '4': case 0x04: return true; |
whismanoid | 0:3edb3708c8c5 | 2730 | #endif |
whismanoid | 0:3edb3708c8c5 | 2731 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 2732 | case '5': case 0x05: return true; |
whismanoid | 0:3edb3708c8c5 | 2733 | #endif |
whismanoid | 0:3edb3708c8c5 | 2734 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 2735 | case '6': case 0x06: return true; |
whismanoid | 0:3edb3708c8c5 | 2736 | #endif |
whismanoid | 0:3edb3708c8c5 | 2737 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 2738 | case '7': case 0x07: return true; |
whismanoid | 0:3edb3708c8c5 | 2739 | #endif |
whismanoid | 0:3edb3708c8c5 | 2740 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 2741 | case '8': case 0x08: return true; |
whismanoid | 0:3edb3708c8c5 | 2742 | #endif |
whismanoid | 0:3edb3708c8c5 | 2743 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 2744 | case '9': case 0x09: return true; |
whismanoid | 0:3edb3708c8c5 | 2745 | #endif |
whismanoid | 0:3edb3708c8c5 | 2746 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 2747 | case 'a': case 0x0a: return true; |
whismanoid | 0:3edb3708c8c5 | 2748 | #endif |
whismanoid | 0:3edb3708c8c5 | 2749 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 2750 | case 'b': case 0x0b: return true; |
whismanoid | 0:3edb3708c8c5 | 2751 | #endif |
whismanoid | 0:3edb3708c8c5 | 2752 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 2753 | case 'c': case 0x0c: return true; |
whismanoid | 0:3edb3708c8c5 | 2754 | #endif |
whismanoid | 0:3edb3708c8c5 | 2755 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 2756 | case 'd': case 0x0d: return true; |
whismanoid | 0:3edb3708c8c5 | 2757 | #endif |
whismanoid | 0:3edb3708c8c5 | 2758 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 2759 | case 'e': case 0x0e: return true; |
whismanoid | 0:3edb3708c8c5 | 2760 | #endif |
whismanoid | 0:3edb3708c8c5 | 2761 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 2762 | case 'f': case 0x0f: return true; |
whismanoid | 0:3edb3708c8c5 | 2763 | #endif |
whismanoid | 0:3edb3708c8c5 | 2764 | default: |
whismanoid | 0:3edb3708c8c5 | 2765 | return false; |
whismanoid | 0:3edb3708c8c5 | 2766 | } |
whismanoid | 0:3edb3708c8c5 | 2767 | } |
whismanoid | 0:3edb3708c8c5 | 2768 | #endif |
whismanoid | 0:3edb3708c8c5 | 2769 | |
whismanoid | 0:3edb3708c8c5 | 2770 | // DigitalInOut pin resource: search index |
whismanoid | 0:3edb3708c8c5 | 2771 | #if HAS_digitalInOuts |
whismanoid | 0:3edb3708c8c5 | 2772 | DigitalInOut& find_digitalInOutPin(int cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2773 | { |
whismanoid | 0:3edb3708c8c5 | 2774 | switch (cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2775 | { |
whismanoid | 0:3edb3708c8c5 | 2776 | default: // default to the first defined digitalInOut pin |
whismanoid | 0:3edb3708c8c5 | 2777 | #if HAS_digitalInOut0 |
whismanoid | 0:3edb3708c8c5 | 2778 | case '0': case 0x00: return digitalInOut0; |
whismanoid | 0:3edb3708c8c5 | 2779 | #endif |
whismanoid | 0:3edb3708c8c5 | 2780 | #if HAS_digitalInOut1 |
whismanoid | 0:3edb3708c8c5 | 2781 | case '1': case 0x01: return digitalInOut1; |
whismanoid | 0:3edb3708c8c5 | 2782 | #endif |
whismanoid | 0:3edb3708c8c5 | 2783 | #if HAS_digitalInOut2 |
whismanoid | 0:3edb3708c8c5 | 2784 | case '2': case 0x02: return digitalInOut2; |
whismanoid | 0:3edb3708c8c5 | 2785 | #endif |
whismanoid | 0:3edb3708c8c5 | 2786 | #if HAS_digitalInOut3 |
whismanoid | 0:3edb3708c8c5 | 2787 | case '3': case 0x03: return digitalInOut3; |
whismanoid | 0:3edb3708c8c5 | 2788 | #endif |
whismanoid | 0:3edb3708c8c5 | 2789 | #if HAS_digitalInOut4 |
whismanoid | 0:3edb3708c8c5 | 2790 | case '4': case 0x04: return digitalInOut4; |
whismanoid | 0:3edb3708c8c5 | 2791 | #endif |
whismanoid | 0:3edb3708c8c5 | 2792 | #if HAS_digitalInOut5 |
whismanoid | 0:3edb3708c8c5 | 2793 | case '5': case 0x05: return digitalInOut5; |
whismanoid | 0:3edb3708c8c5 | 2794 | #endif |
whismanoid | 0:3edb3708c8c5 | 2795 | #if HAS_digitalInOut6 |
whismanoid | 0:3edb3708c8c5 | 2796 | case '6': case 0x06: return digitalInOut6; |
whismanoid | 0:3edb3708c8c5 | 2797 | #endif |
whismanoid | 0:3edb3708c8c5 | 2798 | #if HAS_digitalInOut7 |
whismanoid | 0:3edb3708c8c5 | 2799 | case '7': case 0x07: return digitalInOut7; |
whismanoid | 0:3edb3708c8c5 | 2800 | #endif |
whismanoid | 0:3edb3708c8c5 | 2801 | #if HAS_digitalInOut8 |
whismanoid | 0:3edb3708c8c5 | 2802 | case '8': case 0x08: return digitalInOut8; |
whismanoid | 0:3edb3708c8c5 | 2803 | #endif |
whismanoid | 0:3edb3708c8c5 | 2804 | #if HAS_digitalInOut9 |
whismanoid | 0:3edb3708c8c5 | 2805 | case '9': case 0x09: return digitalInOut9; |
whismanoid | 0:3edb3708c8c5 | 2806 | #endif |
whismanoid | 0:3edb3708c8c5 | 2807 | #if HAS_digitalInOut10 |
whismanoid | 0:3edb3708c8c5 | 2808 | case 'a': case 0x0a: return digitalInOut10; |
whismanoid | 0:3edb3708c8c5 | 2809 | #endif |
whismanoid | 0:3edb3708c8c5 | 2810 | #if HAS_digitalInOut11 |
whismanoid | 0:3edb3708c8c5 | 2811 | case 'b': case 0x0b: return digitalInOut11; |
whismanoid | 0:3edb3708c8c5 | 2812 | #endif |
whismanoid | 0:3edb3708c8c5 | 2813 | #if HAS_digitalInOut12 |
whismanoid | 0:3edb3708c8c5 | 2814 | case 'c': case 0x0c: return digitalInOut12; |
whismanoid | 0:3edb3708c8c5 | 2815 | #endif |
whismanoid | 0:3edb3708c8c5 | 2816 | #if HAS_digitalInOut13 |
whismanoid | 0:3edb3708c8c5 | 2817 | case 'd': case 0x0d: return digitalInOut13; |
whismanoid | 0:3edb3708c8c5 | 2818 | #endif |
whismanoid | 0:3edb3708c8c5 | 2819 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 2820 | case 'e': case 0x0e: return digitalInOut14; |
whismanoid | 0:3edb3708c8c5 | 2821 | #endif |
whismanoid | 0:3edb3708c8c5 | 2822 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 2823 | case 'f': case 0x0f: return digitalInOut15; |
whismanoid | 0:3edb3708c8c5 | 2824 | #endif |
whismanoid | 0:3edb3708c8c5 | 2825 | #if HAS_digitalInOut16 |
whismanoid | 0:3edb3708c8c5 | 2826 | case 'g': case 0x10: return digitalInOut16; |
whismanoid | 0:3edb3708c8c5 | 2827 | #endif |
whismanoid | 0:3edb3708c8c5 | 2828 | #if HAS_digitalInOut17 |
whismanoid | 0:3edb3708c8c5 | 2829 | case 'h': case 0x11: return digitalInOut17; |
whismanoid | 0:3edb3708c8c5 | 2830 | #endif |
whismanoid | 0:3edb3708c8c5 | 2831 | } |
whismanoid | 0:3edb3708c8c5 | 2832 | } |
whismanoid | 0:3edb3708c8c5 | 2833 | #endif |
whismanoid | 0:3edb3708c8c5 | 2834 | |
whismanoid | 0:3edb3708c8c5 | 2835 | // AnalogIn pin resource: print the pin index names to microUSBserial |
whismanoid | 0:3edb3708c8c5 | 2836 | #if HAS_analogIns |
whismanoid | 0:3edb3708c8c5 | 2837 | void list_analogInPins(Stream& serialStream) |
whismanoid | 0:3edb3708c8c5 | 2838 | { |
whismanoid | 0:3edb3708c8c5 | 2839 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 2840 | serialStream.printf(" 0"); |
whismanoid | 0:3edb3708c8c5 | 2841 | #endif |
whismanoid | 0:3edb3708c8c5 | 2842 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 2843 | serialStream.printf(" 1"); |
whismanoid | 0:3edb3708c8c5 | 2844 | #endif |
whismanoid | 0:3edb3708c8c5 | 2845 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 2846 | serialStream.printf(" 2"); |
whismanoid | 0:3edb3708c8c5 | 2847 | #endif |
whismanoid | 0:3edb3708c8c5 | 2848 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 2849 | serialStream.printf(" 3"); |
whismanoid | 0:3edb3708c8c5 | 2850 | #endif |
whismanoid | 0:3edb3708c8c5 | 2851 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 2852 | serialStream.printf(" 4"); |
whismanoid | 0:3edb3708c8c5 | 2853 | #endif |
whismanoid | 0:3edb3708c8c5 | 2854 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 2855 | serialStream.printf(" 5"); |
whismanoid | 0:3edb3708c8c5 | 2856 | #endif |
whismanoid | 0:3edb3708c8c5 | 2857 | #if HAS_analogIn6 |
whismanoid | 0:3edb3708c8c5 | 2858 | serialStream.printf(" 6"); |
whismanoid | 0:3edb3708c8c5 | 2859 | #endif |
whismanoid | 0:3edb3708c8c5 | 2860 | #if HAS_analogIn7 |
whismanoid | 0:3edb3708c8c5 | 2861 | serialStream.printf(" 7"); |
whismanoid | 0:3edb3708c8c5 | 2862 | #endif |
whismanoid | 0:3edb3708c8c5 | 2863 | #if HAS_analogIn8 |
whismanoid | 0:3edb3708c8c5 | 2864 | serialStream.printf(" 8"); |
whismanoid | 0:3edb3708c8c5 | 2865 | #endif |
whismanoid | 0:3edb3708c8c5 | 2866 | #if HAS_analogIn9 |
whismanoid | 0:3edb3708c8c5 | 2867 | serialStream.printf(" 9"); |
whismanoid | 0:3edb3708c8c5 | 2868 | #endif |
whismanoid | 0:3edb3708c8c5 | 2869 | #if HAS_analogIn10 |
whismanoid | 0:3edb3708c8c5 | 2870 | serialStream.printf(" a"); |
whismanoid | 0:3edb3708c8c5 | 2871 | #endif |
whismanoid | 0:3edb3708c8c5 | 2872 | #if HAS_analogIn11 |
whismanoid | 0:3edb3708c8c5 | 2873 | serialStream.printf(" b"); |
whismanoid | 0:3edb3708c8c5 | 2874 | #endif |
whismanoid | 0:3edb3708c8c5 | 2875 | #if HAS_analogIn12 |
whismanoid | 0:3edb3708c8c5 | 2876 | serialStream.printf(" c"); |
whismanoid | 0:3edb3708c8c5 | 2877 | #endif |
whismanoid | 0:3edb3708c8c5 | 2878 | #if HAS_analogIn13 |
whismanoid | 0:3edb3708c8c5 | 2879 | serialStream.printf(" d"); |
whismanoid | 0:3edb3708c8c5 | 2880 | #endif |
whismanoid | 0:3edb3708c8c5 | 2881 | #if HAS_analogIn14 |
whismanoid | 0:3edb3708c8c5 | 2882 | serialStream.printf(" e"); |
whismanoid | 0:3edb3708c8c5 | 2883 | #endif |
whismanoid | 0:3edb3708c8c5 | 2884 | #if HAS_analogIn15 |
whismanoid | 0:3edb3708c8c5 | 2885 | serialStream.printf(" f"); |
whismanoid | 0:3edb3708c8c5 | 2886 | #endif |
whismanoid | 0:3edb3708c8c5 | 2887 | } |
whismanoid | 0:3edb3708c8c5 | 2888 | #endif |
whismanoid | 0:3edb3708c8c5 | 2889 | |
whismanoid | 0:3edb3708c8c5 | 2890 | // AnalogIn pin resource: present? |
whismanoid | 0:3edb3708c8c5 | 2891 | #if HAS_analogIns |
whismanoid | 0:3edb3708c8c5 | 2892 | bool has_analogInPin(int cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2893 | { |
whismanoid | 0:3edb3708c8c5 | 2894 | switch (cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2895 | { |
whismanoid | 0:3edb3708c8c5 | 2896 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 2897 | case '0': case 0x00: return true; |
whismanoid | 0:3edb3708c8c5 | 2898 | #endif |
whismanoid | 0:3edb3708c8c5 | 2899 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 2900 | case '1': case 0x01: return true; |
whismanoid | 0:3edb3708c8c5 | 2901 | #endif |
whismanoid | 0:3edb3708c8c5 | 2902 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 2903 | case '2': case 0x02: return true; |
whismanoid | 0:3edb3708c8c5 | 2904 | #endif |
whismanoid | 0:3edb3708c8c5 | 2905 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 2906 | case '3': case 0x03: return true; |
whismanoid | 0:3edb3708c8c5 | 2907 | #endif |
whismanoid | 0:3edb3708c8c5 | 2908 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 2909 | case '4': case 0x04: return true; |
whismanoid | 0:3edb3708c8c5 | 2910 | #endif |
whismanoid | 0:3edb3708c8c5 | 2911 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 2912 | case '5': case 0x05: return true; |
whismanoid | 0:3edb3708c8c5 | 2913 | #endif |
whismanoid | 0:3edb3708c8c5 | 2914 | #if HAS_analogIn6 |
whismanoid | 0:3edb3708c8c5 | 2915 | case '6': case 0x06: return true; |
whismanoid | 0:3edb3708c8c5 | 2916 | #endif |
whismanoid | 0:3edb3708c8c5 | 2917 | #if HAS_analogIn7 |
whismanoid | 0:3edb3708c8c5 | 2918 | case '7': case 0x07: return true; |
whismanoid | 0:3edb3708c8c5 | 2919 | #endif |
whismanoid | 0:3edb3708c8c5 | 2920 | #if HAS_analogIn8 |
whismanoid | 0:3edb3708c8c5 | 2921 | case '8': case 0x08: return true; |
whismanoid | 0:3edb3708c8c5 | 2922 | #endif |
whismanoid | 0:3edb3708c8c5 | 2923 | #if HAS_analogIn9 |
whismanoid | 0:3edb3708c8c5 | 2924 | case '9': case 0x09: return true; |
whismanoid | 0:3edb3708c8c5 | 2925 | #endif |
whismanoid | 0:3edb3708c8c5 | 2926 | #if HAS_analogIn10 |
whismanoid | 0:3edb3708c8c5 | 2927 | case 'a': case 0x0a: return true; |
whismanoid | 0:3edb3708c8c5 | 2928 | #endif |
whismanoid | 0:3edb3708c8c5 | 2929 | #if HAS_analogIn11 |
whismanoid | 0:3edb3708c8c5 | 2930 | case 'b': case 0x0b: return true; |
whismanoid | 0:3edb3708c8c5 | 2931 | #endif |
whismanoid | 0:3edb3708c8c5 | 2932 | #if HAS_analogIn12 |
whismanoid | 0:3edb3708c8c5 | 2933 | case 'c': case 0x0c: return true; |
whismanoid | 0:3edb3708c8c5 | 2934 | #endif |
whismanoid | 0:3edb3708c8c5 | 2935 | #if HAS_analogIn13 |
whismanoid | 0:3edb3708c8c5 | 2936 | case 'd': case 0x0d: return true; |
whismanoid | 0:3edb3708c8c5 | 2937 | #endif |
whismanoid | 0:3edb3708c8c5 | 2938 | #if HAS_analogIn14 |
whismanoid | 0:3edb3708c8c5 | 2939 | case 'e': case 0x0e: return true; |
whismanoid | 0:3edb3708c8c5 | 2940 | #endif |
whismanoid | 0:3edb3708c8c5 | 2941 | #if HAS_analogIn15 |
whismanoid | 0:3edb3708c8c5 | 2942 | case 'f': case 0x0f: return true; |
whismanoid | 0:3edb3708c8c5 | 2943 | #endif |
whismanoid | 0:3edb3708c8c5 | 2944 | default: |
whismanoid | 0:3edb3708c8c5 | 2945 | return false; |
whismanoid | 0:3edb3708c8c5 | 2946 | } |
whismanoid | 0:3edb3708c8c5 | 2947 | } |
whismanoid | 0:3edb3708c8c5 | 2948 | #endif |
whismanoid | 0:3edb3708c8c5 | 2949 | |
whismanoid | 0:3edb3708c8c5 | 2950 | // AnalogIn pin resource: search index |
whismanoid | 0:3edb3708c8c5 | 2951 | #if HAS_analogIns |
whismanoid | 0:3edb3708c8c5 | 2952 | AnalogIn& find_analogInPin(int cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2953 | { |
whismanoid | 0:3edb3708c8c5 | 2954 | switch (cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 2955 | { |
whismanoid | 0:3edb3708c8c5 | 2956 | default: // default to the first defined analogIn pin |
whismanoid | 0:3edb3708c8c5 | 2957 | #if HAS_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 2958 | case '0': case 0x00: return analogIn0; |
whismanoid | 0:3edb3708c8c5 | 2959 | #endif |
whismanoid | 0:3edb3708c8c5 | 2960 | #if HAS_analogIn1 |
whismanoid | 0:3edb3708c8c5 | 2961 | case '1': case 0x01: return analogIn1; |
whismanoid | 0:3edb3708c8c5 | 2962 | #endif |
whismanoid | 0:3edb3708c8c5 | 2963 | #if HAS_analogIn2 |
whismanoid | 0:3edb3708c8c5 | 2964 | case '2': case 0x02: return analogIn2; |
whismanoid | 0:3edb3708c8c5 | 2965 | #endif |
whismanoid | 0:3edb3708c8c5 | 2966 | #if HAS_analogIn3 |
whismanoid | 0:3edb3708c8c5 | 2967 | case '3': case 0x03: return analogIn3; |
whismanoid | 0:3edb3708c8c5 | 2968 | #endif |
whismanoid | 0:3edb3708c8c5 | 2969 | #if HAS_analogIn4 |
whismanoid | 0:3edb3708c8c5 | 2970 | case '4': case 0x04: return analogIn4; |
whismanoid | 0:3edb3708c8c5 | 2971 | #endif |
whismanoid | 0:3edb3708c8c5 | 2972 | #if HAS_analogIn5 |
whismanoid | 0:3edb3708c8c5 | 2973 | case '5': case 0x05: return analogIn5; |
whismanoid | 0:3edb3708c8c5 | 2974 | #endif |
whismanoid | 0:3edb3708c8c5 | 2975 | #if HAS_analogIn6 |
whismanoid | 0:3edb3708c8c5 | 2976 | case '6': case 0x06: return analogIn6; |
whismanoid | 0:3edb3708c8c5 | 2977 | #endif |
whismanoid | 0:3edb3708c8c5 | 2978 | #if HAS_analogIn7 |
whismanoid | 0:3edb3708c8c5 | 2979 | case '7': case 0x07: return analogIn7; |
whismanoid | 0:3edb3708c8c5 | 2980 | #endif |
whismanoid | 0:3edb3708c8c5 | 2981 | #if HAS_analogIn8 |
whismanoid | 0:3edb3708c8c5 | 2982 | case '8': case 0x08: return analogIn8; |
whismanoid | 0:3edb3708c8c5 | 2983 | #endif |
whismanoid | 0:3edb3708c8c5 | 2984 | #if HAS_analogIn9 |
whismanoid | 0:3edb3708c8c5 | 2985 | case '9': case 0x09: return analogIn9; |
whismanoid | 0:3edb3708c8c5 | 2986 | #endif |
whismanoid | 0:3edb3708c8c5 | 2987 | #if HAS_analogIn10 |
whismanoid | 0:3edb3708c8c5 | 2988 | case 'a': case 0x0a: return analogIn10; |
whismanoid | 0:3edb3708c8c5 | 2989 | #endif |
whismanoid | 0:3edb3708c8c5 | 2990 | #if HAS_analogIn11 |
whismanoid | 0:3edb3708c8c5 | 2991 | case 'b': case 0x0b: return analogIn11; |
whismanoid | 0:3edb3708c8c5 | 2992 | #endif |
whismanoid | 0:3edb3708c8c5 | 2993 | #if HAS_analogIn12 |
whismanoid | 0:3edb3708c8c5 | 2994 | case 'c': case 0x0c: return analogIn12; |
whismanoid | 0:3edb3708c8c5 | 2995 | #endif |
whismanoid | 0:3edb3708c8c5 | 2996 | #if HAS_analogIn13 |
whismanoid | 0:3edb3708c8c5 | 2997 | case 'd': case 0x0d: return analogIn13; |
whismanoid | 0:3edb3708c8c5 | 2998 | #endif |
whismanoid | 0:3edb3708c8c5 | 2999 | #if HAS_analogIn14 |
whismanoid | 0:3edb3708c8c5 | 3000 | case 'e': case 0x0e: return analogIn14; |
whismanoid | 0:3edb3708c8c5 | 3001 | #endif |
whismanoid | 0:3edb3708c8c5 | 3002 | #if HAS_analogIn15 |
whismanoid | 0:3edb3708c8c5 | 3003 | case 'f': case 0x0f: return analogIn15; |
whismanoid | 0:3edb3708c8c5 | 3004 | #endif |
whismanoid | 0:3edb3708c8c5 | 3005 | } |
whismanoid | 0:3edb3708c8c5 | 3006 | } |
whismanoid | 0:3edb3708c8c5 | 3007 | #endif |
whismanoid | 0:3edb3708c8c5 | 3008 | |
whismanoid | 0:3edb3708c8c5 | 3009 | #if HAS_analogIns |
whismanoid | 0:3edb3708c8c5 | 3010 | const float analogInPin_fullScaleVoltage[] = { |
whismanoid | 0:3edb3708c8c5 | 3011 | # if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 3012 | ADC_FULL_SCALE_VOLTAGE, // analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3013 | ADC_FULL_SCALE_VOLTAGE, // analogIn1 |
whismanoid | 0:3edb3708c8c5 | 3014 | ADC_FULL_SCALE_VOLTAGE, // analogIn2 |
whismanoid | 0:3edb3708c8c5 | 3015 | ADC_FULL_SCALE_VOLTAGE, // analogIn3 |
whismanoid | 0:3edb3708c8c5 | 3016 | ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 3017 | ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 3018 | ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 3019 | ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3020 | ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3021 | ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V |
whismanoid | 0:3edb3708c8c5 | 3022 | ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined? |
whismanoid | 0:3edb3708c8c5 | 3023 | ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 3024 | ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 3025 | ADC_FULL_SCALE_VOLTAGE, // analogIn13 |
whismanoid | 0:3edb3708c8c5 | 3026 | ADC_FULL_SCALE_VOLTAGE, // analogIn14 |
whismanoid | 0:3edb3708c8c5 | 3027 | ADC_FULL_SCALE_VOLTAGE // analogIn15 |
whismanoid | 0:3edb3708c8c5 | 3028 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 3029 | ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn0 // fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3030 | ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn1 // fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3031 | ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn2 // fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3032 | ADC_FULL_SCALE_VOLTAGE * 1.0f, // analogIn3 // fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3033 | ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 3034 | ADC_FULL_SCALE_VOLTAGE * 5.0f, // analogIn4 // AIN_5 = AIN1 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 3035 | ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn6 // AIN_6 = VDDB / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 3036 | ADC_FULL_SCALE_VOLTAGE, // analogIn7 // AIN_7 = VDD18 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3037 | ADC_FULL_SCALE_VOLTAGE, // analogIn8 // AIN_8 = VDD12 fullscale is 1.2V |
whismanoid | 0:3edb3708c8c5 | 3038 | ADC_FULL_SCALE_VOLTAGE * 2.0f, // analogIn9 // AIN_9 = VRTC / 2.0 fullscale is 2.4V |
whismanoid | 0:3edb3708c8c5 | 3039 | ADC_FULL_SCALE_VOLTAGE, // analogIn10 // AIN_10 = x undefined? |
whismanoid | 0:3edb3708c8c5 | 3040 | ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn11 // AIN_11 = VDDIO / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 3041 | ADC_FULL_SCALE_VOLTAGE * 4.0f, // analogIn12 // AIN_12 = VDDIOH / 4.0 fullscale is 4.8V |
whismanoid | 0:3edb3708c8c5 | 3042 | ADC_FULL_SCALE_VOLTAGE, // analogIn13 |
whismanoid | 0:3edb3708c8c5 | 3043 | ADC_FULL_SCALE_VOLTAGE, // analogIn14 |
whismanoid | 0:3edb3708c8c5 | 3044 | ADC_FULL_SCALE_VOLTAGE // analogIn15 |
whismanoid | 0:3edb3708c8c5 | 3045 | #elif defined(TARGET_NUCLEO_F446RE) |
whismanoid | 0:3edb3708c8c5 | 3046 | ADC_FULL_SCALE_VOLTAGE, // analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3047 | ADC_FULL_SCALE_VOLTAGE, // analogIn1 |
whismanoid | 0:3edb3708c8c5 | 3048 | ADC_FULL_SCALE_VOLTAGE, // analogIn2 |
whismanoid | 0:3edb3708c8c5 | 3049 | ADC_FULL_SCALE_VOLTAGE, // analogIn3 |
whismanoid | 0:3edb3708c8c5 | 3050 | ADC_FULL_SCALE_VOLTAGE, // analogIn4 |
whismanoid | 0:3edb3708c8c5 | 3051 | ADC_FULL_SCALE_VOLTAGE, // analogIn5 |
whismanoid | 0:3edb3708c8c5 | 3052 | ADC_FULL_SCALE_VOLTAGE, // analogIn6 |
whismanoid | 0:3edb3708c8c5 | 3053 | ADC_FULL_SCALE_VOLTAGE, // analogIn7 |
whismanoid | 0:3edb3708c8c5 | 3054 | ADC_FULL_SCALE_VOLTAGE, // analogIn8 |
whismanoid | 0:3edb3708c8c5 | 3055 | ADC_FULL_SCALE_VOLTAGE, // analogIn9 |
whismanoid | 0:3edb3708c8c5 | 3056 | ADC_FULL_SCALE_VOLTAGE, // analogIn10 |
whismanoid | 0:3edb3708c8c5 | 3057 | ADC_FULL_SCALE_VOLTAGE, // analogIn11 |
whismanoid | 0:3edb3708c8c5 | 3058 | ADC_FULL_SCALE_VOLTAGE, // analogIn12 |
whismanoid | 0:3edb3708c8c5 | 3059 | ADC_FULL_SCALE_VOLTAGE, // analogIn13 |
whismanoid | 0:3edb3708c8c5 | 3060 | ADC_FULL_SCALE_VOLTAGE, // analogIn14 |
whismanoid | 0:3edb3708c8c5 | 3061 | ADC_FULL_SCALE_VOLTAGE // analogIn15 |
whismanoid | 0:3edb3708c8c5 | 3062 | #elif defined(TARGET_NUCLEO_F401RE) |
whismanoid | 0:3edb3708c8c5 | 3063 | ADC_FULL_SCALE_VOLTAGE, // analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3064 | ADC_FULL_SCALE_VOLTAGE, // analogIn1 |
whismanoid | 0:3edb3708c8c5 | 3065 | ADC_FULL_SCALE_VOLTAGE, // analogIn2 |
whismanoid | 0:3edb3708c8c5 | 3066 | ADC_FULL_SCALE_VOLTAGE, // analogIn3 |
whismanoid | 0:3edb3708c8c5 | 3067 | ADC_FULL_SCALE_VOLTAGE, // analogIn4 |
whismanoid | 0:3edb3708c8c5 | 3068 | ADC_FULL_SCALE_VOLTAGE, // analogIn5 |
whismanoid | 0:3edb3708c8c5 | 3069 | ADC_FULL_SCALE_VOLTAGE, // analogIn6 |
whismanoid | 0:3edb3708c8c5 | 3070 | ADC_FULL_SCALE_VOLTAGE, // analogIn7 |
whismanoid | 0:3edb3708c8c5 | 3071 | ADC_FULL_SCALE_VOLTAGE, // analogIn8 |
whismanoid | 0:3edb3708c8c5 | 3072 | ADC_FULL_SCALE_VOLTAGE, // analogIn9 |
whismanoid | 0:3edb3708c8c5 | 3073 | ADC_FULL_SCALE_VOLTAGE, // analogIn10 |
whismanoid | 0:3edb3708c8c5 | 3074 | ADC_FULL_SCALE_VOLTAGE, // analogIn11 |
whismanoid | 0:3edb3708c8c5 | 3075 | ADC_FULL_SCALE_VOLTAGE, // analogIn12 |
whismanoid | 0:3edb3708c8c5 | 3076 | ADC_FULL_SCALE_VOLTAGE, // analogIn13 |
whismanoid | 0:3edb3708c8c5 | 3077 | ADC_FULL_SCALE_VOLTAGE, // analogIn14 |
whismanoid | 0:3edb3708c8c5 | 3078 | ADC_FULL_SCALE_VOLTAGE // analogIn15 |
whismanoid | 0:3edb3708c8c5 | 3079 | //#elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 3080 | #else |
whismanoid | 0:3edb3708c8c5 | 3081 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 3082 | ADC_FULL_SCALE_VOLTAGE, // analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3083 | ADC_FULL_SCALE_VOLTAGE, // analogIn1 |
whismanoid | 0:3edb3708c8c5 | 3084 | ADC_FULL_SCALE_VOLTAGE, // analogIn2 |
whismanoid | 0:3edb3708c8c5 | 3085 | ADC_FULL_SCALE_VOLTAGE, // analogIn3 |
whismanoid | 0:3edb3708c8c5 | 3086 | ADC_FULL_SCALE_VOLTAGE, // analogIn4 |
whismanoid | 0:3edb3708c8c5 | 3087 | ADC_FULL_SCALE_VOLTAGE, // analogIn5 |
whismanoid | 0:3edb3708c8c5 | 3088 | ADC_FULL_SCALE_VOLTAGE, // analogIn6 |
whismanoid | 0:3edb3708c8c5 | 3089 | ADC_FULL_SCALE_VOLTAGE, // analogIn7 |
whismanoid | 0:3edb3708c8c5 | 3090 | ADC_FULL_SCALE_VOLTAGE, // analogIn8 |
whismanoid | 0:3edb3708c8c5 | 3091 | ADC_FULL_SCALE_VOLTAGE, // analogIn9 |
whismanoid | 0:3edb3708c8c5 | 3092 | ADC_FULL_SCALE_VOLTAGE, // analogIn10 |
whismanoid | 0:3edb3708c8c5 | 3093 | ADC_FULL_SCALE_VOLTAGE, // analogIn11 |
whismanoid | 0:3edb3708c8c5 | 3094 | ADC_FULL_SCALE_VOLTAGE, // analogIn12 |
whismanoid | 0:3edb3708c8c5 | 3095 | ADC_FULL_SCALE_VOLTAGE, // analogIn13 |
whismanoid | 0:3edb3708c8c5 | 3096 | ADC_FULL_SCALE_VOLTAGE, // analogIn14 |
whismanoid | 0:3edb3708c8c5 | 3097 | ADC_FULL_SCALE_VOLTAGE // analogIn15 |
whismanoid | 0:3edb3708c8c5 | 3098 | # endif |
whismanoid | 0:3edb3708c8c5 | 3099 | }; |
whismanoid | 0:3edb3708c8c5 | 3100 | #endif |
whismanoid | 0:3edb3708c8c5 | 3101 | |
whismanoid | 0:3edb3708c8c5 | 3102 | // PwmOut pin resource: print the pin index names to microUSBserial |
whismanoid | 0:3edb3708c8c5 | 3103 | #if HAS_pwmDrivers |
whismanoid | 0:3edb3708c8c5 | 3104 | void list_pwmDriverPins(Stream& serialStream) |
whismanoid | 0:3edb3708c8c5 | 3105 | { |
whismanoid | 0:3edb3708c8c5 | 3106 | #if HAS_pwmDriver0 |
whismanoid | 0:3edb3708c8c5 | 3107 | serialStream.printf(" 0"); |
whismanoid | 0:3edb3708c8c5 | 3108 | #endif |
whismanoid | 0:3edb3708c8c5 | 3109 | #if HAS_pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 3110 | serialStream.printf(" 1"); |
whismanoid | 0:3edb3708c8c5 | 3111 | #endif |
whismanoid | 0:3edb3708c8c5 | 3112 | #if HAS_pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 3113 | serialStream.printf(" 2"); |
whismanoid | 0:3edb3708c8c5 | 3114 | #endif |
whismanoid | 0:3edb3708c8c5 | 3115 | #if HAS_pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 3116 | serialStream.printf(" 3"); |
whismanoid | 0:3edb3708c8c5 | 3117 | #endif |
whismanoid | 0:3edb3708c8c5 | 3118 | #if HAS_pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 3119 | serialStream.printf(" 4"); |
whismanoid | 0:3edb3708c8c5 | 3120 | #endif |
whismanoid | 0:3edb3708c8c5 | 3121 | #if HAS_pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 3122 | serialStream.printf(" 5"); |
whismanoid | 0:3edb3708c8c5 | 3123 | #endif |
whismanoid | 0:3edb3708c8c5 | 3124 | #if HAS_pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 3125 | serialStream.printf(" 6"); |
whismanoid | 0:3edb3708c8c5 | 3126 | #endif |
whismanoid | 0:3edb3708c8c5 | 3127 | #if HAS_pwmDriver7 |
whismanoid | 0:3edb3708c8c5 | 3128 | serialStream.printf(" 7"); |
whismanoid | 0:3edb3708c8c5 | 3129 | #endif |
whismanoid | 0:3edb3708c8c5 | 3130 | #if HAS_pwmDriver8 |
whismanoid | 0:3edb3708c8c5 | 3131 | serialStream.printf(" 8"); |
whismanoid | 0:3edb3708c8c5 | 3132 | #endif |
whismanoid | 0:3edb3708c8c5 | 3133 | #if HAS_pwmDriver9 |
whismanoid | 0:3edb3708c8c5 | 3134 | serialStream.printf(" 9"); |
whismanoid | 0:3edb3708c8c5 | 3135 | #endif |
whismanoid | 0:3edb3708c8c5 | 3136 | #if HAS_pwmDriver10 |
whismanoid | 0:3edb3708c8c5 | 3137 | serialStream.printf(" a"); |
whismanoid | 0:3edb3708c8c5 | 3138 | #endif |
whismanoid | 0:3edb3708c8c5 | 3139 | #if HAS_pwmDriver11 |
whismanoid | 0:3edb3708c8c5 | 3140 | serialStream.printf(" b"); |
whismanoid | 0:3edb3708c8c5 | 3141 | #endif |
whismanoid | 0:3edb3708c8c5 | 3142 | #if HAS_pwmDriver12 |
whismanoid | 0:3edb3708c8c5 | 3143 | serialStream.printf(" c"); |
whismanoid | 0:3edb3708c8c5 | 3144 | #endif |
whismanoid | 0:3edb3708c8c5 | 3145 | #if HAS_pwmDriver13 |
whismanoid | 0:3edb3708c8c5 | 3146 | serialStream.printf(" d"); |
whismanoid | 0:3edb3708c8c5 | 3147 | #endif |
whismanoid | 0:3edb3708c8c5 | 3148 | #if HAS_pwmDriver14 |
whismanoid | 0:3edb3708c8c5 | 3149 | serialStream.printf(" e"); |
whismanoid | 0:3edb3708c8c5 | 3150 | #endif |
whismanoid | 0:3edb3708c8c5 | 3151 | #if HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 3152 | serialStream.printf(" f"); |
whismanoid | 0:3edb3708c8c5 | 3153 | #endif |
whismanoid | 0:3edb3708c8c5 | 3154 | } |
whismanoid | 0:3edb3708c8c5 | 3155 | #endif |
whismanoid | 0:3edb3708c8c5 | 3156 | |
whismanoid | 0:3edb3708c8c5 | 3157 | // PwmOut pin resource: present? |
whismanoid | 0:3edb3708c8c5 | 3158 | #if HAS_pwmDrivers |
whismanoid | 0:3edb3708c8c5 | 3159 | bool has_pwmDriverPin(int cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 3160 | { |
whismanoid | 0:3edb3708c8c5 | 3161 | switch (cPinIndex) |
whismanoid | 0:3edb3708c8c5 | 3162 | { |
whismanoid | 0:3edb3708c8c5 | 3163 | #if HAS_pwmDriver0 |
whismanoid | 0:3edb3708c8c5 | 3164 | case '0': case 0x00: return true; |
whismanoid | 0:3edb3708c8c5 | 3165 | #endif |
whismanoid | 0:3edb3708c8c5 | 3166 | #if HAS_pwmDriver1 |
whismanoid | 0:3edb3708c8c5 | 3167 | case '1': case 0x01: return true; |
whismanoid | 0:3edb3708c8c5 | 3168 | #endif |
whismanoid | 0:3edb3708c8c5 | 3169 | #if HAS_pwmDriver2 |
whismanoid | 0:3edb3708c8c5 | 3170 | case '2': case 0x02: return true; |
whismanoid | 0:3edb3708c8c5 | 3171 | #endif |
whismanoid | 0:3edb3708c8c5 | 3172 | #if HAS_pwmDriver3 |
whismanoid | 0:3edb3708c8c5 | 3173 | case '3': case 0x03: return true; |
whismanoid | 0:3edb3708c8c5 | 3174 | #endif |
whismanoid | 0:3edb3708c8c5 | 3175 | #if HAS_pwmDriver4 |
whismanoid | 0:3edb3708c8c5 | 3176 | case '4': case 0x04: return true; |
whismanoid | 0:3edb3708c8c5 | 3177 | #endif |
whismanoid | 0:3edb3708c8c5 | 3178 | #if HAS_pwmDriver5 |
whismanoid | 0:3edb3708c8c5 | 3179 | case '5': case 0x05: return true; |
whismanoid | 0:3edb3708c8c5 | 3180 | #endif |
whismanoid | 0:3edb3708c8c5 | 3181 | #if HAS_pwmDriver6 |
whismanoid | 0:3edb3708c8c5 | 3182 | case '6': case 0x06: return true; |
whismanoid | 0:3edb3708c8c5 | 3183 | #endif |
whismanoid | 0:3edb3708c8c5 | 3184 | #if HAS_pwmDriver7 |
whismanoid | 0:3edb3708c8c5 | 3185 | case '7': case 0x07: return true; |
whismanoid | 0:3edb3708c8c5 | 3186 | #endif |
whismanoid | 0:3edb3708c8c5 | 3187 | #if HAS_pwmDriver8 |
whismanoid | 0:3edb3708c8c5 | 3188 | case '8': case 0x08: return true; |
whismanoid | 0:3edb3708c8c5 | 3189 | #endif |
whismanoid | 0:3edb3708c8c5 | 3190 | #if HAS_pwmDriver9 |
whismanoid | 0:3edb3708c8c5 | 3191 | case '9': case 0x09: return true; |
whismanoid | 0:3edb3708c8c5 | 3192 | #endif |
whismanoid | 0:3edb3708c8c5 | 3193 | #if HAS_pwmDriver10 |
whismanoid | 0:3edb3708c8c5 | 3194 | case 'a': case 0x0a: return true; |
whismanoid | 0:3edb3708c8c5 | 3195 | #endif |
whismanoid | 0:3edb3708c8c5 | 3196 | #if HAS_pwmDriver11 |
whismanoid | 0:3edb3708c8c5 | 3197 | case 'b': case 0x0b: return true; |
whismanoid | 0:3edb3708c8c5 | 3198 | #endif |
whismanoid | 0:3edb3708c8c5 | 3199 | #if HAS_pwmDriver12 |
whismanoid | 0:3edb3708c8c5 | 3200 | case 'c': case 0x0c: return true; |
whismanoid | 0:3edb3708c8c5 | 3201 | #endif |
whismanoid | 0:3edb3708c8c5 | 3202 | #if HAS_pwmDriver13 |
whismanoid | 0:3edb3708c8c5 | 3203 | case 'd': case 0x0d: return true; |
whismanoid | 0:3edb3708c8c5 | 3204 | #endif |
whismanoid | 0:3edb3708c8c5 | 3205 | #if HAS_pwmDriver14 |
whismanoid | 0:3edb3708c8c5 | 3206 | case 'e': case 0x0e: return true; |
whismanoid | 0:3edb3708c8c5 | 3207 | #endif |
whismanoid | 0:3edb3708c8c5 | 3208 | #if HAS_pwmDriver15 |
whismanoid | 0:3edb3708c8c5 | 3209 | case 'f': case 0x0f: return true; |
whismanoid | 0:3edb3708c8c5 | 3210 | #endif |
whismanoid | 0:3edb3708c8c5 | 3211 | default: |
whismanoid | 0:3edb3708c8c5 | 3212 | return false; |
whismanoid | 0:3edb3708c8c5 | 3213 | } |
whismanoid | 0:3edb3708c8c5 | 3214 | } |
whismanoid | 0:3edb3708c8c5 | 3215 | #endif |
whismanoid | 0:3edb3708c8c5 | 3216 | |
whismanoid | 0:3edb3708c8c5 | 3217 | #if HAS_I2C // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 3218 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3219 | // Search I2C device address list |
whismanoid | 0:3edb3708c8c5 | 3220 | // |
whismanoid | 0:3edb3708c8c5 | 3221 | // @param[in] deviceAddress7First = I2C device address (slave address on I2C bus), 7-bits, RIGHT-justified. |
whismanoid | 0:3edb3708c8c5 | 3222 | // @param[in] deviceAddress7Last = I2C device address (slave address on I2C bus), 7-bits, RIGHT-justified. |
whismanoid | 0:3edb3708c8c5 | 3223 | // @param[in] numDevicesFoundLimit = maximum number of devices to detect before halting search; in case SCL stuck low or pullups missing. |
whismanoid | 0:3edb3708c8c5 | 3224 | // @returns deviceAddress on success; 0 on failure |
whismanoid | 0:3edb3708c8c5 | 3225 | // @post g_I2C_deviceAddress7 is updated with any device that did ACK |
whismanoid | 0:3edb3708c8c5 | 3226 | // |
whismanoid | 0:3edb3708c8c5 | 3227 | void HuntAttachedI2CDevices(CmdLine& cmdLine, uint8_t deviceAddress7First, uint8_t deviceAddress7Last, |
whismanoid | 0:3edb3708c8c5 | 3228 | const uint8_t numDevicesFoundLimit = 20) |
whismanoid | 0:3edb3708c8c5 | 3229 | { |
whismanoid | 0:3edb3708c8c5 | 3230 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(...) |
whismanoid | 0:3edb3708c8c5 | 3231 | I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 3232 | i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 3233 | |
whismanoid | 0:3edb3708c8c5 | 3234 | // %IP -- I2C probe |
whismanoid | 0:3edb3708c8c5 | 3235 | // TODO: i2c transfer |
whismanoid | 0:3edb3708c8c5 | 3236 | //const int addr7bit = 0x48; // 7 bit I2C address |
whismanoid | 0:3edb3708c8c5 | 3237 | //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90 |
whismanoid | 0:3edb3708c8c5 | 3238 | // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 3239 | // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 3240 | // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 3241 | // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 3242 | // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 3243 | // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 3244 | // /* 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 | 0:3edb3708c8c5 | 3245 | // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More... |
whismanoid | 0:3edb3708c8c5 | 3246 | |
whismanoid | 0:3edb3708c8c5 | 3247 | //const char probeWriteData[] = { 0x00 }; |
whismanoid | 0:3edb3708c8c5 | 3248 | //int probeWriteDataLength = 1; |
whismanoid | 0:3edb3708c8c5 | 3249 | //bool isRepeatedStart = false; |
whismanoid | 0:3edb3708c8c5 | 3250 | cmdLine.serial().printf("I2C Probe {0x%2.2X (0x%2.2X >> 1) to 0x%2.2X (0x%2.2X >> 1)}, limit %d\r\n", |
whismanoid | 0:3edb3708c8c5 | 3251 | deviceAddress7First, |
whismanoid | 0:3edb3708c8c5 | 3252 | deviceAddress7First << 1, |
whismanoid | 0:3edb3708c8c5 | 3253 | deviceAddress7Last, |
whismanoid | 0:3edb3708c8c5 | 3254 | deviceAddress7Last << 1, |
whismanoid | 0:3edb3708c8c5 | 3255 | numDevicesFoundLimit); // HuntAttachedI2CDevices |
whismanoid | 0:3edb3708c8c5 | 3256 | //~ const int i2cFileDescriptor = i2c_open_adapter(1); |
whismanoid | 0:3edb3708c8c5 | 3257 | uint8_t numDevicesFound = 0; |
whismanoid | 0:3edb3708c8c5 | 3258 | uint8_t last_valid_deviceAddress7 = 0; |
whismanoid | 0:3edb3708c8c5 | 3259 | for (uint8_t deviceAddress7 = deviceAddress7First; deviceAddress7 <= deviceAddress7Last; deviceAddress7++) |
whismanoid | 0:3edb3708c8c5 | 3260 | { |
whismanoid | 0:3edb3708c8c5 | 3261 | //cmdLine.serial().printf(" (0x%2.2X >> 1) ", (deviceAddress7 << 1)); |
whismanoid | 0:3edb3708c8c5 | 3262 | //if (i2c_ioctl_I2C_SLAVE_i2cDeviceAddress7bits(i2cFileDescriptor, deviceAddress7) == 0) |
whismanoid | 0:3edb3708c8c5 | 3263 | int addr8bit = deviceAddress7 * 2; |
whismanoid | 0:3edb3708c8c5 | 3264 | // |
whismanoid | 0:3edb3708c8c5 | 3265 | // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 3266 | // Returns 0 on success (ack), nonzero on failure (nack) |
whismanoid | 0:3edb3708c8c5 | 3267 | //bool gotACK = (i2cMaster.write (addr8bit, probeWriteData, probeWriteDataLength, isRepeatedStart) == 0); |
whismanoid | 0:3edb3708c8c5 | 3268 | // |
whismanoid | 0:3edb3708c8c5 | 3269 | // SMBusQuick test |
whismanoid | 0:3edb3708c8c5 | 3270 | i2cMaster.start(); |
whismanoid | 0:3edb3708c8c5 | 3271 | // /** Write single byte out on the I2C bus |
whismanoid | 0:3edb3708c8c5 | 3272 | // * |
whismanoid | 0:3edb3708c8c5 | 3273 | // * @param data data to write out on bus |
whismanoid | 0:3edb3708c8c5 | 3274 | // * |
whismanoid | 0:3edb3708c8c5 | 3275 | // * @returns |
whismanoid | 0:3edb3708c8c5 | 3276 | // * '0' - NAK was received |
whismanoid | 0:3edb3708c8c5 | 3277 | // * '1' - ACK was received, |
whismanoid | 0:3edb3708c8c5 | 3278 | // * '2' - timeout |
whismanoid | 0:3edb3708c8c5 | 3279 | // */ |
whismanoid | 0:3edb3708c8c5 | 3280 | // int write(int data); |
whismanoid | 0:3edb3708c8c5 | 3281 | int writeStatus = i2cMaster.write(addr8bit); |
whismanoid | 0:3edb3708c8c5 | 3282 | i2cMaster.stop(); |
whismanoid | 0:3edb3708c8c5 | 3283 | bool gotACK = (writeStatus == 1); // ACK was received |
whismanoid | 0:3edb3708c8c5 | 3284 | if (writeStatus == 2) // timeout |
whismanoid | 0:3edb3708c8c5 | 3285 | { |
whismanoid | 0:3edb3708c8c5 | 3286 | cmdLine.serial().printf("- timeout\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3287 | } |
whismanoid | 0:3edb3708c8c5 | 3288 | // |
whismanoid | 0:3edb3708c8c5 | 3289 | if (gotACK) |
whismanoid | 0:3edb3708c8c5 | 3290 | { |
whismanoid | 0:3edb3708c8c5 | 3291 | // @return status; error if (fileDescriptor < 0) |
whismanoid | 0:3edb3708c8c5 | 3292 | cmdLine.serial().printf("+ ADDR=0x%2.2X (0x%2.2X >> 1) ACK\r\n", deviceAddress7, (deviceAddress7 << 1)); |
whismanoid | 0:3edb3708c8c5 | 3293 | numDevicesFound++; |
whismanoid | 0:3edb3708c8c5 | 3294 | last_valid_deviceAddress7 = deviceAddress7; |
whismanoid | 0:3edb3708c8c5 | 3295 | if (numDevicesFound > numDevicesFoundLimit) |
whismanoid | 0:3edb3708c8c5 | 3296 | { |
whismanoid | 0:3edb3708c8c5 | 3297 | break; |
whismanoid | 0:3edb3708c8c5 | 3298 | } |
whismanoid | 0:3edb3708c8c5 | 3299 | continue; |
whismanoid | 0:3edb3708c8c5 | 3300 | } |
whismanoid | 0:3edb3708c8c5 | 3301 | } |
whismanoid | 0:3edb3708c8c5 | 3302 | if (numDevicesFound == 0) |
whismanoid | 0:3edb3708c8c5 | 3303 | { |
whismanoid | 0:3edb3708c8c5 | 3304 | cmdLine.serial().printf("- No I2C devices found. Maybe SCL/SDA are swapped?\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3305 | } |
whismanoid | 0:3edb3708c8c5 | 3306 | else if (numDevicesFound > numDevicesFoundLimit) |
whismanoid | 0:3edb3708c8c5 | 3307 | { |
whismanoid | 0:3edb3708c8c5 | 3308 | cmdLine.serial().printf("- Many I2C devices found. SCL/SDA missing pullup resistors? SCL stuck low?\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3309 | } |
whismanoid | 0:3edb3708c8c5 | 3310 | else |
whismanoid | 0:3edb3708c8c5 | 3311 | { |
whismanoid | 0:3edb3708c8c5 | 3312 | //~ i2c_ioctl_I2C_SLAVE_i2cDeviceAddress7bits(i2cFileDescriptor, last_valid_deviceAddress7); |
whismanoid | 0:3edb3708c8c5 | 3313 | g_I2C_deviceAddress7 = last_valid_deviceAddress7; |
whismanoid | 0:3edb3708c8c5 | 3314 | } |
whismanoid | 0:3edb3708c8c5 | 3315 | //~ i2c_close(i2cFileDescriptor); |
whismanoid | 0:3edb3708c8c5 | 3316 | } |
whismanoid | 0:3edb3708c8c5 | 3317 | #endif // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 3318 | |
whismanoid | 0:3edb3708c8c5 | 3319 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3320 | // periodic interrupt timer onTimerTick handler triggered by Ticker |
whismanoid | 0:3edb3708c8c5 | 3321 | // analogIn0 (MAX32630:AIN_4 = AIN0 / 5.0) controls angular speed |
whismanoid | 0:3edb3708c8c5 | 3322 | // analogIn1 (MAX32630:AIN_5 = AIN1 / 5.0) controls PWM duty cycle |
whismanoid | 0:3edb3708c8c5 | 3323 | // note: measured 500ns overhead for MAX32630FTHR digitalInOut1.write(0); digitalInOut1.write(1); |
whismanoid | 0:3edb3708c8c5 | 3324 | #if USE_PERIODIC_TIMER |
whismanoid | 0:3edb3708c8c5 | 3325 | void onTimerTick() { |
whismanoid | 0:3edb3708c8c5 | 3326 | } // onTimerTick |
whismanoid | 0:3edb3708c8c5 | 3327 | #endif |
whismanoid | 0:3edb3708c8c5 | 3328 | |
whismanoid | 0:3edb3708c8c5 | 3329 | #if USE_PERIODIC_TIMER |
whismanoid | 0:3edb3708c8c5 | 3330 | // periodic interrupt timer command handlers -- enable timer |
whismanoid | 0:3edb3708c8c5 | 3331 | void cmd_TE() |
whismanoid | 0:3edb3708c8c5 | 3332 | { |
whismanoid | 0:3edb3708c8c5 | 3333 | //us_timestamp_t interval_usec = 100000; // 100ms |
whismanoid | 0:3edb3708c8c5 | 3334 | periodicInterruptTimer_interval_usec = 100000; // 100ms |
whismanoid | 0:3edb3708c8c5 | 3335 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 3336 | DAPLINKserial.printf(" Timer Enable %d us\r\n", periodicInterruptTimer_interval_usec); |
whismanoid | 0:3edb3708c8c5 | 3337 | # endif |
whismanoid | 0:3edb3708c8c5 | 3338 | microUSBserial.printf(" Timer Enable %d us", periodicInterruptTimer_interval_usec); |
whismanoid | 0:3edb3708c8c5 | 3339 | periodicInterruptTimer.attach_us(&onTimerTick, periodicInterruptTimer_interval_usec); |
whismanoid | 0:3edb3708c8c5 | 3340 | // -- periodicInterruptTimer.attach(&onTimerTick, interval_sec); // the address of the function to be attached (onTimerTick) and the interval (2 seconds) |
whismanoid | 0:3edb3708c8c5 | 3341 | // -- periodicInterruptTimer.attach_us(&onTimerTick, interval_usec); // the address of the function to be attached (onTimerTick) and the interval (2 seconds) |
whismanoid | 0:3edb3708c8c5 | 3342 | // -- periodicInterruptTimer.attach(Callback<void()> func, float t); |
whismanoid | 0:3edb3708c8c5 | 3343 | // -- periodicInterruptTimer.attach_us(Callback<void()> func, us_timestamp_t t); |
whismanoid | 0:3edb3708c8c5 | 3344 | // TODO1: cmd_T add cSubCommand to change interval of Ticker periodic interrupt timer |
whismanoid | 0:3edb3708c8c5 | 3345 | } |
whismanoid | 0:3edb3708c8c5 | 3346 | #endif |
whismanoid | 0:3edb3708c8c5 | 3347 | |
whismanoid | 0:3edb3708c8c5 | 3348 | #if USE_PERIODIC_TIMER |
whismanoid | 0:3edb3708c8c5 | 3349 | // periodic interrupt timer command handlers -- disable timer |
whismanoid | 0:3edb3708c8c5 | 3350 | void cmd_TD() |
whismanoid | 0:3edb3708c8c5 | 3351 | { |
whismanoid | 0:3edb3708c8c5 | 3352 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 3353 | DAPLINKserial.printf(" Timer Disable\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3354 | # endif |
whismanoid | 0:3edb3708c8c5 | 3355 | microUSBserial.printf(" Timer Disable "); |
whismanoid | 0:3edb3708c8c5 | 3356 | periodicInterruptTimer.detach(); // Detach the function |
whismanoid | 0:3edb3708c8c5 | 3357 | } |
whismanoid | 0:3edb3708c8c5 | 3358 | #endif |
whismanoid | 0:3edb3708c8c5 | 3359 | |
whismanoid | 0:3edb3708c8c5 | 3360 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3361 | // When user presses button BUTTON1, perform a demo configuration |
whismanoid | 0:3edb3708c8c5 | 3362 | #if HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 3363 | void onButton1FallingEdge(void) |
whismanoid | 0:3edb3708c8c5 | 3364 | { |
whismanoid | 0:3edb3708c8c5 | 3365 | void SelfTest(CmdLine & cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3366 | |
whismanoid | 0:3edb3708c8c5 | 3367 | // TODO1: BUTTON1 demo configuration LED blink |
whismanoid | 0:3edb3708c8c5 | 3368 | //~ rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 3369 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3370 | //~ rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 3371 | //~ rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 3372 | //~ rgb_led.cyan(); // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 3373 | //~ rgb_led.magenta(); // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 3374 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3375 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 3376 | //~ led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3377 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3378 | //~ ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3379 | //~ led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3380 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 3381 | //~ ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3382 | //~ led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3383 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3384 | //~ ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3385 | //~ led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3386 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 3387 | //~ ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3388 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3389 | |
whismanoid | 0:3edb3708c8c5 | 3390 | #if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 3391 | SelfTest(cmdLine_microUSBserial); |
whismanoid | 0:3edb3708c8c5 | 3392 | #elif HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 3393 | SelfTest(cmdLine_DAPLINKserial); |
whismanoid | 0:3edb3708c8c5 | 3394 | #endif |
whismanoid | 0:3edb3708c8c5 | 3395 | |
whismanoid | 0:3edb3708c8c5 | 3396 | #if 0 // APPLICATION_MAX5715 // onButton1FallingEdge BUTTON1 demo configuration MAX5715BOB |
whismanoid | 0:3edb3708c8c5 | 3397 | //~ cmdLine.serial().printf("MAX5715_REF(REF_AlwaysOn_2V500)"); |
whismanoid | 0:3edb3708c8c5 | 3398 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_2V500); |
whismanoid | 0:3edb3708c8c5 | 3399 | |
whismanoid | 0:3edb3708c8c5 | 3400 | uint16_t code = 4095; |
whismanoid | 0:3edb3708c8c5 | 3401 | //~ cmdLine.serial().printf("CODEallLOADall code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 3402 | g_MAX5715_device.CODEallLOADall(code); |
whismanoid | 0:3edb3708c8c5 | 3403 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 3404 | |
whismanoid | 0:3edb3708c8c5 | 3405 | } |
whismanoid | 0:3edb3708c8c5 | 3406 | #endif // HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 3407 | |
whismanoid | 0:3edb3708c8c5 | 3408 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3409 | // When user presses button BUTTON2, perform a demo configuration |
whismanoid | 0:3edb3708c8c5 | 3410 | #if HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 3411 | void onButton2FallingEdge(void) |
whismanoid | 0:3edb3708c8c5 | 3412 | { |
whismanoid | 0:3edb3708c8c5 | 3413 | // TODO1: BUTTON2 demo configuration LED blink |
whismanoid | 0:3edb3708c8c5 | 3414 | //~ led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3415 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3416 | // ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3417 | // led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3418 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3419 | // ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3420 | // led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3421 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3422 | // ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3423 | // led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3424 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3425 | // ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 3426 | |
whismanoid | 0:3edb3708c8c5 | 3427 | #if APPLICATION_MAX5715 // onButton2FallingEdge BUTTON2 demo configuration MAX5715BOB |
whismanoid | 0:3edb3708c8c5 | 3428 | //~ cmdLine.serial().printf("MAX5715_REF(REF_AlwaysOn_2V048)"); |
whismanoid | 0:3edb3708c8c5 | 3429 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_2V048); |
whismanoid | 0:3edb3708c8c5 | 3430 | // |
whismanoid | 0:3edb3708c8c5 | 3431 | uint16_t ch = 0; |
whismanoid | 0:3edb3708c8c5 | 3432 | uint16_t code = 0xccc; |
whismanoid | 0:3edb3708c8c5 | 3433 | //~ cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 3434 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 3435 | // |
whismanoid | 0:3edb3708c8c5 | 3436 | ch = 1; |
whismanoid | 0:3edb3708c8c5 | 3437 | code = 0x800; |
whismanoid | 0:3edb3708c8c5 | 3438 | //~ cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 3439 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 3440 | // |
whismanoid | 0:3edb3708c8c5 | 3441 | ch = 2; |
whismanoid | 0:3edb3708c8c5 | 3442 | code = 0x666; |
whismanoid | 0:3edb3708c8c5 | 3443 | //~ cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 3444 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 3445 | // |
whismanoid | 0:3edb3708c8c5 | 3446 | ch = 3; |
whismanoid | 0:3edb3708c8c5 | 3447 | code = 0xFFF; |
whismanoid | 0:3edb3708c8c5 | 3448 | //~ cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 3449 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 3450 | #elif APPLICATION_MAX11131 // onButton2FallingEdge BUTTON2 demo configuration MAX11131BOB |
whismanoid | 0:3edb3708c8c5 | 3451 | // TODO1: demo |
whismanoid | 0:3edb3708c8c5 | 3452 | // MAX11131 > 4 |
whismanoid | 0:3edb3708c8c5 | 3453 | // ScanStandardExternalClock ch=9 pm=0 id=1 |
whismanoid | 0:3edb3708c8c5 | 3454 | // ScanRead_nWords_chanID nWords=10 |
whismanoid | 0:3edb3708c8c5 | 3455 | // ch=0 xu=2964 = 0x0b94 = 1.8091V |
whismanoid | 0:3edb3708c8c5 | 3456 | // ch=1 xu=2227 = 0x08b3 = 1.3593V |
whismanoid | 0:3edb3708c8c5 | 3457 | // ch=2 xu=1570 = 0x0622 = 0.9583V |
whismanoid | 0:3edb3708c8c5 | 3458 | // ch=3 xu=865 = 0x0361 = 0.5280V |
whismanoid | 0:3edb3708c8c5 | 3459 | // ch=4 xu=630 = 0x0276 = 0.3845V |
whismanoid | 0:3edb3708c8c5 | 3460 | // ch=5 xu=594 = 0x0252 = 0.3625V |
whismanoid | 0:3edb3708c8c5 | 3461 | // ch=6 xu=461 = 0x01cd = 0.2814V |
whismanoid | 0:3edb3708c8c5 | 3462 | // ch=7 xu=364 = 0x016c = 0.2222V |
whismanoid | 0:3edb3708c8c5 | 3463 | // ch=8 xu=480 = 0x01e0 = 0.2930V |
whismanoid | 0:3edb3708c8c5 | 3464 | // ch=9 xu=616 = 0x0268 = 0.3760V |
whismanoid | 0:3edb3708c8c5 | 3465 | g_MAX11131_device.channelNumber_0_15 = 9; |
whismanoid | 0:3edb3708c8c5 | 3466 | g_MAX11131_device.PowerManagement_0_2 = 0; |
whismanoid | 0:3edb3708c8c5 | 3467 | g_MAX11131_device.chan_id_0_1 = 1; |
whismanoid | 0:3edb3708c8c5 | 3468 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanStandardExternalClock(); |
whismanoid | 0:3edb3708c8c5 | 3469 | // |
whismanoid | 0:3edb3708c8c5 | 3470 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 3471 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 3472 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 3473 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 3474 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 3475 | // |
whismanoid | 0:3edb3708c8c5 | 3476 | // TODO: compare with mbed/Arduino AIN0-AIN3 |
whismanoid | 0:3edb3708c8c5 | 3477 | // |
whismanoid | 0:3edb3708c8c5 | 3478 | #elif APPLICATION_MAX5171 // onButton2FallingEdge BUTTON2 demo configuration MAX5171BOB |
whismanoid | 0:3edb3708c8c5 | 3479 | // TODO: demo |
whismanoid | 0:3edb3708c8c5 | 3480 | uint16_t code = 0xccc; |
whismanoid | 0:3edb3708c8c5 | 3481 | g_MAX5171_device.CODE(code); |
whismanoid | 0:3edb3708c8c5 | 3482 | #elif APPLICATION_MAX11410 // onButton2FallingEdge BUTTON2 demo configuration MAX11410BOB |
whismanoid | 0:3edb3708c8c5 | 3483 | // TODO: demo |
whismanoid | 0:3edb3708c8c5 | 3484 | g_MAX11410_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 3485 | #elif APPLICATION_MAX12345 // onButton2FallingEdge BUTTON2 demo configuration MAX12345BOB |
whismanoid | 0:3edb3708c8c5 | 3486 | // TODO: demo |
whismanoid | 0:3edb3708c8c5 | 3487 | g_MAX12345_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 3488 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 3489 | rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 3490 | |
whismanoid | 0:3edb3708c8c5 | 3491 | } |
whismanoid | 0:3edb3708c8c5 | 3492 | #endif // HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 3493 | |
whismanoid | 0:3edb3708c8c5 | 3494 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3495 | // TODO1: use MaximTinyTester encapsulate SelfTest support functions |
whismanoid | 0:3edb3708c8c5 | 3496 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3497 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3498 | int g_SelfTest_nPass = 0; // PASS test counter used by SelfTest() |
whismanoid | 0:3edb3708c8c5 | 3499 | int g_SelfTest_nFail = 0; // FAIL test counter used by SelfTest() |
whismanoid | 0:3edb3708c8c5 | 3500 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3501 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3502 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3503 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3504 | void SelfTest_PASS(CmdLine& cmdLine) |
whismanoid | 0:3edb3708c8c5 | 3505 | { |
whismanoid | 0:3edb3708c8c5 | 3506 | ++g_SelfTest_nPass; |
whismanoid | 0:3edb3708c8c5 | 3507 | cmdLine.serial().printf("\r\n+PASS "); |
whismanoid | 0:3edb3708c8c5 | 3508 | } |
whismanoid | 0:3edb3708c8c5 | 3509 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3510 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3511 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3512 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3513 | void SelfTest_FAIL(CmdLine& cmdLine) |
whismanoid | 0:3edb3708c8c5 | 3514 | { |
whismanoid | 0:3edb3708c8c5 | 3515 | ++g_SelfTest_nFail; |
whismanoid | 0:3edb3708c8c5 | 3516 | cmdLine.serial().printf("\r\n-FAIL "); |
whismanoid | 0:3edb3708c8c5 | 3517 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 3518 | rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 3519 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 3520 | //~ rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 3521 | //~ rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 3522 | //~ rgb_led.cyan(); // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 3523 | //~ rgb_led.magenta(); // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 3524 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 3525 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 3526 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 3527 | } |
whismanoid | 0:3edb3708c8c5 | 3528 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3529 | //-------------------------------------------------- |
whismanoid | 2:b3a8a0ca0a94 | 3530 | #if APPLICATION_MAX5715 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3531 | #if USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3532 | // |
whismanoid | 2:b3a8a0ca0a94 | 3533 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 2:b3a8a0ca0a94 | 3534 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 2:b3a8a0ca0a94 | 3535 | // |
whismanoid | 2:b3a8a0ca0a94 | 3536 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3537 | // uint8_t MAX5715::Init(void) |
whismanoid | 2:b3a8a0ca0a94 | 3538 | // uint8_t (*fn_MAX5715_Init)() = [](){ return g_MAX5715_device.Init(); }; |
whismanoid | 2:b3a8a0ca0a94 | 3539 | uint8_t fn_MAX5715_Init() { return g_MAX5715_device.Init(); }; |
whismanoid | 2:b3a8a0ca0a94 | 3540 | // |
whismanoid | 2:b3a8a0ca0a94 | 3541 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3542 | // uint16_t MAX5715::DACCodeOfVoltage(double voltageV) |
whismanoid | 2:b3a8a0ca0a94 | 3543 | // uint16_t (*fn_MAX5715_DACCodeOfVoltage)(double) = [](double voltageV){ return g_MAX5715_device.DACCodeOfVoltage(voltageV); }; |
whismanoid | 2:b3a8a0ca0a94 | 3544 | uint16_t fn_MAX5715_DACCodeOfVoltage(double voltageV) { return g_MAX5715_device.DACCodeOfVoltage(voltageV); }; |
whismanoid | 2:b3a8a0ca0a94 | 3545 | // |
whismanoid | 2:b3a8a0ca0a94 | 3546 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3547 | // double MAX5715::VoltageOfCode(uint16_t value_u14) |
whismanoid | 2:b3a8a0ca0a94 | 3548 | //double (*fn_MAX5715_VoltageOfCode)(uint16_t) = [](uint16_t value_u14){ return g_MAX5715_device.VoltageOfCode(value_u14); }; |
whismanoid | 2:b3a8a0ca0a94 | 3549 | double fn_MAX5715_VoltageOfCode(uint16_t value_u14) { return g_MAX5715_device.VoltageOfCode(value_u14); }; |
whismanoid | 2:b3a8a0ca0a94 | 3550 | // |
whismanoid | 2:b3a8a0ca0a94 | 3551 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3552 | // void MAX5715::CODEnLOADn(uint8_t channel_0_3, uint16_t dacCodeLsbs) |
whismanoid | 2:b3a8a0ca0a94 | 3553 | // void (*fn_MAX5715_CODEnLOADn)(uint8_t channel_0_3, uint16_t dacCodeLsbs) = [](uint8_t channel_0_3, uint16_t dacCodeLsbs){ return g_MAX5715_device.CODEnLOADn(channel_0_3, dacCodeLsbs); }; |
whismanoid | 2:b3a8a0ca0a94 | 3554 | void fn_MAX5715_CODEnLOADn (uint8_t channel_0_3, uint16_t dacCodeLsbs) { return g_MAX5715_device.CODEnLOADn(channel_0_3, dacCodeLsbs); }; |
whismanoid | 2:b3a8a0ca0a94 | 3555 | // |
whismanoid | 2:b3a8a0ca0a94 | 3556 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3557 | #endif // APPLICATION_MAX5715 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3558 | //-------------------------------------------------- |
whismanoid | 2:b3a8a0ca0a94 | 3559 | #if APPLICATION_MAX11131 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3560 | #if USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3561 | // |
whismanoid | 2:b3a8a0ca0a94 | 3562 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 2:b3a8a0ca0a94 | 3563 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 2:b3a8a0ca0a94 | 3564 | // |
whismanoid | 2:b3a8a0ca0a94 | 3565 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3566 | // |
whismanoid | 2:b3a8a0ca0a94 | 3567 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3568 | #endif // APPLICATION_MAX11131 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3569 | //-------------------------------------------------- |
whismanoid | 2:b3a8a0ca0a94 | 3570 | #if APPLICATION_MAX5171 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3571 | #if USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3572 | // |
whismanoid | 2:b3a8a0ca0a94 | 3573 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 2:b3a8a0ca0a94 | 3574 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 2:b3a8a0ca0a94 | 3575 | // |
whismanoid | 2:b3a8a0ca0a94 | 3576 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3577 | // uint8_t MAX5171::Init(void) |
whismanoid | 2:b3a8a0ca0a94 | 3578 | // uint8_t (*fn_MAX5171_Init)() = [](){ return g_MAX5171_device.Init(); }; |
whismanoid | 2:b3a8a0ca0a94 | 3579 | uint8_t fn_MAX5171_Init() { return g_MAX5171_device.Init(); }; |
whismanoid | 2:b3a8a0ca0a94 | 3580 | // |
whismanoid | 2:b3a8a0ca0a94 | 3581 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3582 | // uint16_t MAX5171::DACCodeOfVoltage(double voltageV) |
whismanoid | 2:b3a8a0ca0a94 | 3583 | // uint16_t (*fn_MAX5171_DACCodeOfVoltage)(double) = [](double voltageV){ return g_MAX5171_device.DACCodeOfVoltage(voltageV); }; |
whismanoid | 2:b3a8a0ca0a94 | 3584 | uint16_t fn_MAX5171_DACCodeOfVoltage(double voltageV) { return g_MAX5171_device.DACCodeOfVoltage(voltageV); }; |
whismanoid | 2:b3a8a0ca0a94 | 3585 | // |
whismanoid | 2:b3a8a0ca0a94 | 3586 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3587 | // double MAX5171::VoltageOfCode(uint16_t value_u14) |
whismanoid | 2:b3a8a0ca0a94 | 3588 | // double (*fn_MAX5171_VoltageOfCode)(uint16_t) = [](uint16_t value_u14){ return g_MAX5171_device.VoltageOfCode(value_u14); }; |
whismanoid | 2:b3a8a0ca0a94 | 3589 | double fn_MAX5171_VoltageOfCode(uint16_t value_u14) { return g_MAX5171_device.VoltageOfCode(value_u14); }; |
whismanoid | 2:b3a8a0ca0a94 | 3590 | // |
whismanoid | 2:b3a8a0ca0a94 | 3591 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3592 | // uint8_t MAX5171::CODE_LOAD(uint16_t dacCodeLsbs) |
whismanoid | 2:b3a8a0ca0a94 | 3593 | // uint8_t (*fn_MAX5171_CODE_LOAD)(uint16_t dacCodeLsbs) = [](uint16_t dacCodeLsbs){ return g_MAX5171_device.CODE_LOAD(dacCodeLsbs); }; |
whismanoid | 2:b3a8a0ca0a94 | 3594 | uint8_t fn_MAX5171_CODE_LOAD(uint16_t dacCodeLsbs) { return g_MAX5171_device.CODE_LOAD(dacCodeLsbs); }; |
whismanoid | 2:b3a8a0ca0a94 | 3595 | // |
whismanoid | 2:b3a8a0ca0a94 | 3596 | // |
whismanoid | 2:b3a8a0ca0a94 | 3597 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3598 | #endif // APPLICATION_MAX5171 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3599 | //-------------------------------------------------- |
whismanoid | 2:b3a8a0ca0a94 | 3600 | #if APPLICATION_MAX11410 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3601 | #if USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3602 | // |
whismanoid | 2:b3a8a0ca0a94 | 3603 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 2:b3a8a0ca0a94 | 3604 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 2:b3a8a0ca0a94 | 3605 | // |
whismanoid | 2:b3a8a0ca0a94 | 3606 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3607 | // |
whismanoid | 2:b3a8a0ca0a94 | 3608 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3609 | #endif // APPLICATION_MAX11410 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3610 | //-------------------------------------------------- |
whismanoid | 2:b3a8a0ca0a94 | 3611 | #if APPLICATION_MAX12345 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3612 | #if USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3613 | // |
whismanoid | 2:b3a8a0ca0a94 | 3614 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 2:b3a8a0ca0a94 | 3615 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 2:b3a8a0ca0a94 | 3616 | // |
whismanoid | 2:b3a8a0ca0a94 | 3617 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 2:b3a8a0ca0a94 | 3618 | // |
whismanoid | 2:b3a8a0ca0a94 | 3619 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 2:b3a8a0ca0a94 | 3620 | #endif // APPLICATION_MAX12345 // SelfTest |
whismanoid | 2:b3a8a0ca0a94 | 3621 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3622 | void SelfTest_print_DACCodeOfVoltage(CmdLine& cmdLine, double voltageV) |
whismanoid | 0:3edb3708c8c5 | 3623 | { |
whismanoid | 0:3edb3708c8c5 | 3624 | cmdLine.serial().printf("DACCodeOfVoltage(%6.4fV)", voltageV); |
whismanoid | 0:3edb3708c8c5 | 3625 | // For 12-bit DAC, dtostrf width, precision = 6, 4 i.e. 0.0001 |
whismanoid | 0:3edb3708c8c5 | 3626 | // For 14-bit DAC, dtostrf width, precision = 7, 5 i.e. 0.00001 |
whismanoid | 0:3edb3708c8c5 | 3627 | //~ dtostrf(voltageV, 6, 4, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3628 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3629 | //~ cmdLine.serial().printf("V)"); |
whismanoid | 0:3edb3708c8c5 | 3630 | } |
whismanoid | 0:3edb3708c8c5 | 3631 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3632 | #if APPLICATION_MAX5715 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 3633 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3634 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3635 | void SelfTest_DACCodeOfVoltage_Expect(CmdLine& cmdLine, double voltageV, uint16_t expect_result) |
whismanoid | 0:3edb3708c8c5 | 3636 | { |
whismanoid | 0:3edb3708c8c5 | 3637 | uint16_t actual_result = g_MAX5715_device.DACCodeOfVoltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 3638 | if (actual_result != expect_result) |
whismanoid | 0:3edb3708c8c5 | 3639 | { |
whismanoid | 0:3edb3708c8c5 | 3640 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3641 | SelfTest_print_DACCodeOfVoltage(cmdLine, voltageV); |
whismanoid | 0:3edb3708c8c5 | 3642 | cmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3643 | cmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 0:3edb3708c8c5 | 3644 | } |
whismanoid | 0:3edb3708c8c5 | 3645 | else |
whismanoid | 0:3edb3708c8c5 | 3646 | { |
whismanoid | 0:3edb3708c8c5 | 3647 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3648 | SelfTest_print_DACCodeOfVoltage(cmdLine, voltageV); |
whismanoid | 0:3edb3708c8c5 | 3649 | cmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3650 | } |
whismanoid | 0:3edb3708c8c5 | 3651 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3652 | } |
whismanoid | 0:3edb3708c8c5 | 3653 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 3654 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3655 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3656 | #if APPLICATION_MAX5171 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 3657 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3658 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3659 | void SelfTest_DACCodeOfVoltage_Expect(CmdLine& cmdLine, double voltageV, uint16_t expect_result) |
whismanoid | 0:3edb3708c8c5 | 3660 | { |
whismanoid | 0:3edb3708c8c5 | 3661 | uint16_t actual_result = g_MAX5171_device.DACCodeOfVoltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 3662 | if (actual_result != expect_result) |
whismanoid | 0:3edb3708c8c5 | 3663 | { |
whismanoid | 0:3edb3708c8c5 | 3664 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3665 | SelfTest_print_DACCodeOfVoltage(cmdLine, voltageV); |
whismanoid | 0:3edb3708c8c5 | 3666 | cmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3667 | cmdLine.serial().printf(" but got %d", actual_result); |
whismanoid | 0:3edb3708c8c5 | 3668 | } |
whismanoid | 0:3edb3708c8c5 | 3669 | else |
whismanoid | 0:3edb3708c8c5 | 3670 | { |
whismanoid | 0:3edb3708c8c5 | 3671 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3672 | SelfTest_print_DACCodeOfVoltage(cmdLine, voltageV); |
whismanoid | 0:3edb3708c8c5 | 3673 | cmdLine.serial().printf(" expect %d", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3674 | } |
whismanoid | 0:3edb3708c8c5 | 3675 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3676 | } |
whismanoid | 0:3edb3708c8c5 | 3677 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3678 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 3679 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3680 | #if APPLICATION_MAX5715 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 3681 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3682 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3683 | void SelfTest_print_VoltageOfCode(CmdLine& cmdLine, uint16_t value_u12) |
whismanoid | 0:3edb3708c8c5 | 3684 | { |
whismanoid | 0:3edb3708c8c5 | 3685 | cmdLine.serial().printf("VoltageOfCode(%d)", value_u12); |
whismanoid | 0:3edb3708c8c5 | 3686 | //~ dtostrf(voltageV, 6, 4, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3687 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3688 | //~ cmdLine.serial().printf(")"); |
whismanoid | 0:3edb3708c8c5 | 3689 | } |
whismanoid | 0:3edb3708c8c5 | 3690 | /* SelfTest_VoltageOfCode_Expect |
whismanoid | 0:3edb3708c8c5 | 3691 | * |
whismanoid | 0:3edb3708c8c5 | 3692 | * TODO: document this function |
whismanoid | 0:3edb3708c8c5 | 3693 | * This header was inserted by uncrustify; see uncrustify_func_header.txt. |
whismanoid | 0:3edb3708c8c5 | 3694 | * |
whismanoid | 0:3edb3708c8c5 | 3695 | */ |
whismanoid | 0:3edb3708c8c5 | 3696 | void SelfTest_VoltageOfCode_Expect(CmdLine& cmdLine, uint16_t value_u12, double expect_result) |
whismanoid | 0:3edb3708c8c5 | 3697 | { |
whismanoid | 0:3edb3708c8c5 | 3698 | double actual_result = g_MAX5715_device.VoltageOfCode(value_u12); |
whismanoid | 0:3edb3708c8c5 | 3699 | double err_result = (actual_result - expect_result); |
whismanoid | 0:3edb3708c8c5 | 3700 | double one_LSB = (g_MAX5715_device.VRef / 4095); // 12-bit DAC FS |
whismanoid | 0:3edb3708c8c5 | 3701 | double err_threshold = one_LSB; |
whismanoid | 0:3edb3708c8c5 | 3702 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:3edb3708c8c5 | 3703 | { |
whismanoid | 0:3edb3708c8c5 | 3704 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3705 | SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:3edb3708c8c5 | 3706 | cmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3707 | //~ dtostrf(expect_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3708 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3709 | } |
whismanoid | 0:3edb3708c8c5 | 3710 | else |
whismanoid | 0:3edb3708c8c5 | 3711 | { |
whismanoid | 0:3edb3708c8c5 | 3712 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3713 | SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:3edb3708c8c5 | 3714 | cmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3715 | //~ dtostrf(expect_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3716 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3717 | cmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:3edb3708c8c5 | 3718 | //~ dtostrf(actual_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3719 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3720 | cmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:3edb3708c8c5 | 3721 | //~ dtostrf( err_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3722 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3723 | } |
whismanoid | 0:3edb3708c8c5 | 3724 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3725 | } |
whismanoid | 0:3edb3708c8c5 | 3726 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3727 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 3728 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3729 | #if APPLICATION_MAX5171 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 3730 | void SelfTest_print_VoltageOfCode(CmdLine& cmdLine, uint16_t value_u14) |
whismanoid | 0:3edb3708c8c5 | 3731 | { |
whismanoid | 0:3edb3708c8c5 | 3732 | cmdLine.serial().printf("VoltageOfCode(%d)", value_u14); |
whismanoid | 0:3edb3708c8c5 | 3733 | } |
whismanoid | 0:3edb3708c8c5 | 3734 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3735 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3736 | /* SelfTest_VoltageOfCode_Expect |
whismanoid | 0:3edb3708c8c5 | 3737 | * |
whismanoid | 0:3edb3708c8c5 | 3738 | * TODO: document this function |
whismanoid | 0:3edb3708c8c5 | 3739 | * This header was inserted by uncrustify; see uncrustify_func_header.txt. |
whismanoid | 0:3edb3708c8c5 | 3740 | * |
whismanoid | 0:3edb3708c8c5 | 3741 | */ |
whismanoid | 0:3edb3708c8c5 | 3742 | void SelfTest_VoltageOfCode_Expect(CmdLine& cmdLine, uint16_t value_u14, double expect_result) |
whismanoid | 0:3edb3708c8c5 | 3743 | { |
whismanoid | 0:3edb3708c8c5 | 3744 | double actual_result = g_MAX5171_device.VoltageOfCode(value_u14); |
whismanoid | 0:3edb3708c8c5 | 3745 | double err_result = (actual_result - expect_result); |
whismanoid | 0:3edb3708c8c5 | 3746 | double one_LSB = (g_MAX5171_device.VRef / 16383); // 14-bit DAC FS |
whismanoid | 0:3edb3708c8c5 | 3747 | double err_threshold = one_LSB; |
whismanoid | 0:3edb3708c8c5 | 3748 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:3edb3708c8c5 | 3749 | { |
whismanoid | 0:3edb3708c8c5 | 3750 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3751 | SelfTest_print_VoltageOfCode(cmdLine, value_u14); |
whismanoid | 0:3edb3708c8c5 | 3752 | cmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3753 | //~ dtostrf(expect_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3754 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3755 | } |
whismanoid | 0:3edb3708c8c5 | 3756 | else |
whismanoid | 0:3edb3708c8c5 | 3757 | { |
whismanoid | 0:3edb3708c8c5 | 3758 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3759 | SelfTest_print_VoltageOfCode(cmdLine, value_u14); |
whismanoid | 0:3edb3708c8c5 | 3760 | cmdLine.serial().printf(" expect %6.6f", expect_result); |
whismanoid | 0:3edb3708c8c5 | 3761 | //~ dtostrf(expect_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3762 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3763 | cmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:3edb3708c8c5 | 3764 | //~ dtostrf(actual_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3765 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3766 | cmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:3edb3708c8c5 | 3767 | //~ dtostrf( err_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3768 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3769 | } |
whismanoid | 0:3edb3708c8c5 | 3770 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3771 | } |
whismanoid | 0:3edb3708c8c5 | 3772 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3773 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 3774 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3775 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3776 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3777 | bool SelfTest_AnalogInput_Expect_ch_V(CmdLine& cmdLine, int pinIndex, double expect_result, |
whismanoid | 0:3edb3708c8c5 | 3778 | double err_threshold = 0.030) |
whismanoid | 0:3edb3708c8c5 | 3779 | { |
whismanoid | 0:3edb3708c8c5 | 3780 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3781 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 3782 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 3783 | int pinIndexL = ((pinIndex >= 4) ? (pinIndex - 4) : (pinIndex + 0)); |
whismanoid | 0:3edb3708c8c5 | 3784 | // high range channels AIN4, AIN5 |
whismanoid | 0:3edb3708c8c5 | 3785 | int pinIndexH = ((pinIndex >= 4) ? (pinIndex + 0) : (pinIndex + 4)); |
whismanoid | 0:3edb3708c8c5 | 3786 | // |
whismanoid | 0:3edb3708c8c5 | 3787 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 3788 | int cPinIndexL = '0' + pinIndexL; |
whismanoid | 0:3edb3708c8c5 | 3789 | AnalogIn& analogInPinL = find_analogInPin(cPinIndexL); |
whismanoid | 0:3edb3708c8c5 | 3790 | float adc_full_scale_voltageL = analogInPin_fullScaleVoltage[pinIndexL]; |
whismanoid | 0:3edb3708c8c5 | 3791 | float normValueL_0_1 = analogInPinL.read(); |
whismanoid | 0:3edb3708c8c5 | 3792 | // |
whismanoid | 0:3edb3708c8c5 | 3793 | // high range channels AIN4, AIN5 |
whismanoid | 0:3edb3708c8c5 | 3794 | int cPinIndexH = '0' + pinIndexH; |
whismanoid | 0:3edb3708c8c5 | 3795 | AnalogIn& analogInPinH = find_analogInPin(cPinIndexH); |
whismanoid | 0:3edb3708c8c5 | 3796 | float adc_full_scale_voltageH = analogInPin_fullScaleVoltage[pinIndexH]; |
whismanoid | 0:3edb3708c8c5 | 3797 | float normValueH_0_1 = analogInPinH.read(); |
whismanoid | 0:3edb3708c8c5 | 3798 | // |
whismanoid | 0:3edb3708c8c5 | 3799 | double actual_result = (pinIndex >= 4) |
whismanoid | 0:3edb3708c8c5 | 3800 | ? (normValueH_0_1 * adc_full_scale_voltageH) |
whismanoid | 0:3edb3708c8c5 | 3801 | : (normValueL_0_1 * adc_full_scale_voltageL); |
whismanoid | 0:3edb3708c8c5 | 3802 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3803 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 3804 | int cPinIndex = '0' + pinIndex; |
whismanoid | 0:3edb3708c8c5 | 3805 | AnalogIn& analogInPin = find_analogInPin(cPinIndex); |
whismanoid | 0:3edb3708c8c5 | 3806 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex]; |
whismanoid | 0:3edb3708c8c5 | 3807 | float normValue_0_1 = analogInPin.read(); |
whismanoid | 0:3edb3708c8c5 | 3808 | double actual_result = normValue_0_1 * adc_full_scale_voltage; |
whismanoid | 0:3edb3708c8c5 | 3809 | #endif // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3810 | double err_result = (actual_result - expect_result); |
whismanoid | 0:3edb3708c8c5 | 3811 | //double err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 3812 | if (( -err_threshold < err_result) && ( err_result < err_threshold)) |
whismanoid | 0:3edb3708c8c5 | 3813 | { |
whismanoid | 0:3edb3708c8c5 | 3814 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3815 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:3edb3708c8c5 | 3816 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3817 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 3818 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV AIN%c = %7.3f%% = %1.3fV ", |
whismanoid | 0:3edb3708c8c5 | 3819 | cPinIndexL, |
whismanoid | 0:3edb3708c8c5 | 3820 | normValueL_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 3821 | normValueL_0_1 * adc_full_scale_voltageL, |
whismanoid | 0:3edb3708c8c5 | 3822 | cPinIndexH, |
whismanoid | 0:3edb3708c8c5 | 3823 | normValueH_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 3824 | normValueH_0_1 * adc_full_scale_voltageH |
whismanoid | 0:3edb3708c8c5 | 3825 | ); |
whismanoid | 0:3edb3708c8c5 | 3826 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3827 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 3828 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV ", |
whismanoid | 0:3edb3708c8c5 | 3829 | cPinIndex, |
whismanoid | 0:3edb3708c8c5 | 3830 | normValue_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 3831 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:3edb3708c8c5 | 3832 | ); |
whismanoid | 0:3edb3708c8c5 | 3833 | #endif // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3834 | // |
whismanoid | 0:3edb3708c8c5 | 3835 | cmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:3edb3708c8c5 | 3836 | //~ dtostrf(expect_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3837 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3838 | return true; |
whismanoid | 0:3edb3708c8c5 | 3839 | } |
whismanoid | 0:3edb3708c8c5 | 3840 | else |
whismanoid | 0:3edb3708c8c5 | 3841 | { |
whismanoid | 0:3edb3708c8c5 | 3842 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3843 | //~ SelfTest_print_VoltageOfCode(cmdLine, value_u12); |
whismanoid | 0:3edb3708c8c5 | 3844 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3845 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 3846 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV AIN%c = %7.3f%% = %1.3fV ", |
whismanoid | 0:3edb3708c8c5 | 3847 | cPinIndexL, |
whismanoid | 0:3edb3708c8c5 | 3848 | normValueL_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 3849 | normValueL_0_1 * adc_full_scale_voltageL, |
whismanoid | 0:3edb3708c8c5 | 3850 | cPinIndexH, |
whismanoid | 0:3edb3708c8c5 | 3851 | normValueH_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 3852 | normValueH_0_1 * adc_full_scale_voltageH |
whismanoid | 0:3edb3708c8c5 | 3853 | ); |
whismanoid | 0:3edb3708c8c5 | 3854 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3855 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 3856 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV ", |
whismanoid | 0:3edb3708c8c5 | 3857 | cPinIndex, |
whismanoid | 0:3edb3708c8c5 | 3858 | normValue_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 3859 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:3edb3708c8c5 | 3860 | ); |
whismanoid | 0:3edb3708c8c5 | 3861 | #endif // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3862 | // |
whismanoid | 0:3edb3708c8c5 | 3863 | cmdLine.serial().printf(" expect %6.6f +/- %6.6f", expect_result, err_threshold); |
whismanoid | 0:3edb3708c8c5 | 3864 | //~ dtostrf(expect_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3865 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3866 | cmdLine.serial().printf(" but got %6.6f", actual_result); |
whismanoid | 0:3edb3708c8c5 | 3867 | //~ dtostrf(actual_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3868 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3869 | cmdLine.serial().printf(" err=%6.6f", err_result); |
whismanoid | 0:3edb3708c8c5 | 3870 | //~ dtostrf( err_result, 6, 6, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3871 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3872 | } |
whismanoid | 0:3edb3708c8c5 | 3873 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 3874 | return false; |
whismanoid | 0:3edb3708c8c5 | 3875 | } |
whismanoid | 0:3edb3708c8c5 | 3876 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3877 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3878 | #if APPLICATION_MAX5715 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 3879 | void SelfTest_print_Vref(CmdLine & cmdLine) |
whismanoid | 0:3edb3708c8c5 | 3880 | { |
whismanoid | 0:3edb3708c8c5 | 3881 | cmdLine.serial().printf("VRef = %6.4fV LSB=%6.4fV", g_MAX5715_device.VRef, (g_MAX5715_device.VRef / 4095)); |
whismanoid | 0:3edb3708c8c5 | 3882 | //~ dtostrf(g_MAX5715_device.VRef, 6, 4, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3883 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3884 | //~ cmdLine.serial().printf("V LSB="); |
whismanoid | 0:3edb3708c8c5 | 3885 | // For 12-bit DAC, dtostrf width, precision = 6, 4 i.e. 0.0001 |
whismanoid | 0:3edb3708c8c5 | 3886 | // For 14-bit DAC, dtostrf width, precision = 7, 5 i.e. 0.00001 |
whismanoid | 0:3edb3708c8c5 | 3887 | //~ dtostrf( (g_MAX5715_device.VRef / 4095), 6, 4, strOutLineBuffer); // value, width, precision, char* buffer |
whismanoid | 0:3edb3708c8c5 | 3888 | //~ cmdLine.serial().printf(strOutLineBuffer); |
whismanoid | 0:3edb3708c8c5 | 3889 | //~ cmdLine.serial().printf("V"); |
whismanoid | 0:3edb3708c8c5 | 3890 | } |
whismanoid | 0:3edb3708c8c5 | 3891 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 3892 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3893 | #if APPLICATION_MAX5171 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 3894 | void SelfTest_print_Vref(CmdLine & cmdLine) |
whismanoid | 0:3edb3708c8c5 | 3895 | { |
whismanoid | 0:3edb3708c8c5 | 3896 | cmdLine.serial().printf("VRef = %7.5fV LSB=%7.5fV", g_MAX5171_device.VRef, (g_MAX5171_device.VRef / 16383)); |
whismanoid | 0:3edb3708c8c5 | 3897 | // For 12-bit DAC, dtostrf width, precision = 6, 4 i.e. 0.0001 |
whismanoid | 0:3edb3708c8c5 | 3898 | // For 14-bit DAC, dtostrf width, precision = 7, 5 i.e. 0.00001 |
whismanoid | 0:3edb3708c8c5 | 3899 | } |
whismanoid | 0:3edb3708c8c5 | 3900 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 3901 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3902 | #if HAS_SPI2_MAX541 |
whismanoid | 0:3edb3708c8c5 | 3903 | MAX541 max541(spi2_max541, spi2_max541_cs); |
whismanoid | 0:3edb3708c8c5 | 3904 | #endif |
whismanoid | 0:3edb3708c8c5 | 3905 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3906 | bool SelfTest_MAX541_Voltage(CmdLine & cmdLine, MAX541 &max541, double voltageV) |
whismanoid | 0:3edb3708c8c5 | 3907 | { |
whismanoid | 0:3edb3708c8c5 | 3908 | max541.Set_Voltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 3909 | // cmdLine.serial().printf("\r\n Test Fixture: MAX541 set output to %1.3fV = code 0x%4.4x", max541.Get_Voltage(), max541.Get_Code()); |
whismanoid | 0:3edb3708c8c5 | 3910 | cmdLine.serial().printf("\r\n Test Fixture: MAX541 set output to 0x%4.4x = %1.3fV", |
whismanoid | 0:3edb3708c8c5 | 3911 | max541.Get_Code(), max541.Get_Voltage()); |
whismanoid | 0:3edb3708c8c5 | 3912 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3913 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3914 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 3915 | MaximTinyTester tinyTester(cmdLine, analogIn4, analogIn5, analogIn2, analogIn3, analogIn0, analogIn4); |
whismanoid | 0:3edb3708c8c5 | 3916 | tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[4]; // board support |
whismanoid | 0:3edb3708c8c5 | 3917 | tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[5]; // board support |
whismanoid | 0:3edb3708c8c5 | 3918 | tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support |
whismanoid | 0:3edb3708c8c5 | 3919 | tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support |
whismanoid | 0:3edb3708c8c5 | 3920 | tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[0]; // board support |
whismanoid | 0:3edb3708c8c5 | 3921 | tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[1]; // board support |
whismanoid | 0:3edb3708c8c5 | 3922 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 3923 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3924 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 3925 | MaximTinyTester tinyTester(cmdLine, analogIn0, analogIn1, analogIn2, analogIn3, analogIn4, analogIn5); |
whismanoid | 0:3edb3708c8c5 | 3926 | tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[0]; // board support |
whismanoid | 0:3edb3708c8c5 | 3927 | tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[1]; // board support |
whismanoid | 0:3edb3708c8c5 | 3928 | tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support |
whismanoid | 0:3edb3708c8c5 | 3929 | tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support |
whismanoid | 0:3edb3708c8c5 | 3930 | tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[4]; // board support |
whismanoid | 0:3edb3708c8c5 | 3931 | tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[5]; // board support |
whismanoid | 0:3edb3708c8c5 | 3932 | #endif |
whismanoid | 0:3edb3708c8c5 | 3933 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 3934 | tinyTester.err_threshold = 0.100; |
whismanoid | 0:3edb3708c8c5 | 3935 | return tinyTester.AnalogIn0_Read_Expect_voltageV(voltageV); |
whismanoid | 0:3edb3708c8c5 | 3936 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3937 | return SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, voltageV, 0.100); |
whismanoid | 0:3edb3708c8c5 | 3938 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3939 | } |
whismanoid | 0:3edb3708c8c5 | 3940 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3941 | #if APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 3942 | bool SelfTest_MAX11131_EOC_expect(CmdLine & cmdLine, int expect_EOC_value, const char *expect_description) |
whismanoid | 0:3edb3708c8c5 | 3943 | { |
whismanoid | 0:3edb3708c8c5 | 3944 | int actual_EOC_value = -1; |
whismanoid | 0:3edb3708c8c5 | 3945 | for (int retry_count = 0; retry_count < 10; retry_count++) { |
whismanoid | 0:3edb3708c8c5 | 3946 | actual_EOC_value = g_MAX11131_device.EOCinputValue(); |
whismanoid | 0:3edb3708c8c5 | 3947 | if (actual_EOC_value == expect_EOC_value) { |
whismanoid | 0:3edb3708c8c5 | 3948 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3949 | cmdLine.serial().printf("EOC signal=%d %s", expect_EOC_value, expect_description); |
whismanoid | 0:3edb3708c8c5 | 3950 | return true; |
whismanoid | 0:3edb3708c8c5 | 3951 | } |
whismanoid | 0:3edb3708c8c5 | 3952 | // EOC condition not met, retry for a while until give up |
whismanoid | 0:3edb3708c8c5 | 3953 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 3954 | } |
whismanoid | 0:3edb3708c8c5 | 3955 | cmdLine.serial().printf("\r\n!WARN "); // SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3956 | cmdLine.serial().printf("expected EOC signal=%d %s", expect_EOC_value, expect_description); |
whismanoid | 0:3edb3708c8c5 | 3957 | cmdLine.serial().printf(", but got actual EOC=%d", actual_EOC_value); |
whismanoid | 0:3edb3708c8c5 | 3958 | cmdLine.serial().printf(", missing CNVST or EOC connections?"); |
whismanoid | 0:3edb3708c8c5 | 3959 | return false; |
whismanoid | 0:3edb3708c8c5 | 3960 | } |
whismanoid | 0:3edb3708c8c5 | 3961 | #endif |
whismanoid | 0:3edb3708c8c5 | 3962 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3963 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3964 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3965 | #if APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 3966 | bool SelfTest_Expect_Input_UPO_pin(CmdLine & cmdLine, int expect_UPO_value, const char *expect_description) |
whismanoid | 0:3edb3708c8c5 | 3967 | { |
whismanoid | 0:3edb3708c8c5 | 3968 | int actual_UPO_value = -1; |
whismanoid | 0:3edb3708c8c5 | 3969 | for (int retry_count = 0; retry_count < 10; retry_count++) { |
whismanoid | 0:3edb3708c8c5 | 3970 | actual_UPO_value = UPO_pin.read(); // g_MAX5171_device.UPOinputValue(); |
whismanoid | 0:3edb3708c8c5 | 3971 | if (actual_UPO_value == expect_UPO_value) { |
whismanoid | 0:3edb3708c8c5 | 3972 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3973 | cmdLine.serial().printf("UPO signal=%d %s", expect_UPO_value, expect_description); |
whismanoid | 0:3edb3708c8c5 | 3974 | return true; |
whismanoid | 0:3edb3708c8c5 | 3975 | } |
whismanoid | 0:3edb3708c8c5 | 3976 | // UPO condition not met, retry for a while until give up |
whismanoid | 0:3edb3708c8c5 | 3977 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 3978 | } |
whismanoid | 0:3edb3708c8c5 | 3979 | cmdLine.serial().printf("\r\n!WARN "); // SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 3980 | cmdLine.serial().printf("expected UPO signal=%d %s", expect_UPO_value, expect_description); |
whismanoid | 0:3edb3708c8c5 | 3981 | cmdLine.serial().printf(", but got actual UPO=%d", actual_UPO_value); |
whismanoid | 0:3edb3708c8c5 | 3982 | cmdLine.serial().printf(", missing UPO connections?"); |
whismanoid | 0:3edb3708c8c5 | 3983 | return false; |
whismanoid | 0:3edb3708c8c5 | 3984 | } |
whismanoid | 0:3edb3708c8c5 | 3985 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 3986 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3987 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3988 | void SelfTest(CmdLine & cmdLine) |
whismanoid | 0:3edb3708c8c5 | 3989 | { |
whismanoid | 0:3edb3708c8c5 | 3990 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 3991 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 3992 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 3993 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 3994 | // MaximTinyTester(Stream& AssociatedSerialPort, const char *Name); |
whismanoid | 0:3edb3708c8c5 | 3995 | MaximTinyTester tinyTester(cmdLine, analogIn4, analogIn5, analogIn2, analogIn3, analogIn0, analogIn4); |
whismanoid | 0:3edb3708c8c5 | 3996 | tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[4]; // board support |
whismanoid | 0:3edb3708c8c5 | 3997 | tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[5]; // board support |
whismanoid | 0:3edb3708c8c5 | 3998 | tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support |
whismanoid | 0:3edb3708c8c5 | 3999 | tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support |
whismanoid | 0:3edb3708c8c5 | 4000 | tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[0]; // board support |
whismanoid | 0:3edb3708c8c5 | 4001 | tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[1]; // board support |
whismanoid | 0:3edb3708c8c5 | 4002 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 4003 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 4004 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 4005 | // MaximTinyTester(Stream& AssociatedSerialPort, const char *Name); |
whismanoid | 0:3edb3708c8c5 | 4006 | MaximTinyTester tinyTester(cmdLine, analogIn0, analogIn1, analogIn2, analogIn3, analogIn4, analogIn5); |
whismanoid | 0:3edb3708c8c5 | 4007 | tinyTester.analogInPin_fullScaleVoltage[0] = analogInPin_fullScaleVoltage[0]; // board support |
whismanoid | 0:3edb3708c8c5 | 4008 | tinyTester.analogInPin_fullScaleVoltage[1] = analogInPin_fullScaleVoltage[1]; // board support |
whismanoid | 0:3edb3708c8c5 | 4009 | tinyTester.analogInPin_fullScaleVoltage[2] = analogInPin_fullScaleVoltage[2]; // board support |
whismanoid | 0:3edb3708c8c5 | 4010 | tinyTester.analogInPin_fullScaleVoltage[3] = analogInPin_fullScaleVoltage[3]; // board support |
whismanoid | 0:3edb3708c8c5 | 4011 | tinyTester.analogInPin_fullScaleVoltage[4] = analogInPin_fullScaleVoltage[4]; // board support |
whismanoid | 0:3edb3708c8c5 | 4012 | tinyTester.analogInPin_fullScaleVoltage[5] = analogInPin_fullScaleVoltage[5]; // board support |
whismanoid | 0:3edb3708c8c5 | 4013 | #endif |
whismanoid | 0:3edb3708c8c5 | 4014 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4015 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 4016 | g_SelfTest_nPass = 0; |
whismanoid | 0:3edb3708c8c5 | 4017 | g_SelfTest_nFail = 0; |
whismanoid | 0:3edb3708c8c5 | 4018 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4019 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 4020 | //~ rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 4021 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 4022 | //~ rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 4023 | //~ rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 4024 | //~ rgb_led.cyan(); // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 4025 | //~ rgb_led.magenta(); // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 4026 | rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 4027 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 4028 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 4029 | #if APPLICATION_MAX5715 // SelfTest |
whismanoid | 0:3edb3708c8c5 | 4030 | // |
whismanoid | 0:3edb3708c8c5 | 4031 | // TODO: tinyTester.FunctionCall_Expect replaces SelfTest_DACCodeOfVoltage_Expect |
whismanoid | 0:3edb3708c8c5 | 4032 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4033 | // |
whismanoid | 1:40369075c365 | 4034 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 1:40369075c365 | 4035 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 0:3edb3708c8c5 | 4036 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4037 | // uint8_t MAX5715::Init(void) |
whismanoid | 2:b3a8a0ca0a94 | 4038 | //uint8_t (*fn_MAX5715_Init)() = [](){ return g_MAX5715_device.Init(); }; |
whismanoid | 0:3edb3708c8c5 | 4039 | // |
whismanoid | 0:3edb3708c8c5 | 4040 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4041 | // uint16_t MAX5715::DACCodeOfVoltage(double voltageV) |
whismanoid | 2:b3a8a0ca0a94 | 4042 | //uint16_t (*fn_MAX5715_DACCodeOfVoltage)(double) = [](double voltageV){ return g_MAX5715_device.DACCodeOfVoltage(voltageV); }; |
whismanoid | 0:3edb3708c8c5 | 4043 | // |
whismanoid | 0:3edb3708c8c5 | 4044 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4045 | // double MAX5715::VoltageOfCode(uint16_t value_u14) |
whismanoid | 2:b3a8a0ca0a94 | 4046 | //double (*fn_MAX5715_VoltageOfCode)(uint16_t) = [](uint16_t value_u14){ return g_MAX5715_device.VoltageOfCode(value_u14); }; |
whismanoid | 0:3edb3708c8c5 | 4047 | // |
whismanoid | 0:3edb3708c8c5 | 4048 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4049 | // void MAX5715::CODEnLOADn(uint8_t channel_0_3, uint16_t dacCodeLsbs) |
whismanoid | 2:b3a8a0ca0a94 | 4050 | //void (*fn_MAX5715_CODEnLOADn)(uint8_t channel_0_3, uint16_t dacCodeLsbs) = [](uint8_t channel_0_3, uint16_t dacCodeLsbs){ return g_MAX5715_device.CODEnLOADn(channel_0_3, dacCodeLsbs); }; |
whismanoid | 0:3edb3708c8c5 | 4051 | // |
whismanoid | 0:3edb3708c8c5 | 4052 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4053 | // |
whismanoid | 0:3edb3708c8c5 | 4054 | // VERIFY: self-test uint16_t MAX5715_DACCodeOfVoltage(double voltageV) |
whismanoid | 0:3edb3708c8c5 | 4055 | // @pre g_MAX5715_device.VRef = Voltage of REF input, in Volts |
whismanoid | 0:3edb3708c8c5 | 4056 | // @param[in] voltage = physical voltage in Volts |
whismanoid | 0:3edb3708c8c5 | 4057 | // @returns raw 12-bit MAX5715 code (right justified). |
whismanoid | 0:3edb3708c8c5 | 4058 | // |
whismanoid | 0:3edb3708c8c5 | 4059 | // VERIFY: self-test double MAX5715_VoltageOfCode(uint16_t value_u12) |
whismanoid | 0:3edb3708c8c5 | 4060 | // @pre g_MAX5715_device.VRef = Voltage of REF input, in Volts |
whismanoid | 0:3edb3708c8c5 | 4061 | // @param[in] value_u12: raw 12-bit MAX5715 code (right justified). |
whismanoid | 0:3edb3708c8c5 | 4062 | // @Returns physical voltage corresponding to MAX5715 code. |
whismanoid | 0:3edb3708c8c5 | 4063 | // |
whismanoid | 0:3edb3708c8c5 | 4064 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4065 | // |
whismanoid | 0:3edb3708c8c5 | 4066 | // |
whismanoid | 0:3edb3708c8c5 | 4067 | // |
whismanoid | 0:3edb3708c8c5 | 4068 | // |
whismanoid | 0:3edb3708c8c5 | 4069 | //------------------------------------------------------------ |
whismanoid | 0:3edb3708c8c5 | 4070 | g_MAX5715_device.VRef = 4.096; // MAX5715 12-bit LSB = 0.0010V |
whismanoid | 0:3edb3708c8c5 | 4071 | SelfTest_print_Vref(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4072 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4073 | // |
whismanoid | 0:3edb3708c8c5 | 4074 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4075 | // tinyTester.FunctionCall_Expect replaces SelfTest_DACCodeOfVoltage_Expect |
whismanoid | 0:3edb3708c8c5 | 4076 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 10.0, 0x0FFF); // overrange FS |
whismanoid | 0:3edb3708c8c5 | 4077 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0950, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4078 | // |
whismanoid | 0:3edb3708c8c5 | 4079 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0945, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4080 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0944, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4081 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0943, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4082 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0942, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4083 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0941, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4084 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0940, 0x0FFE); // search for code transition |
whismanoid | 0:3edb3708c8c5 | 4085 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0939, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4086 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0938, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4087 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0937, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4088 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0936, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4089 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0935, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4090 | // |
whismanoid | 0:3edb3708c8c5 | 4091 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 4.0930, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4092 | // |
whismanoid | 0:3edb3708c8c5 | 4093 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0480, 0x0800); |
whismanoid | 0:3edb3708c8c5 | 4094 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0470, 0x07FF); |
whismanoid | 0:3edb3708c8c5 | 4095 | // |
whismanoid | 0:3edb3708c8c5 | 4096 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.0000, 0x03E8); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4097 | // |
whismanoid | 0:3edb3708c8c5 | 4098 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0030, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4099 | // |
whismanoid | 0:3edb3708c8c5 | 4100 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0020, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4101 | // |
whismanoid | 0:3edb3708c8c5 | 4102 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0010, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4103 | // |
whismanoid | 0:3edb3708c8c5 | 4104 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4105 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -0.0001, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4106 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -0.0002, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4107 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -1.0, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4108 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4109 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 10.0, 0x0FFF); // overrange FS |
whismanoid | 0:3edb3708c8c5 | 4110 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0950, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4111 | // |
whismanoid | 0:3edb3708c8c5 | 4112 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0945, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4113 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0944, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4114 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0943, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4115 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0942, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4116 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0941, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4117 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0940, 0x0FFE); // search for code transition |
whismanoid | 0:3edb3708c8c5 | 4118 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0939, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4119 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0938, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4120 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0937, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4121 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0936, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4122 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0935, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4123 | // |
whismanoid | 0:3edb3708c8c5 | 4124 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 4.0930, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4125 | // |
whismanoid | 0:3edb3708c8c5 | 4126 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0480, 0x0800); |
whismanoid | 0:3edb3708c8c5 | 4127 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0470, 0x07FF); |
whismanoid | 0:3edb3708c8c5 | 4128 | // |
whismanoid | 0:3edb3708c8c5 | 4129 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.0000, 0x03E8); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4130 | // |
whismanoid | 0:3edb3708c8c5 | 4131 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0030, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4132 | // |
whismanoid | 0:3edb3708c8c5 | 4133 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0020, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4134 | // |
whismanoid | 0:3edb3708c8c5 | 4135 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0010, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4136 | // |
whismanoid | 0:3edb3708c8c5 | 4137 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4138 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -0.0001, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4139 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -0.0002, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4140 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -1.0, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4141 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4142 | // |
whismanoid | 0:3edb3708c8c5 | 4143 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4144 | // tinyTester.FunctionCall_Expect replaces SelfTest_VoltageOfCode_Expect |
whismanoid | 0:3edb3708c8c5 | 4145 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFF, 4.0950); |
whismanoid | 0:3edb3708c8c5 | 4146 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFE, 4.0940); |
whismanoid | 0:3edb3708c8c5 | 4147 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0800, 2.0480); |
whismanoid | 0:3edb3708c8c5 | 4148 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x07FF, 2.0470); |
whismanoid | 0:3edb3708c8c5 | 4149 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x03E8, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4150 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0001, 0.0010); |
whismanoid | 0:3edb3708c8c5 | 4151 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0000, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 4152 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4153 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFF, 4.0950); |
whismanoid | 0:3edb3708c8c5 | 4154 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFE, 4.0940); |
whismanoid | 0:3edb3708c8c5 | 4155 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0800, 2.0480); |
whismanoid | 0:3edb3708c8c5 | 4156 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x07FF, 2.0470); |
whismanoid | 0:3edb3708c8c5 | 4157 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x03E8, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4158 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0001, 0.0010); |
whismanoid | 0:3edb3708c8c5 | 4159 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0000, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 4160 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4161 | // |
whismanoid | 0:3edb3708c8c5 | 4162 | //------------------------------------------------------------ |
whismanoid | 0:3edb3708c8c5 | 4163 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4164 | g_MAX5715_device.VRef = 2.048; // 12-bit LSB = 0.0005V |
whismanoid | 0:3edb3708c8c5 | 4165 | SelfTest_print_Vref(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4166 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4167 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4168 | // tinyTester.FunctionCall_Expect replaces SelfTest_DACCodeOfVoltage_Expect |
whismanoid | 0:3edb3708c8c5 | 4169 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 10.0, 0x0FFF); // overrange FS |
whismanoid | 0:3edb3708c8c5 | 4170 | // |
whismanoid | 0:3edb3708c8c5 | 4171 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0480, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4172 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0479, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4173 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0478, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4174 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0477, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4175 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0476, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4176 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0475, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4177 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0474, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4178 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0473, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4179 | // |
whismanoid | 0:3edb3708c8c5 | 4180 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0472, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4181 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0471, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4182 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0470, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4183 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0469, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4184 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0468, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4185 | // |
whismanoid | 0:3edb3708c8c5 | 4186 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0467, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4187 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0466, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4188 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0465, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4189 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0464, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4190 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.0463, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4191 | // |
whismanoid | 0:3edb3708c8c5 | 4192 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.0240, 0x0800); |
whismanoid | 0:3edb3708c8c5 | 4193 | // |
whismanoid | 0:3edb3708c8c5 | 4194 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.0235, 0x07FF); |
whismanoid | 0:3edb3708c8c5 | 4195 | // |
whismanoid | 0:3edb3708c8c5 | 4196 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.0000, 0x07D0); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4197 | // |
whismanoid | 0:3edb3708c8c5 | 4198 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0017, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4199 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0016, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4200 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0015, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4201 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0014, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4202 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0013, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4203 | // |
whismanoid | 0:3edb3708c8c5 | 4204 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0012, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4205 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0011, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4206 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0010, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4207 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0009, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4208 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0008, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4209 | // |
whismanoid | 0:3edb3708c8c5 | 4210 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0007, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4211 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0006, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4212 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0005, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4213 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0004, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4214 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0003, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4215 | // |
whismanoid | 0:3edb3708c8c5 | 4216 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0002, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4217 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0001, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4218 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4219 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -0.0001, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4220 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -0.0002, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4221 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -1.0, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4222 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4223 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 10.0, 0x0FFF); // overrange FS |
whismanoid | 0:3edb3708c8c5 | 4224 | // |
whismanoid | 0:3edb3708c8c5 | 4225 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0480, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4226 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0479, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4227 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0478, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4228 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0477, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4229 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0476, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4230 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0475, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4231 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0474, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4232 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0473, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4233 | // |
whismanoid | 0:3edb3708c8c5 | 4234 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0472, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4235 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0471, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4236 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0470, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4237 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0469, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4238 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0468, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4239 | // |
whismanoid | 0:3edb3708c8c5 | 4240 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0467, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4241 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0466, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4242 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0465, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4243 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0464, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4244 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.0463, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4245 | // |
whismanoid | 0:3edb3708c8c5 | 4246 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.0240, 0x0800); |
whismanoid | 0:3edb3708c8c5 | 4247 | // |
whismanoid | 0:3edb3708c8c5 | 4248 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.0235, 0x07FF); |
whismanoid | 0:3edb3708c8c5 | 4249 | // |
whismanoid | 0:3edb3708c8c5 | 4250 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.0000, 0x07D0); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4251 | // |
whismanoid | 0:3edb3708c8c5 | 4252 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0017, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4253 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0016, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4254 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0015, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4255 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0014, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4256 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0013, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4257 | // |
whismanoid | 0:3edb3708c8c5 | 4258 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0012, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4259 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0011, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4260 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0010, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4261 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0009, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4262 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0008, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4263 | // |
whismanoid | 0:3edb3708c8c5 | 4264 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0007, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4265 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0006, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4266 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0005, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4267 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0004, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4268 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0003, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4269 | // |
whismanoid | 0:3edb3708c8c5 | 4270 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0002, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4271 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0001, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4272 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4273 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -0.0001, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4274 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -0.0002, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4275 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -1.0, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4276 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4277 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4278 | // tinyTester.FunctionCall_Expect replaces SelfTest_VoltageOfCode_Expect |
whismanoid | 0:3edb3708c8c5 | 4279 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFF, 2.0475); |
whismanoid | 0:3edb3708c8c5 | 4280 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFE, 2.0470); |
whismanoid | 0:3edb3708c8c5 | 4281 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFD, 2.0465); |
whismanoid | 0:3edb3708c8c5 | 4282 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0800, 1.0240); |
whismanoid | 0:3edb3708c8c5 | 4283 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x07FF, 1.0235); |
whismanoid | 0:3edb3708c8c5 | 4284 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x07D0, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4285 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0002, 0.0010); |
whismanoid | 0:3edb3708c8c5 | 4286 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0001, 0.0005); |
whismanoid | 0:3edb3708c8c5 | 4287 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0000, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 4288 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4289 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFF, 2.0475); |
whismanoid | 0:3edb3708c8c5 | 4290 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFE, 2.0470); |
whismanoid | 0:3edb3708c8c5 | 4291 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFD, 2.0465); |
whismanoid | 0:3edb3708c8c5 | 4292 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0800, 1.0240); |
whismanoid | 0:3edb3708c8c5 | 4293 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x07FF, 1.0235); |
whismanoid | 0:3edb3708c8c5 | 4294 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x07D0, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4295 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0002, 0.0010); |
whismanoid | 0:3edb3708c8c5 | 4296 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0001, 0.0005); |
whismanoid | 0:3edb3708c8c5 | 4297 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0000, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 4298 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4299 | // |
whismanoid | 0:3edb3708c8c5 | 4300 | // |
whismanoid | 0:3edb3708c8c5 | 4301 | //------------------------------------------------------------ |
whismanoid | 0:3edb3708c8c5 | 4302 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4303 | g_MAX5715_device.VRef = 2.500; // 12-bit LSB = 0.0006105006105006105V |
whismanoid | 0:3edb3708c8c5 | 4304 | SelfTest_print_Vref(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4305 | //~ cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4306 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4307 | // tinyTester.FunctionCall_Expect replaces SelfTest_DACCodeOfVoltage_Expect |
whismanoid | 0:3edb3708c8c5 | 4308 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 10.0, 0x0FFF); // overrange FS |
whismanoid | 0:3edb3708c8c5 | 4309 | // |
whismanoid | 0:3edb3708c8c5 | 4310 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.5000, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4311 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4999, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4312 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4998, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4313 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4997, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4314 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4996, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4315 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4995, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4316 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4994, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4317 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4993, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4318 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4992, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4319 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4991, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4320 | // |
whismanoid | 0:3edb3708c8c5 | 4321 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4990, 0x0FFE); // search for code transitions |
whismanoid | 0:3edb3708c8c5 | 4322 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4989, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4323 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4988, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4324 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4987, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4325 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4986, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4326 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4985, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4327 | // |
whismanoid | 0:3edb3708c8c5 | 4328 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4984, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4329 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4983, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4330 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4982, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4331 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4981, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4332 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4980, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4333 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4979, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4334 | // |
whismanoid | 0:3edb3708c8c5 | 4335 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4978, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4336 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4977, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4337 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4976, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4338 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4975, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4339 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4974, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4340 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4973, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4341 | // |
whismanoid | 0:3edb3708c8c5 | 4342 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4972, 0x0FFB); |
whismanoid | 0:3edb3708c8c5 | 4343 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4971, 0x0FFB); |
whismanoid | 0:3edb3708c8c5 | 4344 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 2.4970, 0x0FFB); |
whismanoid | 0:3edb3708c8c5 | 4345 | // |
whismanoid | 0:3edb3708c8c5 | 4346 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.2500, 0x0800); |
whismanoid | 0:3edb3708c8c5 | 4347 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.2494, 0x07FF); |
whismanoid | 0:3edb3708c8c5 | 4348 | // |
whismanoid | 0:3edb3708c8c5 | 4349 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 1.0000, 0x0666); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4350 | // |
whismanoid | 0:3edb3708c8c5 | 4351 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0019, 0x0003); // search for code transitions |
whismanoid | 0:3edb3708c8c5 | 4352 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0018, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4353 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0017, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4354 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0016, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4355 | // |
whismanoid | 0:3edb3708c8c5 | 4356 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0015, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4357 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0014, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4358 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0013, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4359 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0012, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4360 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0011, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4361 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0010, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4362 | // |
whismanoid | 0:3edb3708c8c5 | 4363 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0009, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4364 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0008, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4365 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0007, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4366 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0006, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4367 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0005, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4368 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0004, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4369 | // |
whismanoid | 0:3edb3708c8c5 | 4370 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0003, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4371 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0002, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4372 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0001, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4373 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, 0.0000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4374 | // |
whismanoid | 0:3edb3708c8c5 | 4375 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -0.0001, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4376 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -0.0002, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4377 | tinyTester.FunctionCall_Expect("MAX5715.DACCodeOfVoltage", fn_MAX5715_DACCodeOfVoltage, -1.0, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4378 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4379 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 10.0, 0x0FFF); // overrange FS |
whismanoid | 0:3edb3708c8c5 | 4380 | // |
whismanoid | 0:3edb3708c8c5 | 4381 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.5000, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4382 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4999, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4383 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4998, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4384 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4997, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4385 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4996, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4386 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4995, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4387 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4994, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4388 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4993, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4389 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4992, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4390 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4991, 0x0FFF); |
whismanoid | 0:3edb3708c8c5 | 4391 | // |
whismanoid | 0:3edb3708c8c5 | 4392 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4990, 0x0FFE); // search for code transitions |
whismanoid | 0:3edb3708c8c5 | 4393 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4989, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4394 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4988, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4395 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4987, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4396 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4986, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4397 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4985, 0x0FFE); |
whismanoid | 0:3edb3708c8c5 | 4398 | // |
whismanoid | 0:3edb3708c8c5 | 4399 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4984, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4400 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4983, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4401 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4982, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4402 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4981, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4403 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4980, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4404 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4979, 0x0FFD); |
whismanoid | 0:3edb3708c8c5 | 4405 | // |
whismanoid | 0:3edb3708c8c5 | 4406 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4978, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4407 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4977, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4408 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4976, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4409 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4975, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4410 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4974, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4411 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4973, 0x0FFC); |
whismanoid | 0:3edb3708c8c5 | 4412 | // |
whismanoid | 0:3edb3708c8c5 | 4413 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4972, 0x0FFB); |
whismanoid | 0:3edb3708c8c5 | 4414 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4971, 0x0FFB); |
whismanoid | 0:3edb3708c8c5 | 4415 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4970, 0x0FFB); |
whismanoid | 0:3edb3708c8c5 | 4416 | // |
whismanoid | 0:3edb3708c8c5 | 4417 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.2500, 0x0800); |
whismanoid | 0:3edb3708c8c5 | 4418 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.2494, 0x07FF); |
whismanoid | 0:3edb3708c8c5 | 4419 | // |
whismanoid | 0:3edb3708c8c5 | 4420 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.0000, 0x0666); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4421 | // |
whismanoid | 0:3edb3708c8c5 | 4422 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0019, 0x0003); // search for code transitions |
whismanoid | 0:3edb3708c8c5 | 4423 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0018, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4424 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0017, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4425 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0016, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4426 | // |
whismanoid | 0:3edb3708c8c5 | 4427 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0015, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4428 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0014, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4429 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0013, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4430 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0012, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4431 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0011, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4432 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0010, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4433 | // |
whismanoid | 0:3edb3708c8c5 | 4434 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0009, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4435 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0008, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4436 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0007, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4437 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0006, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4438 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0005, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4439 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0004, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4440 | // |
whismanoid | 0:3edb3708c8c5 | 4441 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0003, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4442 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0002, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4443 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0001, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4444 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.0000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4445 | // |
whismanoid | 0:3edb3708c8c5 | 4446 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -0.0001, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4447 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -0.0002, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4448 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, -1.0, 0x0000); // overrange ZS |
whismanoid | 0:3edb3708c8c5 | 4449 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4450 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4451 | // tinyTester.FunctionCall_Expect replaces SelfTest_VoltageOfCode_Expect |
whismanoid | 0:3edb3708c8c5 | 4452 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFF, 2.5000); |
whismanoid | 0:3edb3708c8c5 | 4453 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFE, 2.4988); |
whismanoid | 0:3edb3708c8c5 | 4454 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0FFD, 2.4976); |
whismanoid | 0:3edb3708c8c5 | 4455 | // |
whismanoid | 0:3edb3708c8c5 | 4456 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0800, 1.2500); |
whismanoid | 0:3edb3708c8c5 | 4457 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x07FF, 1.2494); |
whismanoid | 0:3edb3708c8c5 | 4458 | // |
whismanoid | 0:3edb3708c8c5 | 4459 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0667, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4460 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0666, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4461 | // |
whismanoid | 0:3edb3708c8c5 | 4462 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0002, 0.0012); |
whismanoid | 0:3edb3708c8c5 | 4463 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0001, 0.0006); |
whismanoid | 0:3edb3708c8c5 | 4464 | tinyTester.FunctionCall_Expect("MAX5715.VoltageOfCode", fn_MAX5715_VoltageOfCode, 0x0000, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 4465 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4466 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFF, 2.5000); |
whismanoid | 0:3edb3708c8c5 | 4467 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFE, 2.4988); |
whismanoid | 0:3edb3708c8c5 | 4468 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0FFD, 2.4976); |
whismanoid | 0:3edb3708c8c5 | 4469 | // |
whismanoid | 0:3edb3708c8c5 | 4470 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0800, 1.2500); |
whismanoid | 0:3edb3708c8c5 | 4471 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x07FF, 1.2494); |
whismanoid | 0:3edb3708c8c5 | 4472 | // |
whismanoid | 0:3edb3708c8c5 | 4473 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0667, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4474 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0666, 1.0000); // 1.0 volt |
whismanoid | 0:3edb3708c8c5 | 4475 | // |
whismanoid | 0:3edb3708c8c5 | 4476 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0002, 0.0012); |
whismanoid | 0:3edb3708c8c5 | 4477 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0001, 0.0006); |
whismanoid | 0:3edb3708c8c5 | 4478 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0000, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 4479 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4480 | // |
whismanoid | 0:3edb3708c8c5 | 4481 | // |
whismanoid | 0:3edb3708c8c5 | 4482 | // Device Testing: DAC commands, verify using on-board ADC inputs |
whismanoid | 0:3edb3708c8c5 | 4483 | // |
whismanoid | 0:3edb3708c8c5 | 4484 | cmdLine.serial().printf("\r\n MAX5715.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4485 | g_MAX5715_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4486 | // |
whismanoid | 0:3edb3708c8c5 | 4487 | uint16_t ch = 0; |
whismanoid | 0:3edb3708c8c5 | 4488 | uint16_t code = 0xfff; |
whismanoid | 0:3edb3708c8c5 | 4489 | double voltageV = 0.5; |
whismanoid | 0:3edb3708c8c5 | 4490 | // |
whismanoid | 0:3edb3708c8c5 | 4491 | // full-scale output on ch0, test MAX5715 internal REF options |
whismanoid | 0:3edb3708c8c5 | 4492 | ch = 0; |
whismanoid | 0:3edb3708c8c5 | 4493 | cmdLine.serial().printf("\r\n MAX5715.CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 4494 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 4495 | // |
whismanoid | 0:3edb3708c8c5 | 4496 | cmdLine.serial().printf("\r\n MAX5715.REF(MAX5715::REF_AlwaysOn_2V048)"); |
whismanoid | 0:3edb3708c8c5 | 4497 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_2V048); |
whismanoid | 0:3edb3708c8c5 | 4498 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4499 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4500 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4501 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4502 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4503 | tinyTester.AnalogIn0_Read_Expect_voltageV(2.048); |
whismanoid | 0:3edb3708c8c5 | 4504 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4505 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 4506 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, 2.048); |
whismanoid | 0:3edb3708c8c5 | 4507 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4508 | // |
whismanoid | 0:3edb3708c8c5 | 4509 | cmdLine.serial().printf("\r\n MAX5715.REF(MAX5715::REF_AlwaysOn_4V096)"); |
whismanoid | 0:3edb3708c8c5 | 4510 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_4V096); |
whismanoid | 0:3edb3708c8c5 | 4511 | // MAX32625MBED 4.096V may be as low as 3.3V supply |
whismanoid | 0:3edb3708c8c5 | 4512 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4513 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4514 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4515 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4516 | tinyTester.err_threshold = 0.50; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4517 | tinyTester.AnalogIn0_Read_Expect_voltageV(3.750); // accept 3.25V to 4.25V |
whismanoid | 0:3edb3708c8c5 | 4518 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4519 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 4520 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, 3.750, 0.50); // accept 3.25V to 4.25V |
whismanoid | 0:3edb3708c8c5 | 4521 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4522 | // |
whismanoid | 0:3edb3708c8c5 | 4523 | cmdLine.serial().printf("\r\n MAX5715.REF(MAX5715::REF_AlwaysOn_2V500)"); |
whismanoid | 0:3edb3708c8c5 | 4524 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_2V500); |
whismanoid | 0:3edb3708c8c5 | 4525 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4526 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4527 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4528 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4529 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4530 | tinyTester.AnalogIn0_Read_Expect_voltageV(2.500); |
whismanoid | 0:3edb3708c8c5 | 4531 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4532 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 4533 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, 2.500); |
whismanoid | 0:3edb3708c8c5 | 4534 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4535 | // |
whismanoid | 0:3edb3708c8c5 | 4536 | // test the individual channel outputs |
whismanoid | 0:3edb3708c8c5 | 4537 | ch = 0; |
whismanoid | 0:3edb3708c8c5 | 4538 | voltageV = 0.5; |
whismanoid | 0:3edb3708c8c5 | 4539 | code = g_MAX5715_device.DACCodeOfVoltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4540 | cmdLine.serial().printf("\r\n MAX5715.CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 4541 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 4542 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4543 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4544 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4545 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4546 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4547 | tinyTester.AnalogIn0_Read_Expect_voltageV(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4548 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4549 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, ch, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4550 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4551 | // |
whismanoid | 0:3edb3708c8c5 | 4552 | ch = 1; |
whismanoid | 0:3edb3708c8c5 | 4553 | voltageV = 0.2; |
whismanoid | 0:3edb3708c8c5 | 4554 | code = g_MAX5715_device.DACCodeOfVoltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4555 | cmdLine.serial().printf("\r\n MAX5715.CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 4556 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 4557 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4558 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4559 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4560 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4561 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4562 | tinyTester.AnalogIn1_Read_Expect_voltageV(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4563 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4564 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, ch, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4565 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4566 | // |
whismanoid | 0:3edb3708c8c5 | 4567 | ch = 2; |
whismanoid | 0:3edb3708c8c5 | 4568 | voltageV = 0.4; |
whismanoid | 0:3edb3708c8c5 | 4569 | code = g_MAX5715_device.DACCodeOfVoltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4570 | cmdLine.serial().printf("\r\n MAX5715.CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 4571 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 4572 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4573 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4574 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4575 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4576 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4577 | tinyTester.AnalogIn2_Read_Expect_voltageV(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4578 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4579 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, ch, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4580 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4581 | // |
whismanoid | 0:3edb3708c8c5 | 4582 | ch = 3; |
whismanoid | 0:3edb3708c8c5 | 4583 | voltageV = 0.25; |
whismanoid | 0:3edb3708c8c5 | 4584 | code = g_MAX5715_device.DACCodeOfVoltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4585 | cmdLine.serial().printf("\r\n MAX5715.CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 4586 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 4587 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4588 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4589 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 4590 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 4591 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 4592 | tinyTester.AnalogIn3_Read_Expect_voltageV(voltageV); |
whismanoid | 0:3edb3708c8c5 | 4593 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4594 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, ch, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4595 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4596 | // |
whismanoid | 0:3edb3708c8c5 | 4597 | // test that the channels are independent |
whismanoid | 0:3edb3708c8c5 | 4598 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4599 | tinyTester.AnalogIn0_Read_Expect_voltageV(g_MAX5715_device.VoltageOfCode(g_MAX5715_device.CODE[0])); |
whismanoid | 0:3edb3708c8c5 | 4600 | tinyTester.AnalogIn1_Read_Expect_voltageV(g_MAX5715_device.VoltageOfCode(g_MAX5715_device.CODE[1])); |
whismanoid | 0:3edb3708c8c5 | 4601 | tinyTester.AnalogIn2_Read_Expect_voltageV(g_MAX5715_device.VoltageOfCode(g_MAX5715_device.CODE[2])); |
whismanoid | 0:3edb3708c8c5 | 4602 | tinyTester.AnalogIn3_Read_Expect_voltageV(g_MAX5715_device.VoltageOfCode(g_MAX5715_device.CODE[3])); |
whismanoid | 0:3edb3708c8c5 | 4603 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4604 | for (ch = 0; ch < 4; ch++) { |
whismanoid | 0:3edb3708c8c5 | 4605 | voltageV = g_MAX5715_device.VoltageOfCode(g_MAX5715_device.CODE[ch]); |
whismanoid | 0:3edb3708c8c5 | 4606 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, ch, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4607 | } |
whismanoid | 0:3edb3708c8c5 | 4608 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4609 | // |
whismanoid | 0:3edb3708c8c5 | 4610 | #elif APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 4611 | // |
whismanoid | 0:3edb3708c8c5 | 4612 | // MAX11131BOB self-test functions |
whismanoid | 0:3edb3708c8c5 | 4613 | //~ SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4614 | //~ cmdLine.serial().printf("test program not implemented yet"); |
whismanoid | 0:3edb3708c8c5 | 4615 | int16_t value_u12; |
whismanoid | 0:3edb3708c8c5 | 4616 | int channelId; |
whismanoid | 0:3edb3708c8c5 | 4617 | double voltageV = 0.5; |
whismanoid | 0:3edb3708c8c5 | 4618 | // |
whismanoid | 0:3edb3708c8c5 | 4619 | //cmdLine.serial().printf("\r\n 0.0: MAX11131.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4620 | //g_MAX11131_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4621 | // |
whismanoid | 0:3edb3708c8c5 | 4622 | // Device Testing: ADC commands, verify with on-board ADC and SPI framing |
whismanoid | 0:3edb3708c8c5 | 4623 | // |
whismanoid | 0:3edb3708c8c5 | 4624 | // MAX11131 SelfTest: MAX11131 SPI connections (Power Supply and GND, SCLK, MOSI, MISO, CS) |
whismanoid | 0:3edb3708c8c5 | 4625 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4626 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 4627 | "\r\n 1.0: Test SCAN_0100_StandardExt -- verify SPI (VDD, GND, SCLK, MOSI, MISO, CS)"); |
whismanoid | 0:3edb3708c8c5 | 4628 | cmdLine.serial().printf("\r\n MAX11131.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4629 | g_MAX11131_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4630 | // Send MOSI data Expect MISO data Description |
whismanoid | 0:3edb3708c8c5 | 4631 | // 1000_0000_0000_0000 xxxx_xxxx_xxxx_xxxx ADC_CONFIGURATION REFSEL=0 SPM[1:0]=0 ECHO=0 |
whismanoid | 0:3edb3708c8c5 | 4632 | // 0010_0111_1010_0100 xxxx_xxxx_xxxx_xxxx ADC_MODE_CONTROL SCAN_0100_StandardExt CHSEL=15 RESET=1 CHANID=1 |
whismanoid | 0:3edb3708c8c5 | 4633 | // 0000_0000_0000_0000 0000_xxxx_xxxx_xxxx Channel ID tag = AIN0 expect high nybble 0 |
whismanoid | 0:3edb3708c8c5 | 4634 | // 0000_0000_0000_0000 0001_xxxx_xxxx_xxxx Channel ID tag = AIN1 expect high nybble 1 |
whismanoid | 0:3edb3708c8c5 | 4635 | // 0000_0000_0000_0000 0010_xxxx_xxxx_xxxx Channel ID tag = AIN2 expect high nybble 2 |
whismanoid | 0:3edb3708c8c5 | 4636 | // 0000_0000_0000_0000 0011_xxxx_xxxx_xxxx Channel ID tag = AIN3 expect high nybble 3 |
whismanoid | 0:3edb3708c8c5 | 4637 | // |
whismanoid | 0:3edb3708c8c5 | 4638 | cmdLine.serial().printf("\r\n MOSI <-- 1000_0000_0000_0000 ADC_CONFIGURATION REFSEL=0 SPM[1:0]=0 ECHO=0"); |
whismanoid | 0:3edb3708c8c5 | 4639 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4640 | g_MAX11131_device.SPIwrite16bits(0x8000); |
whismanoid | 0:3edb3708c8c5 | 4641 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4642 | // |
whismanoid | 0:3edb3708c8c5 | 4643 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 4644 | "\r\n MOSI <-- 0010_0111_1010_0100 ADC_MODE_CONTROL SCAN_0100_StandardExt CHSEL=15 RESET=1 CHANID=1"); |
whismanoid | 0:3edb3708c8c5 | 4645 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4646 | g_MAX11131_device.SPIwrite16bits(0x27a4); |
whismanoid | 0:3edb3708c8c5 | 4647 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4648 | // |
whismanoid | 0:3edb3708c8c5 | 4649 | for (int channelIndex = 0; channelIndex < 16; channelIndex++) { |
whismanoid | 0:3edb3708c8c5 | 4650 | //~ cmdLine.serial().printf("\r\n MISO --> expect 0000_xxxx_xxxx_xxxx"); |
whismanoid | 0:3edb3708c8c5 | 4651 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4652 | g_MAX11131_device.RAW_misoData16[channelIndex] = g_MAX11131_device.SPIread16bits(); |
whismanoid | 0:3edb3708c8c5 | 4653 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4654 | int expect_channelId = channelIndex; |
whismanoid | 0:3edb3708c8c5 | 4655 | int actual_channelId = (g_MAX11131_device.RAW_misoData16[channelIndex] >> 12) & 0x000F; |
whismanoid | 0:3edb3708c8c5 | 4656 | if (actual_channelId != expect_channelId) |
whismanoid | 0:3edb3708c8c5 | 4657 | { |
whismanoid | 0:3edb3708c8c5 | 4658 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4659 | cmdLine.serial().printf("MISO --> 0x%4.4x", (g_MAX11131_device.RAW_misoData16[channelIndex] & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 4660 | cmdLine.serial().printf(" expect 0x%1.1xxxx (channel ID %d)", expect_channelId, expect_channelId); |
whismanoid | 0:3edb3708c8c5 | 4661 | cmdLine.serial().printf(" but got 0x%1.1xxxx", actual_channelId); |
whismanoid | 0:3edb3708c8c5 | 4662 | } |
whismanoid | 0:3edb3708c8c5 | 4663 | else |
whismanoid | 0:3edb3708c8c5 | 4664 | { |
whismanoid | 0:3edb3708c8c5 | 4665 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4666 | cmdLine.serial().printf("MISO --> 0x%4.4x", (g_MAX11131_device.RAW_misoData16[channelIndex] & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 4667 | cmdLine.serial().printf(" expect 0x%1.1xxxx (channel ID %d)", expect_channelId, expect_channelId); |
whismanoid | 0:3edb3708c8c5 | 4668 | } |
whismanoid | 0:3edb3708c8c5 | 4669 | } |
whismanoid | 0:3edb3708c8c5 | 4670 | // |
whismanoid | 0:3edb3708c8c5 | 4671 | // TODO1: MAX11131 SelfTest: MAX11131 Supports Internal Clock Modes (CNVST, EOC) |
whismanoid | 0:3edb3708c8c5 | 4672 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4673 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 4674 | "\r\n 1.1: Test SCAN_0011_StandardInt -- verify Internal Clock signals (CNVST, EOC)"); |
whismanoid | 0:3edb3708c8c5 | 4675 | cmdLine.serial().printf("\r\n MAX11131.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4676 | g_MAX11131_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4677 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4678 | g_MAX11131_device.RAW_misoData16[0] = g_MAX11131_device.SPIread16bits(); |
whismanoid | 0:3edb3708c8c5 | 4679 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4680 | SelfTest_MAX11131_EOC_expect(cmdLine, 1, "initial value before sending commands"); // TODO1: MAX11131 SelfTest false failure here? |
whismanoid | 0:3edb3708c8c5 | 4681 | // Send MOSI data Expect MISO data Description |
whismanoid | 0:3edb3708c8c5 | 4682 | // 1000_0000_0000_0000 xxxx_xxxx_xxxx_xxxx ADC_CONFIGURATION REFSEL=0 SPM[1:0]=0 ECHO=0 No Averaging |
whismanoid | 0:3edb3708c8c5 | 4683 | // 0001_1001_1010_0000 xxxx_xxxx_xxxx_xxxx ADC_MODE_CONTROL SCAN_0011_StandardInt CHSEL=3 RESET=1 SWCNV=0 |
whismanoid | 0:3edb3708c8c5 | 4684 | // 0000_0000_0000_0000 0000_xxxx_xxxx_xxxx Channel ID tag = AIN0 expect high nybble 0 |
whismanoid | 0:3edb3708c8c5 | 4685 | // 0000_0000_0000_0000 0001_xxxx_xxxx_xxxx Channel ID tag = AIN1 expect high nybble 1 |
whismanoid | 0:3edb3708c8c5 | 4686 | // 0000_0000_0000_0000 0010_xxxx_xxxx_xxxx Channel ID tag = AIN2 expect high nybble 2 |
whismanoid | 0:3edb3708c8c5 | 4687 | // 0000_0000_0000_0000 0011_xxxx_xxxx_xxxx Channel ID tag = AIN3 expect high nybble 3 |
whismanoid | 0:3edb3708c8c5 | 4688 | // |
whismanoid | 0:3edb3708c8c5 | 4689 | cmdLine.serial().printf("\r\n MOSI <-- 1000_0000_0000_0000 ADC_CONFIGURATION REFSEL=0 SPM[1:0]=0 ECHO=0"); |
whismanoid | 0:3edb3708c8c5 | 4690 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4691 | g_MAX11131_device.SPIwrite16bits(0x8000); |
whismanoid | 0:3edb3708c8c5 | 4692 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4693 | // |
whismanoid | 0:3edb3708c8c5 | 4694 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 4695 | "\r\n MOSI <-- 0001_1001_1010_0000 ADC_MODE_CONTROL SCAN_0011_StandardInt CHSEL=3 RESET=1 SWCNV=0"); |
whismanoid | 0:3edb3708c8c5 | 4696 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4697 | g_MAX11131_device.SPIwrite16bits(0x19a0); |
whismanoid | 0:3edb3708c8c5 | 4698 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4699 | // |
whismanoid | 0:3edb3708c8c5 | 4700 | for (int channelIndex = 0; channelIndex < 4; channelIndex++) { |
whismanoid | 0:3edb3708c8c5 | 4701 | //~ cmdLine.serial().printf("\r\n MISO --> expect 0000_xxxx_xxxx_xxxx"); |
whismanoid | 0:3edb3708c8c5 | 4702 | //~ wait_ms(200); // delay |
whismanoid | 0:3edb3708c8c5 | 4703 | g_MAX11131_device.CNVSToutputPulseLow(); |
whismanoid | 0:3edb3708c8c5 | 4704 | //~ g_MAX11131_device.CNVSToutputValue(0); |
whismanoid | 0:3edb3708c8c5 | 4705 | //~ wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 4706 | //~ g_MAX11131_device.CNVSToutputValue(1); |
whismanoid | 0:3edb3708c8c5 | 4707 | // g_MAX11131_device.EOCinputWaitUntilLow(); // infinite wait hazard, need to fail if timeout exceeded |
whismanoid | 0:3edb3708c8c5 | 4708 | SelfTest_MAX11131_EOC_expect(cmdLine, 0, "after CNVST pulse"); |
whismanoid | 0:3edb3708c8c5 | 4709 | g_MAX11131_device.SPIoutputCS(0); // drive CS low |
whismanoid | 0:3edb3708c8c5 | 4710 | g_MAX11131_device.RAW_misoData16[channelIndex] = g_MAX11131_device.SPIread16bits(); |
whismanoid | 0:3edb3708c8c5 | 4711 | g_MAX11131_device.SPIoutputCS(1); // drive CS high |
whismanoid | 0:3edb3708c8c5 | 4712 | SelfTest_MAX11131_EOC_expect(cmdLine, 1, "after SPI read"); |
whismanoid | 0:3edb3708c8c5 | 4713 | int expect_channelId = channelIndex; |
whismanoid | 0:3edb3708c8c5 | 4714 | int actual_channelId = (g_MAX11131_device.RAW_misoData16[channelIndex] >> 12) & 0x000F; |
whismanoid | 0:3edb3708c8c5 | 4715 | if (actual_channelId != expect_channelId) |
whismanoid | 0:3edb3708c8c5 | 4716 | { |
whismanoid | 0:3edb3708c8c5 | 4717 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4718 | cmdLine.serial().printf("MISO --> 0x%4.4x", (g_MAX11131_device.RAW_misoData16[channelIndex] & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 4719 | cmdLine.serial().printf(" expect 0x%1.1xxxx (channel ID %d)", expect_channelId, expect_channelId); |
whismanoid | 0:3edb3708c8c5 | 4720 | cmdLine.serial().printf(" but got 0x%1.1xxxx", actual_channelId); |
whismanoid | 0:3edb3708c8c5 | 4721 | } |
whismanoid | 0:3edb3708c8c5 | 4722 | else |
whismanoid | 0:3edb3708c8c5 | 4723 | { |
whismanoid | 0:3edb3708c8c5 | 4724 | SelfTest_PASS(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4725 | cmdLine.serial().printf("MISO --> 0x%4.4x", (g_MAX11131_device.RAW_misoData16[channelIndex] & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 4726 | cmdLine.serial().printf(" expect 0x%1.1xxxx (channel ID %d)", expect_channelId, expect_channelId); |
whismanoid | 0:3edb3708c8c5 | 4727 | } |
whismanoid | 0:3edb3708c8c5 | 4728 | } |
whismanoid | 0:3edb3708c8c5 | 4729 | // |
whismanoid | 0:3edb3708c8c5 | 4730 | // TODO1: MAX11131 SelfTest: Test Fixture: MAX541ACPA+ to MAX32625MBED.AIN0/AIN4 |
whismanoid | 0:3edb3708c8c5 | 4731 | // Test Fixture: MAX541 connected to spi2 |
whismanoid | 0:3edb3708c8c5 | 4732 | // SPI spi2_max541(SPI2_MOSI, SPI2_MISO, SPI2_SCK); // mosi, miso, sclk spi2 TARGET_MAX32635MBED: P2_5 P2_6 P2_4 Arduino 2x3-pin header; microSD |
whismanoid | 0:3edb3708c8c5 | 4733 | // DigitalOut spi2_max541_cs(SPI2_SS); // TARGET_MAX32635MBED: P2_7 Arduino 2x3-pin header |
whismanoid | 0:3edb3708c8c5 | 4734 | // Test Fixture: MAX541 spi2 init |
whismanoid | 0:3edb3708c8c5 | 4735 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4736 | cmdLine.serial().printf("\r\n 2.0: Test Fixture: MAX541 connected to spi2 (P2.4 P2.5 P2.7)?"); |
whismanoid | 0:3edb3708c8c5 | 4737 | bool SelfTest_has_max541 = false; |
whismanoid | 0:3edb3708c8c5 | 4738 | // Check actual MAX541 reference voltage |
whismanoid | 0:3edb3708c8c5 | 4739 | cmdLine.serial().printf("\r\n Test Fixture: MAX541 midscale voltage measure with MAX32625MBED AIN0/4"); |
whismanoid | 0:3edb3708c8c5 | 4740 | max541.Set_Code(0x8000); // we don't know the fullscale voltage yet, so set code to midscale |
whismanoid | 0:3edb3708c8c5 | 4741 | double max541_midscale_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 4742 | const int average_count = 100; |
whismanoid | 0:3edb3708c8c5 | 4743 | const double average_K = 0.25; |
whismanoid | 0:3edb3708c8c5 | 4744 | for (int count = 0; count < average_count; count++) { |
whismanoid | 0:3edb3708c8c5 | 4745 | double measurement_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 4746 | max541_midscale_V = ((1 - average_K) * max541_midscale_V) + (average_K * measurement_V); |
whismanoid | 0:3edb3708c8c5 | 4747 | } |
whismanoid | 0:3edb3708c8c5 | 4748 | if (max541_midscale_V > 1.0f) { |
whismanoid | 0:3edb3708c8c5 | 4749 | max541.VRef = 2.0 * max541_midscale_V; |
whismanoid | 0:3edb3708c8c5 | 4750 | cmdLine.serial().printf("\r\n Test Fixture: MAX541 midscale = %1.3fV, so fullscale = %1.3fV", |
whismanoid | 0:3edb3708c8c5 | 4751 | max541_midscale_V, max541.VRef); |
whismanoid | 0:3edb3708c8c5 | 4752 | // Detect whether MAX541 is really connected to MAX32625MBED.AIN0/AIN4 |
whismanoid | 0:3edb3708c8c5 | 4753 | voltageV = 1.0f; |
whismanoid | 0:3edb3708c8c5 | 4754 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4755 | } |
whismanoid | 0:3edb3708c8c5 | 4756 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4757 | voltageV = 0.0f; |
whismanoid | 0:3edb3708c8c5 | 4758 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4759 | } |
whismanoid | 0:3edb3708c8c5 | 4760 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4761 | voltageV = 3.0f; |
whismanoid | 0:3edb3708c8c5 | 4762 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4763 | } |
whismanoid | 0:3edb3708c8c5 | 4764 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4765 | voltageV = 1.65f; |
whismanoid | 0:3edb3708c8c5 | 4766 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4767 | } |
whismanoid | 0:3edb3708c8c5 | 4768 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4769 | voltageV = 2.0f; |
whismanoid | 0:3edb3708c8c5 | 4770 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4771 | } |
whismanoid | 0:3edb3708c8c5 | 4772 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4773 | voltageV = 0.25f; |
whismanoid | 0:3edb3708c8c5 | 4774 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4775 | } |
whismanoid | 0:3edb3708c8c5 | 4776 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4777 | voltageV = 0.5f; |
whismanoid | 0:3edb3708c8c5 | 4778 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4779 | } |
whismanoid | 0:3edb3708c8c5 | 4780 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4781 | voltageV = 1.0f; |
whismanoid | 0:3edb3708c8c5 | 4782 | SelfTest_has_max541 = SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4783 | } |
whismanoid | 0:3edb3708c8c5 | 4784 | if (SelfTest_has_max541 == false) { |
whismanoid | 0:3edb3708c8c5 | 4785 | // don't fail just because we're missing the test fixture... |
whismanoid | 0:3edb3708c8c5 | 4786 | cmdLine.serial().printf("\r\n Test Fixture: MAX541 not present"); |
whismanoid | 0:3edb3708c8c5 | 4787 | //~ g_SelfTest_nFail--; |
whismanoid | 0:3edb3708c8c5 | 4788 | } |
whismanoid | 0:3edb3708c8c5 | 4789 | // |
whismanoid | 0:3edb3708c8c5 | 4790 | // TODO1: MAX11131 SelfTest: if Test Fixture: drive MAX541, compare MAX32625MBED.AIN0/AIN4 and MAX11131 AIN0 |
whismanoid | 0:3edb3708c8c5 | 4791 | // indirectly verify the reference voltage by reading a known input voltage |
whismanoid | 0:3edb3708c8c5 | 4792 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4793 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4794 | cmdLine.serial().printf("\r\n 2.1: TODO1: Check MAX11131 reference voltage using SCAN_0001_Manual"); |
whismanoid | 0:3edb3708c8c5 | 4795 | voltageV = 1.0f; |
whismanoid | 0:3edb3708c8c5 | 4796 | SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4797 | cmdLine.serial().printf("\r\n MAX11131.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4798 | g_MAX11131_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4799 | // 1 ScanManual ch=0 pm=0 id=1 |
whismanoid | 0:3edb3708c8c5 | 4800 | g_MAX11131_device.channelNumber_0_15 = 0; |
whismanoid | 0:3edb3708c8c5 | 4801 | g_MAX11131_device.PowerManagement_0_2 = 0; |
whismanoid | 0:3edb3708c8c5 | 4802 | g_MAX11131_device.chan_id_0_1 = 1; |
whismanoid | 0:3edb3708c8c5 | 4803 | cmdLine.serial().printf("\r\n MAX11131.channelNumber_0_15=%d", g_MAX11131_device.channelNumber_0_15); |
whismanoid | 0:3edb3708c8c5 | 4804 | cmdLine.serial().printf("\r\n MAX11131.PowerManagement_0_2=%d", g_MAX11131_device.PowerManagement_0_2); |
whismanoid | 0:3edb3708c8c5 | 4805 | cmdLine.serial().printf("\r\n MAX11131.chan_id_0_1=%d", g_MAX11131_device.chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 4806 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanManual(); |
whismanoid | 0:3edb3708c8c5 | 4807 | cmdLine.serial().printf("\r\n MAX11131.ScanManual -- NumWords = %d", |
whismanoid | 0:3edb3708c8c5 | 4808 | g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4809 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanManual(); |
whismanoid | 0:3edb3708c8c5 | 4810 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 4811 | cmdLine.serial().printf("\r\n MAX11131.ReadAINcode"); |
whismanoid | 0:3edb3708c8c5 | 4812 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4813 | // |
whismanoid | 0:3edb3708c8c5 | 4814 | // 2.1: TODO1: Check MAX11131 reference voltage -- why we read 0xffff 2.4999V here? |
whismanoid | 0:3edb3708c8c5 | 4815 | // |
whismanoid | 0:3edb3708c8c5 | 4816 | cmdLine.serial().printf("\r\n MAX11131.ScanManual -- NumWords = %d", |
whismanoid | 0:3edb3708c8c5 | 4817 | g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4818 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 4819 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 4820 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 4821 | cmdLine.serial().printf("\r\n MAX11131.ReadAINcode"); |
whismanoid | 0:3edb3708c8c5 | 4822 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4823 | // |
whismanoid | 0:3edb3708c8c5 | 4824 | // 2.1: TODO1: Check MAX11131 reference voltage -- why we read 0xffff 2.4999V here? |
whismanoid | 0:3edb3708c8c5 | 4825 | // |
whismanoid | 0:3edb3708c8c5 | 4826 | // compare with mbed/Arduino AIN0-AIN3 |
whismanoid | 0:3edb3708c8c5 | 4827 | // MAX32625MBED.AIN4 = MAX11131.AIN0 |
whismanoid | 0:3edb3708c8c5 | 4828 | channelId = 0; |
whismanoid | 0:3edb3708c8c5 | 4829 | value_u12 = g_MAX11131_device.AINcode[channelId]; |
whismanoid | 0:3edb3708c8c5 | 4830 | voltageV = g_MAX11131_device.VoltageOfCode(value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 4831 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, voltageV, 0.100); |
whismanoid | 0:3edb3708c8c5 | 4832 | } |
whismanoid | 0:3edb3708c8c5 | 4833 | // |
whismanoid | 0:3edb3708c8c5 | 4834 | if (SelfTest_has_max541) { |
whismanoid | 0:3edb3708c8c5 | 4835 | voltageV = 1.0f; |
whismanoid | 0:3edb3708c8c5 | 4836 | SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 4837 | } |
whismanoid | 0:3edb3708c8c5 | 4838 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4839 | cmdLine.serial().printf("\r\n 3.1: Test SCAN_0001_Manual"); |
whismanoid | 0:3edb3708c8c5 | 4840 | cmdLine.serial().printf("\r\n MAX11131.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4841 | g_MAX11131_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4842 | // 1 ScanManual ch=0 pm=0 id=1 |
whismanoid | 0:3edb3708c8c5 | 4843 | g_MAX11131_device.channelNumber_0_15 = 0; |
whismanoid | 0:3edb3708c8c5 | 4844 | g_MAX11131_device.PowerManagement_0_2 = 0; |
whismanoid | 0:3edb3708c8c5 | 4845 | g_MAX11131_device.chan_id_0_1 = 1; |
whismanoid | 0:3edb3708c8c5 | 4846 | cmdLine.serial().printf("\r\n MAX11131.channelNumber_0_15=%d", g_MAX11131_device.channelNumber_0_15); |
whismanoid | 0:3edb3708c8c5 | 4847 | cmdLine.serial().printf("\r\n MAX11131.PowerManagement_0_2=%d", g_MAX11131_device.PowerManagement_0_2); |
whismanoid | 0:3edb3708c8c5 | 4848 | cmdLine.serial().printf("\r\n MAX11131.chan_id_0_1=%d", g_MAX11131_device.chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 4849 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanManual(); |
whismanoid | 0:3edb3708c8c5 | 4850 | cmdLine.serial().printf("\r\n MAX11131.ScanManual -- NumWords = %d", |
whismanoid | 0:3edb3708c8c5 | 4851 | g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4852 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 4853 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 4854 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 4855 | cmdLine.serial().printf("\r\n MAX11131.ReadAINcode"); |
whismanoid | 0:3edb3708c8c5 | 4856 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4857 | // compare with mbed/Arduino AIN0-AIN3 |
whismanoid | 0:3edb3708c8c5 | 4858 | // MAX32625MBED.AIN4 = MAX11131.AIN0 |
whismanoid | 0:3edb3708c8c5 | 4859 | channelId = 0; |
whismanoid | 0:3edb3708c8c5 | 4860 | value_u12 = g_MAX11131_device.AINcode[channelId]; |
whismanoid | 0:3edb3708c8c5 | 4861 | voltageV = g_MAX11131_device.VoltageOfCode(value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 4862 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, voltageV, 0.100); |
whismanoid | 0:3edb3708c8c5 | 4863 | // |
whismanoid | 0:3edb3708c8c5 | 4864 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 4865 | cmdLine.serial().printf("\r\n 3.4: Test SCAN_0100_StandardExternalClock"); |
whismanoid | 0:3edb3708c8c5 | 4866 | cmdLine.serial().printf("\r\n MAX11131.Init()"); |
whismanoid | 0:3edb3708c8c5 | 4867 | g_MAX11131_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 4868 | // MAX11131 > 4 |
whismanoid | 0:3edb3708c8c5 | 4869 | // ScanStandardExternalClock ch=9 pm=0 id=1 |
whismanoid | 0:3edb3708c8c5 | 4870 | // ScanRead_nWords_chanID nWords=10 |
whismanoid | 0:3edb3708c8c5 | 4871 | // ch=0 xu=2964 = 0x0b94 = 1.8091V |
whismanoid | 0:3edb3708c8c5 | 4872 | // ch=1 xu=2227 = 0x08b3 = 1.3593V |
whismanoid | 0:3edb3708c8c5 | 4873 | // ch=2 xu=1570 = 0x0622 = 0.9583V |
whismanoid | 0:3edb3708c8c5 | 4874 | // ch=3 xu=865 = 0x0361 = 0.5280V |
whismanoid | 0:3edb3708c8c5 | 4875 | // ch=4 xu=630 = 0x0276 = 0.3845V |
whismanoid | 0:3edb3708c8c5 | 4876 | // ch=5 xu=594 = 0x0252 = 0.3625V |
whismanoid | 0:3edb3708c8c5 | 4877 | // ch=6 xu=461 = 0x01cd = 0.2814V |
whismanoid | 0:3edb3708c8c5 | 4878 | // ch=7 xu=364 = 0x016c = 0.2222V |
whismanoid | 0:3edb3708c8c5 | 4879 | // ch=8 xu=480 = 0x01e0 = 0.2930V |
whismanoid | 0:3edb3708c8c5 | 4880 | // ch=9 xu=616 = 0x0268 = 0.3760V |
whismanoid | 0:3edb3708c8c5 | 4881 | g_MAX11131_device.channelNumber_0_15 = 9; |
whismanoid | 0:3edb3708c8c5 | 4882 | g_MAX11131_device.PowerManagement_0_2 = 0; |
whismanoid | 0:3edb3708c8c5 | 4883 | g_MAX11131_device.chan_id_0_1 = 1; |
whismanoid | 0:3edb3708c8c5 | 4884 | cmdLine.serial().printf("\r\n MAX11131.channelNumber_0_15=%d", g_MAX11131_device.channelNumber_0_15); |
whismanoid | 0:3edb3708c8c5 | 4885 | cmdLine.serial().printf("\r\n MAX11131.PowerManagement_0_2=%d", g_MAX11131_device.PowerManagement_0_2); |
whismanoid | 0:3edb3708c8c5 | 4886 | cmdLine.serial().printf("\r\n MAX11131.chan_id_0_1=%d", g_MAX11131_device.chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 4887 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanStandardExternalClock(); |
whismanoid | 0:3edb3708c8c5 | 4888 | cmdLine.serial().printf("\r\n MAX11131.ScanStandardExternalClock -- NumWords = %d", |
whismanoid | 0:3edb3708c8c5 | 4889 | g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4890 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 4891 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 4892 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 4893 | cmdLine.serial().printf("\r\n MAX11131.ReadAINcode"); |
whismanoid | 0:3edb3708c8c5 | 4894 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 4895 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 4896 | // TODO: expect g_MAX11131_device.NumWords == g_MAX11131_device.channelNumber_0_15 + 1; |
whismanoid | 0:3edb3708c8c5 | 4897 | // TODO: expect RAW_misoData16[index] msnybble 0,1,2,3,... |
whismanoid | 0:3edb3708c8c5 | 4898 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 4899 | // TODO: compare with mbed/Arduino AIN0-AIN3 |
whismanoid | 0:3edb3708c8c5 | 4900 | // MAX32625MBED.AIN4 = MAX11131.AIN0 |
whismanoid | 0:3edb3708c8c5 | 4901 | channelId = 0; |
whismanoid | 0:3edb3708c8c5 | 4902 | value_u12 = g_MAX11131_device.AINcode[channelId]; |
whismanoid | 0:3edb3708c8c5 | 4903 | voltageV = g_MAX11131_device.VoltageOfCode(value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 4904 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, voltageV, 0.100); |
whismanoid | 0:3edb3708c8c5 | 4905 | // TODO: compare MAX32625MBED.AIN5 = MAX11131.AIN1 |
whismanoid | 0:3edb3708c8c5 | 4906 | //channelId = 1; |
whismanoid | 0:3edb3708c8c5 | 4907 | //value_u12 = g_MAX11131_device.AINcode[channelId]; |
whismanoid | 0:3edb3708c8c5 | 4908 | //voltageV = g_MAX11131_device.VoltageOfCode(value_u12, channelId); |
whismanoid | 0:3edb3708c8c5 | 4909 | //SelfTest_AnalogInput_Expect_ch_V(cmdLine, 5, voltageV, 0.100); |
whismanoid | 0:3edb3708c8c5 | 4910 | // |
whismanoid | 0:3edb3708c8c5 | 4911 | #elif APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 4912 | |
whismanoid | 0:3edb3708c8c5 | 4913 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4914 | // TODO: tinyTester.FunctionCall_Expect replaces SelfTest_DACCodeOfVoltage_Expect |
whismanoid | 0:3edb3708c8c5 | 4915 | // |
whismanoid | 1:40369075c365 | 4916 | // Note: ide.mbed.com does not support C++11 Lambda Expressions |
whismanoid | 1:40369075c365 | 4917 | // -- see https://os.mbed.com/questions/82580/Is-there-solution-for-defining-of-interr/ |
whismanoid | 0:3edb3708c8c5 | 4918 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4919 | // uint8_t MAX5171::Init(void) |
whismanoid | 2:b3a8a0ca0a94 | 4920 | //uint8_t (*fn_MAX5171_Init)() = [](){ return g_MAX5171_device.Init(); }; |
whismanoid | 0:3edb3708c8c5 | 4921 | // |
whismanoid | 0:3edb3708c8c5 | 4922 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4923 | // uint16_t MAX5171::DACCodeOfVoltage(double voltageV) |
whismanoid | 2:b3a8a0ca0a94 | 4924 | //uint16_t (*fn_MAX5171_DACCodeOfVoltage)(double) = [](double voltageV){ return g_MAX5171_device.DACCodeOfVoltage(voltageV); }; |
whismanoid | 0:3edb3708c8c5 | 4925 | // |
whismanoid | 0:3edb3708c8c5 | 4926 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4927 | // double MAX5171::VoltageOfCode(uint16_t value_u14) |
whismanoid | 2:b3a8a0ca0a94 | 4928 | //double (*fn_MAX5171_VoltageOfCode)(uint16_t) = [](uint16_t value_u14){ return g_MAX5171_device.VoltageOfCode(value_u14); }; |
whismanoid | 0:3edb3708c8c5 | 4929 | // |
whismanoid | 0:3edb3708c8c5 | 4930 | // define function under test using C++11 lambda expression [](){} |
whismanoid | 0:3edb3708c8c5 | 4931 | // uint8_t MAX5171::CODE_LOAD(uint16_t dacCodeLsbs) |
whismanoid | 2:b3a8a0ca0a94 | 4932 | //uint8_t (*fn_MAX5171_CODE_LOAD)(uint16_t dacCodeLsbs) = [](uint16_t dacCodeLsbs){ return g_MAX5171_device.CODE_LOAD(dacCodeLsbs); }; |
whismanoid | 0:3edb3708c8c5 | 4933 | // |
whismanoid | 0:3edb3708c8c5 | 4934 | //double one_LSB = (g_MAX5171_device.VRef / 16383); // 14-bit DAC FS |
whismanoid | 0:3edb3708c8c5 | 4935 | tinyTester.err_threshold = (g_MAX5171_device.VRef / 16383); // 14-bit DAC FS |
whismanoid | 0:3edb3708c8c5 | 4936 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 4937 | tinyTester.settle_time_msec = 250; |
whismanoid | 0:3edb3708c8c5 | 4938 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4939 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4940 | |
whismanoid | 0:3edb3708c8c5 | 4941 | g_MAX5171_device.VRef = 2.500; // MAX5171 14-bit LSB = 0.00015V |
whismanoid | 0:3edb3708c8c5 | 4942 | SelfTest_print_Vref(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 4943 | // |
whismanoid | 0:3edb3708c8c5 | 4944 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4945 | // TODO: tinyTester.FunctionCall_Expect replaces SelfTest_DACCodeOfVoltage_Expect |
whismanoid | 0:3edb3708c8c5 | 4946 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 2.499847412109375, 0x3FFF); |
whismanoid | 0:3edb3708c8c5 | 4947 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 2.49969482421875, 0x3FFE); |
whismanoid | 0:3edb3708c8c5 | 4948 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 2.499542236328125, 0x3FFD); |
whismanoid | 0:3edb3708c8c5 | 4949 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 2.4993896484375, 0x3FFC); |
whismanoid | 0:3edb3708c8c5 | 4950 | // |
whismanoid | 0:3edb3708c8c5 | 4951 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 1.250152587890625, 0x2001); |
whismanoid | 0:3edb3708c8c5 | 4952 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 1.25, 0x2000); |
whismanoid | 0:3edb3708c8c5 | 4953 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 1.249847412109375, 0x1FFF); |
whismanoid | 0:3edb3708c8c5 | 4954 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 1.24969482421875, 0x1FFE); |
whismanoid | 0:3edb3708c8c5 | 4955 | // |
whismanoid | 0:3edb3708c8c5 | 4956 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 0.000457763671875, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4957 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 0.00030517578125, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4958 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 0.000152587890625, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4959 | tinyTester.FunctionCall_Expect("MAX5171.DACCodeOfVoltage", fn_MAX5171_DACCodeOfVoltage, 0.00000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4960 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4961 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.499847412109375, 0x3FFF); |
whismanoid | 0:3edb3708c8c5 | 4962 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.49969482421875, 0x3FFE); |
whismanoid | 0:3edb3708c8c5 | 4963 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.499542236328125, 0x3FFD); |
whismanoid | 0:3edb3708c8c5 | 4964 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 2.4993896484375, 0x3FFC); |
whismanoid | 0:3edb3708c8c5 | 4965 | // |
whismanoid | 0:3edb3708c8c5 | 4966 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.250152587890625, 0x2001); |
whismanoid | 0:3edb3708c8c5 | 4967 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.25, 0x2000); |
whismanoid | 0:3edb3708c8c5 | 4968 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.249847412109375, 0x1FFF); |
whismanoid | 0:3edb3708c8c5 | 4969 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 1.24969482421875, 0x1FFE); |
whismanoid | 0:3edb3708c8c5 | 4970 | // |
whismanoid | 0:3edb3708c8c5 | 4971 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.000457763671875, 0x0003); |
whismanoid | 0:3edb3708c8c5 | 4972 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.00030517578125, 0x0002); |
whismanoid | 0:3edb3708c8c5 | 4973 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.000152587890625, 0x0001); |
whismanoid | 0:3edb3708c8c5 | 4974 | SelfTest_DACCodeOfVoltage_Expect(cmdLine, 0.00000, 0x0000); |
whismanoid | 0:3edb3708c8c5 | 4975 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4976 | // |
whismanoid | 0:3edb3708c8c5 | 4977 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4978 | // TODO: tinyTester.FunctionCall_Expect replaces SelfTest_VoltageOfCode_Expect |
whismanoid | 0:3edb3708c8c5 | 4979 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x3FFF, 2.499847412109375); |
whismanoid | 0:3edb3708c8c5 | 4980 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x3FFE, 2.49969482421875); |
whismanoid | 0:3edb3708c8c5 | 4981 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x3FFD, 2.499542236328125); |
whismanoid | 0:3edb3708c8c5 | 4982 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x3FFC, 2.4993896484375); |
whismanoid | 0:3edb3708c8c5 | 4983 | // |
whismanoid | 0:3edb3708c8c5 | 4984 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x2001, 1.250152587890625); |
whismanoid | 0:3edb3708c8c5 | 4985 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x2000, 1.25); |
whismanoid | 0:3edb3708c8c5 | 4986 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x1FFF, 1.249847412109375); |
whismanoid | 0:3edb3708c8c5 | 4987 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x1FFE, 1.24969482421875); |
whismanoid | 0:3edb3708c8c5 | 4988 | // |
whismanoid | 0:3edb3708c8c5 | 4989 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x0003, 0.000457763671875); |
whismanoid | 0:3edb3708c8c5 | 4990 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x0002, 0.00030517578125); |
whismanoid | 0:3edb3708c8c5 | 4991 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x0001, 0.000152587890625); |
whismanoid | 0:3edb3708c8c5 | 4992 | tinyTester.FunctionCall_Expect("MAX5171.VoltageOfCode", fn_MAX5171_VoltageOfCode, 0x0000, 0.00000); |
whismanoid | 0:3edb3708c8c5 | 4993 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 4994 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x3FFF, 2.499847412109375); |
whismanoid | 0:3edb3708c8c5 | 4995 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x3FFE, 2.49969482421875); |
whismanoid | 0:3edb3708c8c5 | 4996 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x3FFD, 2.499542236328125); |
whismanoid | 0:3edb3708c8c5 | 4997 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x3FFC, 2.4993896484375); |
whismanoid | 0:3edb3708c8c5 | 4998 | // |
whismanoid | 0:3edb3708c8c5 | 4999 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x2001, 1.250152587890625); |
whismanoid | 0:3edb3708c8c5 | 5000 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x2000, 1.25); |
whismanoid | 0:3edb3708c8c5 | 5001 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x1FFF, 1.249847412109375); |
whismanoid | 0:3edb3708c8c5 | 5002 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x1FFE, 1.24969482421875); |
whismanoid | 0:3edb3708c8c5 | 5003 | // |
whismanoid | 0:3edb3708c8c5 | 5004 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0003, 0.000457763671875); |
whismanoid | 0:3edb3708c8c5 | 5005 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0002, 0.00030517578125); |
whismanoid | 0:3edb3708c8c5 | 5006 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0001, 0.000152587890625); |
whismanoid | 0:3edb3708c8c5 | 5007 | SelfTest_VoltageOfCode_Expect(cmdLine, 0x0000, 0.00000); |
whismanoid | 0:3edb3708c8c5 | 5008 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5009 | // |
whismanoid | 0:3edb3708c8c5 | 5010 | // Device Testing: DAC commands, verify using on-board ADC inputs |
whismanoid | 0:3edb3708c8c5 | 5011 | // |
whismanoid | 0:3edb3708c8c5 | 5012 | cmdLine.serial().printf("\r\n MAX5171.Init()"); |
whismanoid | 0:3edb3708c8c5 | 5013 | g_MAX5171_device.Init(); |
whismanoid | 0:3edb3708c8c5 | 5014 | // |
whismanoid | 0:3edb3708c8c5 | 5015 | tinyTester.err_threshold = 0.030; // 30mV |
whismanoid | 0:3edb3708c8c5 | 5016 | uint16_t code = 0x3FFF; |
whismanoid | 0:3edb3708c8c5 | 5017 | //~ double voltageV = 0.5; |
whismanoid | 0:3edb3708c8c5 | 5018 | // |
whismanoid | 0:3edb3708c8c5 | 5019 | cmdLine.serial().printf("\r\n MAX5171.CODE_LOAD code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 5020 | g_MAX5171_device.CODE_LOAD(code); |
whismanoid | 0:3edb3708c8c5 | 5021 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5022 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 5023 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 5024 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 5025 | tinyTester.AnalogIn0_Read_Expect_voltageV(2.500); |
whismanoid | 0:3edb3708c8c5 | 5026 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5027 | wait_ms(250); // delay |
whismanoid | 0:3edb3708c8c5 | 5028 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5029 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 5030 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 5031 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, 2.500); |
whismanoid | 0:3edb3708c8c5 | 5032 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5033 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 5034 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 0, 2.500); |
whismanoid | 0:3edb3708c8c5 | 5035 | #endif |
whismanoid | 0:3edb3708c8c5 | 5036 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5037 | // |
whismanoid | 0:3edb3708c8c5 | 5038 | code = 0x0000; |
whismanoid | 0:3edb3708c8c5 | 5039 | cmdLine.serial().printf("\r\n MAX5171.CODE_LOAD code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 5040 | g_MAX5171_device.CODE_LOAD(code); |
whismanoid | 0:3edb3708c8c5 | 5041 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5042 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 5043 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 5044 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 5045 | tinyTester.AnalogIn0_Read_Expect_voltageV(0.0000); |
whismanoid | 0:3edb3708c8c5 | 5046 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5047 | wait_ms(250); // delay |
whismanoid | 0:3edb3708c8c5 | 5048 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5049 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 5050 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 5051 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 5052 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5053 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 5054 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 0, 0.0000); |
whismanoid | 0:3edb3708c8c5 | 5055 | #endif |
whismanoid | 0:3edb3708c8c5 | 5056 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5057 | // |
whismanoid | 0:3edb3708c8c5 | 5058 | code = 0x1FFF; |
whismanoid | 0:3edb3708c8c5 | 5059 | cmdLine.serial().printf("\r\n MAX5171.CODE_LOAD code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 5060 | g_MAX5171_device.CODE_LOAD(code); |
whismanoid | 0:3edb3708c8c5 | 5061 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5062 | // TODO: tinyTester.Wait_Output_Settling replaces wait_ms |
whismanoid | 0:3edb3708c8c5 | 5063 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 5064 | // TODO: tinyTester.AnalogIn0_Read_Expect_voltageV replaces SelfTest_AnalogInput_Expect_ch_V |
whismanoid | 0:3edb3708c8c5 | 5065 | tinyTester.AnalogIn0_Read_Expect_voltageV(1.2500); |
whismanoid | 0:3edb3708c8c5 | 5066 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5067 | wait_ms(250); // delay |
whismanoid | 0:3edb3708c8c5 | 5068 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5069 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 5070 | // low range channels AIN0, AIN1, AIN2, AIN3 |
whismanoid | 0:3edb3708c8c5 | 5071 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 4, 1.2500); |
whismanoid | 0:3edb3708c8c5 | 5072 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5073 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 5074 | SelfTest_AnalogInput_Expect_ch_V(cmdLine, 0, 1.2500); |
whismanoid | 0:3edb3708c8c5 | 5075 | #endif |
whismanoid | 0:3edb3708c8c5 | 5076 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5077 | // |
whismanoid | 0:3edb3708c8c5 | 5078 | // test UPO User Programmable Output, verify using digital input D2 |
whismanoid | 0:3edb3708c8c5 | 5079 | // |
whismanoid | 0:3edb3708c8c5 | 5080 | cmdLine.serial().printf("\r\n MAX5171.UPO_HIGH"); |
whismanoid | 0:3edb3708c8c5 | 5081 | g_MAX5171_device.UPO_HIGH(); |
whismanoid | 0:3edb3708c8c5 | 5082 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5083 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 5084 | // TODO: tinyTester.DigitalIn_Read_Expect_WarnOnly replaces SelfTest_Expect_Input_UPO_pin |
whismanoid | 0:3edb3708c8c5 | 5085 | tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command"); |
whismanoid | 0:3edb3708c8c5 | 5086 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5087 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 5088 | SelfTest_Expect_Input_UPO_pin(cmdLine, 1, "UPO_pin is high after MAX5171 UPO_HIGH command"); |
whismanoid | 0:3edb3708c8c5 | 5089 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5090 | // |
whismanoid | 0:3edb3708c8c5 | 5091 | cmdLine.serial().printf("\r\n MAX5171.UPO_LOW"); |
whismanoid | 0:3edb3708c8c5 | 5092 | g_MAX5171_device.UPO_LOW(); |
whismanoid | 0:3edb3708c8c5 | 5093 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5094 | tinyTester.Wait_Output_Settling(); |
whismanoid | 0:3edb3708c8c5 | 5095 | // TODO: tinyTester.DigitalIn_Read_Expect_WarnOnly replaces SelfTest_Expect_Input_UPO_pin |
whismanoid | 0:3edb3708c8c5 | 5096 | tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 0, "UPO_pin is low after MAX5171 UPO_LOW command"); |
whismanoid | 0:3edb3708c8c5 | 5097 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5098 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 5099 | SelfTest_Expect_Input_UPO_pin(cmdLine, 0, "UPO_pin is low after MAX5171 UPO_LOW command"); |
whismanoid | 0:3edb3708c8c5 | 5100 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5101 | // |
whismanoid | 0:3edb3708c8c5 | 5102 | cmdLine.serial().printf("\r\n MAX5171.UPO_HIGH"); |
whismanoid | 0:3edb3708c8c5 | 5103 | g_MAX5171_device.UPO_HIGH(); |
whismanoid | 0:3edb3708c8c5 | 5104 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5105 | tinyTester.Wait_Output_Settling(); // wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 5106 | // TODO: tinyTester.DigitalIn_Read_Expect_WarnOnly replaces SelfTest_Expect_Input_UPO_pin |
whismanoid | 0:3edb3708c8c5 | 5107 | tinyTester.DigitalIn_Read_Expect_WarnOnly(UPO_pin, "UPO", 1, "UPO_pin is high after MAX5171 UPO_HIGH command"); |
whismanoid | 0:3edb3708c8c5 | 5108 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5109 | wait_ms(100); // delay |
whismanoid | 0:3edb3708c8c5 | 5110 | SelfTest_Expect_Input_UPO_pin(cmdLine, 1, "UPO_pin is high after MAX5171 UPO_HIGH command"); |
whismanoid | 0:3edb3708c8c5 | 5111 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5112 | // |
whismanoid | 0:3edb3708c8c5 | 5113 | #elif APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 5114 | // |
whismanoid | 0:3edb3708c8c5 | 5115 | // TODO: placeholder for self-test functions |
whismanoid | 0:3edb3708c8c5 | 5116 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5117 | cmdLine.serial().printf("test program not implemented yet"); |
whismanoid | 0:3edb3708c8c5 | 5118 | // |
whismanoid | 0:3edb3708c8c5 | 5119 | #elif APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 5120 | // |
whismanoid | 0:3edb3708c8c5 | 5121 | // TODO: placeholder for self-test functions |
whismanoid | 0:3edb3708c8c5 | 5122 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5123 | cmdLine.serial().printf("test program not implemented yet"); |
whismanoid | 0:3edb3708c8c5 | 5124 | // |
whismanoid | 0:3edb3708c8c5 | 5125 | #else // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 5126 | // TODO: placeholder for self-test functions |
whismanoid | 0:3edb3708c8c5 | 5127 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 5128 | // |
whismanoid | 0:3edb3708c8c5 | 5129 | #if 0 |
whismanoid | 0:3edb3708c8c5 | 5130 | // Test of the pass/fail report mechanism |
whismanoid | 0:3edb3708c8c5 | 5131 | SelfTest_FAIL(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5132 | cmdLine.serial().printf("injecting one false failure for test reporting"); |
whismanoid | 0:3edb3708c8c5 | 5133 | #endif |
whismanoid | 0:3edb3708c8c5 | 5134 | // |
whismanoid | 0:3edb3708c8c5 | 5135 | // Report number of pass and number of fail test results |
whismanoid | 0:3edb3708c8c5 | 5136 | #if USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5137 | tinyTester.Report_Summary(); |
whismanoid | 0:3edb3708c8c5 | 5138 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 5139 | if (tinyTester.nFail == 0) { |
whismanoid | 0:3edb3708c8c5 | 5140 | rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 5141 | } |
whismanoid | 0:3edb3708c8c5 | 5142 | else { |
whismanoid | 0:3edb3708c8c5 | 5143 | rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 5144 | } |
whismanoid | 0:3edb3708c8c5 | 5145 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 5146 | #else // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5147 | cmdLine.serial().printf("\r\nSummary: %d PASS %d FAIL\r\n", g_SelfTest_nPass, g_SelfTest_nFail); |
whismanoid | 0:3edb3708c8c5 | 5148 | //~ cmdLine.serial().printf(g_SelfTest_nPass); |
whismanoid | 0:3edb3708c8c5 | 5149 | //~ cmdLine.serial().printf(" PASS "); |
whismanoid | 0:3edb3708c8c5 | 5150 | //~ cmdLine.serial().printf(g_SelfTest_nFail); |
whismanoid | 0:3edb3708c8c5 | 5151 | //~ cmdLine.serial().printf(" FAIL\r\n"); |
whismanoid | 0:3edb3708c8c5 | 5152 | if (g_SelfTest_nFail == 0) { |
whismanoid | 0:3edb3708c8c5 | 5153 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 5154 | //~ rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 5155 | rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 5156 | //~ rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 5157 | //~ rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 5158 | //~ rgb_led.cyan(); // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 5159 | //~ rgb_led.magenta(); // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 5160 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 5161 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 5162 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 5163 | } |
whismanoid | 0:3edb3708c8c5 | 5164 | #endif // USE_MAXIMTINYTESTER |
whismanoid | 0:3edb3708c8c5 | 5165 | } |
whismanoid | 0:3edb3708c8c5 | 5166 | |
whismanoid | 0:3edb3708c8c5 | 5167 | |
whismanoid | 0:3edb3708c8c5 | 5168 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 5169 | void main_menu_status(CmdLine & cmdLine) |
whismanoid | 0:3edb3708c8c5 | 5170 | { |
whismanoid | 0:3edb3708c8c5 | 5171 | cmdLine.serial().printf("\r\nMain menu"); |
whismanoid | 0:3edb3708c8c5 | 5172 | #if APPLICATION_MAX5715 // main_menu_status banner |
whismanoid | 0:3edb3708c8c5 | 5173 | cmdLine.serial().printf(" MAX5715 12-bit 4-ch SPI VOUT DAC"); |
whismanoid | 0:3edb3708c8c5 | 5174 | #elif APPLICATION_MAX11131 // main_menu_status banner |
whismanoid | 0:3edb3708c8c5 | 5175 | cmdLine.serial().printf(" MAX11131 12-bit 3MSps 16-ch ADC"); |
whismanoid | 0:3edb3708c8c5 | 5176 | #elif APPLICATION_MAX5171 // main_menu_status banner |
whismanoid | 0:3edb3708c8c5 | 5177 | cmdLine.serial().printf(" MAX5171 14-bit Force/Sense VOUT DAC"); |
whismanoid | 0:3edb3708c8c5 | 5178 | #elif APPLICATION_MAX11410 // main_menu_status banner |
whismanoid | 0:3edb3708c8c5 | 5179 | cmdLine.serial().printf(" MAX11410 24-bit 1.9ksps Delta-Sigma ADC"); |
whismanoid | 0:3edb3708c8c5 | 5180 | #elif APPLICATION_MAX12345 // main_menu_status banner |
whismanoid | 0:3edb3708c8c5 | 5181 | cmdLine.serial().printf(" MAX12345"); |
whismanoid | 0:3edb3708c8c5 | 5182 | #else |
whismanoid | 0:3edb3708c8c5 | 5183 | //cmdLine.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 5184 | #endif |
whismanoid | 0:3edb3708c8c5 | 5185 | cmdLine.serial().printf(" %s", TARGET_NAME); |
whismanoid | 0:3edb3708c8c5 | 5186 | if (cmdLine.nameStr()) |
whismanoid | 0:3edb3708c8c5 | 5187 | { |
whismanoid | 0:3edb3708c8c5 | 5188 | cmdLine.serial().printf(" [%s]", cmdLine.nameStr()); |
whismanoid | 0:3edb3708c8c5 | 5189 | } |
whismanoid | 0:3edb3708c8c5 | 5190 | #if USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 5191 | //cmdLine.serial().printf(" [USE_COMMAND_BUFFER]"); |
whismanoid | 0:3edb3708c8c5 | 5192 | #endif |
whismanoid | 0:3edb3708c8c5 | 5193 | #if HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 5194 | cmdLine.serial().printf(" [Button1=DemoConfig1]"); |
whismanoid | 0:3edb3708c8c5 | 5195 | #endif |
whismanoid | 0:3edb3708c8c5 | 5196 | #if HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 5197 | cmdLine.serial().printf(" [Button2=DemoConfig2]"); |
whismanoid | 0:3edb3708c8c5 | 5198 | #endif |
whismanoid | 0:3edb3708c8c5 | 5199 | #if HAS_BUTTON1_DEMO |
whismanoid | 0:3edb3708c8c5 | 5200 | // print BUTTON1 status |
whismanoid | 0:3edb3708c8c5 | 5201 | cmdLine.serial().printf("\r\n BUTTON1 = %d", button1.read()); |
whismanoid | 0:3edb3708c8c5 | 5202 | #endif |
whismanoid | 0:3edb3708c8c5 | 5203 | #if HAS_BUTTON2_DEMO |
whismanoid | 0:3edb3708c8c5 | 5204 | // print BUTTON1 status |
whismanoid | 0:3edb3708c8c5 | 5205 | cmdLine.serial().printf("\r\n BUTTON2 = %d", button2.read()); |
whismanoid | 0:3edb3708c8c5 | 5206 | #endif |
whismanoid | 0:3edb3708c8c5 | 5207 | cmdLine.serial().printf("\r\n ? -- help"); |
whismanoid | 0:3edb3708c8c5 | 5208 | } |
whismanoid | 0:3edb3708c8c5 | 5209 | |
whismanoid | 0:3edb3708c8c5 | 5210 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 5211 | void main_menu_help(CmdLine & cmdLine) |
whismanoid | 0:3edb3708c8c5 | 5212 | { |
whismanoid | 0:3edb3708c8c5 | 5213 | // ? -- help |
whismanoid | 0:3edb3708c8c5 | 5214 | //~ cmdLine.serial().printf("\r\nMenu:"); |
whismanoid | 0:3edb3708c8c5 | 5215 | cmdLine.serial().printf("\r\n # -- lines beginning with # are comments"); |
whismanoid | 0:3edb3708c8c5 | 5216 | cmdLine.serial().printf("\r\n . -- SelfTest"); |
whismanoid | 0:3edb3708c8c5 | 5217 | //cmdLine.serial().printf("\r\n ! -- Initial Configuration"); |
whismanoid | 0:3edb3708c8c5 | 5218 | // |
whismanoid | 0:3edb3708c8c5 | 5219 | // % standardize diagnostic commands |
whismanoid | 0:3edb3708c8c5 | 5220 | // %Hpin -- digital output high |
whismanoid | 0:3edb3708c8c5 | 5221 | // %Lpin -- digital output low |
whismanoid | 0:3edb3708c8c5 | 5222 | // %?pin -- digital input |
whismanoid | 0:3edb3708c8c5 | 5223 | // %A %Apin -- analog input |
whismanoid | 0:3edb3708c8c5 | 5224 | // %Ppin df=xx -- pwm output |
whismanoid | 0:3edb3708c8c5 | 5225 | // %Wpin -- measure high pulsewidth input in usec |
whismanoid | 0:3edb3708c8c5 | 5226 | // %wpin -- measure low pulsewidth input in usec |
whismanoid | 0:3edb3708c8c5 | 5227 | // %I... -- I2C diagnostics |
whismanoid | 0:3edb3708c8c5 | 5228 | // %IP -- I2C probe |
whismanoid | 0:3edb3708c8c5 | 5229 | // %IC scl=100khz ADDR=? -- I2C configure |
whismanoid | 0:3edb3708c8c5 | 5230 | // %IW ADDR=? cmd=? data,data,data -- write |
whismanoid | 0:3edb3708c8c5 | 5231 | // %IR ADDR=? RD=? -- read |
whismanoid | 0:3edb3708c8c5 | 5232 | // %I^ cmd=? -- i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5233 | // %S... -- SPI diagnostics |
whismanoid | 0:3edb3708c8c5 | 5234 | // %SC sclk=1Mhz -- SPI configure |
whismanoid | 0:3edb3708c8c5 | 5235 | // %SW -- write (write and read) |
whismanoid | 0:3edb3708c8c5 | 5236 | // %SR -- read (alias for %SW because SPI always write and read) |
whismanoid | 0:3edb3708c8c5 | 5237 | // A-Z,a-z,0-9 reserved for application use |
whismanoid | 0:3edb3708c8c5 | 5238 | // |
whismanoid | 0:3edb3708c8c5 | 5239 | #if HAS_digitalInOuts |
whismanoid | 0:3edb3708c8c5 | 5240 | // %Hpin -- digital output high |
whismanoid | 0:3edb3708c8c5 | 5241 | // %Lpin -- digital output low |
whismanoid | 0:3edb3708c8c5 | 5242 | // %?pin -- digital input |
whismanoid | 0:3edb3708c8c5 | 5243 | cmdLine.serial().printf("\r\n %%Hn {pin:"); |
whismanoid | 0:3edb3708c8c5 | 5244 | list_digitalInOutPins(cmdLine.serial()); |
whismanoid | 0:3edb3708c8c5 | 5245 | cmdLine.serial().printf("} -- High Output"); |
whismanoid | 0:3edb3708c8c5 | 5246 | cmdLine.serial().printf("\r\n %%Ln {pin:"); |
whismanoid | 0:3edb3708c8c5 | 5247 | list_digitalInOutPins(cmdLine.serial()); |
whismanoid | 0:3edb3708c8c5 | 5248 | cmdLine.serial().printf("} -- Low Output"); |
whismanoid | 0:3edb3708c8c5 | 5249 | cmdLine.serial().printf("\r\n %%?n {pin:"); |
whismanoid | 0:3edb3708c8c5 | 5250 | list_digitalInOutPins(cmdLine.serial()); |
whismanoid | 0:3edb3708c8c5 | 5251 | cmdLine.serial().printf("} -- Input"); |
whismanoid | 0:3edb3708c8c5 | 5252 | #endif |
whismanoid | 0:3edb3708c8c5 | 5253 | |
whismanoid | 0:3edb3708c8c5 | 5254 | #if HAS_analogIns |
whismanoid | 0:3edb3708c8c5 | 5255 | // Menu A) analogRead A0..7 |
whismanoid | 0:3edb3708c8c5 | 5256 | // %A %Apin -- analog input |
whismanoid | 0:3edb3708c8c5 | 5257 | // analogRead(pinIndex) // analog input pins A0, A1, A2, A3, A4, A5; float voltage = analogRead(A0) * (5.0 / 1023.0) |
whismanoid | 0:3edb3708c8c5 | 5258 | cmdLine.serial().printf("\r\n %%A -- analogRead"); |
whismanoid | 0:3edb3708c8c5 | 5259 | #endif |
whismanoid | 0:3edb3708c8c5 | 5260 | |
whismanoid | 0:3edb3708c8c5 | 5261 | #if HAS_SPI2_MAX541 |
whismanoid | 0:3edb3708c8c5 | 5262 | // TODO1: MAX541 max541(spi2_max541, spi2_max541_cs); |
whismanoid | 0:3edb3708c8c5 | 5263 | cmdLine.serial().printf("\r\n %%D -- DAC output MAX541 (SPI2)"); |
whismanoid | 0:3edb3708c8c5 | 5264 | #endif |
whismanoid | 0:3edb3708c8c5 | 5265 | |
whismanoid | 0:3edb3708c8c5 | 5266 | #if HAS_pwmDrivers |
whismanoid | 0:3edb3708c8c5 | 5267 | // Menu P) PWM D3|5|6|9|10|11, Output 0..255 |
whismanoid | 0:3edb3708c8c5 | 5268 | // %Ppin df=xx -- pwm output |
whismanoid | 0:3edb3708c8c5 | 5269 | cmdLine.serial().printf("\r\n %%P {High|Low|.|>|<|S|F} 0..255, {pin: *"); |
whismanoid | 0:3edb3708c8c5 | 5270 | // analogWrite(analogOutPin, outputValue_0_255) // PWM digital output 0..255: analogWrite works on digital pins 3, 5, 6, 9, 10, and 11. Frequency is 490 Hz except pins 5 and 6 are 980 Hz. |
whismanoid | 0:3edb3708c8c5 | 5271 | //cmdLine.serial().printf("\r\n P) pwmDriver {High|Low|.|>|<|S|F} {pin: *"); |
whismanoid | 0:3edb3708c8c5 | 5272 | list_pwmDriverPins(cmdLine.serial()); |
whismanoid | 0:3edb3708c8c5 | 5273 | cmdLine.serial().printf("} -- PWM Output"); |
whismanoid | 0:3edb3708c8c5 | 5274 | #endif |
whismanoid | 0:3edb3708c8c5 | 5275 | |
whismanoid | 0:3edb3708c8c5 | 5276 | #if HAS_I2C // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5277 | // TODO: support I2C HAS_I2C // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5278 | // VERIFY: I2C utility commands SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5279 | // VERIFY: report g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)) from last Wire_Sr.setClock(I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 5280 | // %I... -- I2C diagnostics |
whismanoid | 0:3edb3708c8c5 | 5281 | // %IP -- I2C probe |
whismanoid | 0:3edb3708c8c5 | 5282 | // %IC scl=100khz ADDR=? -- I2C configure |
whismanoid | 0:3edb3708c8c5 | 5283 | // %IW byte byte ... byte RD=? ADDR=0x -- write |
whismanoid | 0:3edb3708c8c5 | 5284 | // %IR ADDR=? RD=? -- read |
whismanoid | 0:3edb3708c8c5 | 5285 | // %I^ cmd=? -- i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5286 | //g_I2C_SCL_Hz = (F_CPU / ((TWBR * 2) + 16)); // 'F_CPU' 'TWBR' not declared in this scope |
whismanoid | 0:3edb3708c8c5 | 5287 | cmdLine.serial().printf("\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config", |
whismanoid | 0:3edb3708c8c5 | 5288 | g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz, |
whismanoid | 0:3edb3708c8c5 | 5289 | (g_I2C_SCL_Hz / 1000.)); |
whismanoid | 0:3edb3708c8c5 | 5290 | cmdLine.serial().printf("\r\n %%IW byte byte ... byte RD=? ADDR=0x%2.2x -- I2C write/read", |
whismanoid | 0:3edb3708c8c5 | 5291 | g_I2C_deviceAddress7); |
whismanoid | 0:3edb3708c8c5 | 5292 | // |
whismanoid | 0:3edb3708c8c5 | 5293 | #if SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5294 | // Menu ^ cmd=?) i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5295 | cmdLine.serial().printf("\r\n %%I^ cmd=? -- i2c_smbus_read_word_data"); |
whismanoid | 0:3edb3708c8c5 | 5296 | // test low-level I2C i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5297 | #endif // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5298 | //cmdLine.serial().printf(" H) Hunt for attached I2C devices"); |
whismanoid | 0:3edb3708c8c5 | 5299 | cmdLine.serial().printf("\r\n %%IP -- I2C Probe for attached devices"); |
whismanoid | 0:3edb3708c8c5 | 5300 | // cmdLine.serial().printf(" s) search i2c address"); |
whismanoid | 0:3edb3708c8c5 | 5301 | #endif // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5302 | |
whismanoid | 0:3edb3708c8c5 | 5303 | #if HAS_SPI // SUPPORT_SPI |
whismanoid | 0:3edb3708c8c5 | 5304 | // TODO: support SPI HAS_SPI // SUPPORT_SPI |
whismanoid | 0:3edb3708c8c5 | 5305 | // SPI test command S (mosiData)+ |
whismanoid | 0:3edb3708c8c5 | 5306 | // %S... -- SPI diagnostics |
whismanoid | 0:3edb3708c8c5 | 5307 | // %SC sclk=1Mhz -- SPI configure |
whismanoid | 0:3edb3708c8c5 | 5308 | // %SW -- write (write and read) |
whismanoid | 0:3edb3708c8c5 | 5309 | // %SR -- read (alias for %SW because SPI always write and read) |
whismanoid | 0:3edb3708c8c5 | 5310 | // spi.format(8,0); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 rising edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 5311 | // spi.format(8,1); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=1 falling edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 5312 | // spi.format(8,2); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=0 falling edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 5313 | // spi.format(8,3); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=1 rising edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 5314 | // spi.frequency(1000000); // int SCLK_Hz=1000000 = 1MHz (initial default) |
whismanoid | 0:3edb3708c8c5 | 5315 | // mode | POL PHA |
whismanoid | 0:3edb3708c8c5 | 5316 | // -----+-------- |
whismanoid | 0:3edb3708c8c5 | 5317 | // 0 | 0 0 |
whismanoid | 0:3edb3708c8c5 | 5318 | // 1 | 0 1 |
whismanoid | 0:3edb3708c8c5 | 5319 | // 2 | 1 0 |
whismanoid | 0:3edb3708c8c5 | 5320 | // 3 | 1 1 |
whismanoid | 0:3edb3708c8c5 | 5321 | //cmdLine.serial().printf(" S) SPI mosi,mosi,...mosi hex bytes SCLK=1000000 CPOL=0 CPHA=0"); |
whismanoid | 0:3edb3708c8c5 | 5322 | // 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 | 0:3edb3708c8c5 | 5323 | cmdLine.serial().printf("\r\n %%SC SCLK=%ld=%1.3fMHz CPOL=%d CPHA=%d -- SPI config", |
whismanoid | 0:3edb3708c8c5 | 5324 | g_SPI_SCLK_Hz, (g_SPI_SCLK_Hz / 1000000.), |
whismanoid | 0:3edb3708c8c5 | 5325 | ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0), |
whismanoid | 0:3edb3708c8c5 | 5326 | ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0)); |
whismanoid | 0:3edb3708c8c5 | 5327 | cmdLine.serial().printf("\r\n %%SW mosi,mosi,...mosi -- SPI write hex bytes"); |
whismanoid | 0:3edb3708c8c5 | 5328 | // VERIFY: parse new SPI settings parse_strCommandArgs() SCLK=1000000 CPOL=0 CPHA=0 |
whismanoid | 0:3edb3708c8c5 | 5329 | #endif // SUPPORT_SPI |
whismanoid | 0:3edb3708c8c5 | 5330 | // |
whismanoid | 0:3edb3708c8c5 | 5331 | // Application-specific commands (help text) here |
whismanoid | 0:3edb3708c8c5 | 5332 | // |
whismanoid | 0:3edb3708c8c5 | 5333 | #if APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 5334 | # if APPLICATION_MAX5715 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5335 | # elif APPLICATION_MAX11131 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5336 | # elif APPLICATION_MAX5171 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5337 | # elif APPLICATION_MAX11410 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5338 | # elif APPLICATION_MAX12345 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5339 | # else |
whismanoid | 0:3edb3708c8c5 | 5340 | cmdLine.serial().printf("\r\n A-Z,a-z,0-9 -- reserved for application use"); // ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 5341 | # endif |
whismanoid | 0:3edb3708c8c5 | 5342 | #endif // APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 5343 | // |
whismanoid | 0:3edb3708c8c5 | 5344 | #if APPLICATION_MAX5715 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5345 | cmdLine.serial().printf("\r\n 0 ch=? code=? -- CODEn"); |
whismanoid | 0:3edb3708c8c5 | 5346 | cmdLine.serial().printf("\r\n 1 ch=? -- LOADn"); |
whismanoid | 0:3edb3708c8c5 | 5347 | cmdLine.serial().printf("\r\n 2 ch=? code=? -- CODEnLOADall"); |
whismanoid | 0:3edb3708c8c5 | 5348 | cmdLine.serial().printf("\r\n 3 ch=? code=? -- CODEnLOADn"); |
whismanoid | 0:3edb3708c8c5 | 5349 | cmdLine.serial().printf("\r\n 40 ch=? -- POWERn_Normal"); |
whismanoid | 0:3edb3708c8c5 | 5350 | cmdLine.serial().printf("\r\n 41 ch=? -- POWERn_PD1k"); |
whismanoid | 0:3edb3708c8c5 | 5351 | cmdLine.serial().printf("\r\n 42 ch=? -- POWERn_PD100k"); |
whismanoid | 0:3edb3708c8c5 | 5352 | cmdLine.serial().printf("\r\n 43 ch=? -- POWERn_PDHiZ"); |
whismanoid | 0:3edb3708c8c5 | 5353 | cmdLine.serial().printf("\r\n 50 -- SW_CLEAR"); |
whismanoid | 0:3edb3708c8c5 | 5354 | cmdLine.serial().printf("\r\n 51 -- SW_RESET"); |
whismanoid | 0:3edb3708c8c5 | 5355 | cmdLine.serial().printf("\r\n 60 ch=? -- CONFIGn_LATCHED"); |
whismanoid | 0:3edb3708c8c5 | 5356 | cmdLine.serial().printf("\r\n 61 ch=? -- CONFIGn_TRANSPARENT"); |
whismanoid | 0:3edb3708c8c5 | 5357 | cmdLine.serial().printf("\r\n 68 -- CONFIGall_LATCHED"); |
whismanoid | 0:3edb3708c8c5 | 5358 | cmdLine.serial().printf("\r\n 69 -- CONFIGall_TRANSPARENT"); |
whismanoid | 0:3edb3708c8c5 | 5359 | cmdLine.serial().printf("\r\n 70 -- REF_EXT"); |
whismanoid | 0:3edb3708c8c5 | 5360 | cmdLine.serial().printf("\r\n 71 -- REF_2V500"); |
whismanoid | 0:3edb3708c8c5 | 5361 | cmdLine.serial().printf("\r\n 72 -- REF_2V048"); |
whismanoid | 0:3edb3708c8c5 | 5362 | cmdLine.serial().printf("\r\n 73 -- REF_4V096"); |
whismanoid | 0:3edb3708c8c5 | 5363 | cmdLine.serial().printf("\r\n 74 -- REF_AlwaysOn_EXT"); |
whismanoid | 0:3edb3708c8c5 | 5364 | cmdLine.serial().printf("\r\n 75 -- REF_AlwaysOn_2V500"); |
whismanoid | 0:3edb3708c8c5 | 5365 | cmdLine.serial().printf("\r\n 76 -- REF_AlwaysOn_2V048"); |
whismanoid | 0:3edb3708c8c5 | 5366 | cmdLine.serial().printf("\r\n 77 -- REF_AlwaysOn_4V096"); |
whismanoid | 0:3edb3708c8c5 | 5367 | cmdLine.serial().printf("\r\n 80 code=? -- CODEall"); |
whismanoid | 0:3edb3708c8c5 | 5368 | cmdLine.serial().printf("\r\n 81 -- LOADall"); |
whismanoid | 0:3edb3708c8c5 | 5369 | cmdLine.serial().printf("\r\n 82 code=? -- CODEallLOADall"); |
whismanoid | 0:3edb3708c8c5 | 5370 | //cmdLine.serial().printf("\r\n 83 code=? -- CODEallLOADall"); |
whismanoid | 0:3edb3708c8c5 | 5371 | // |
whismanoid | 0:3edb3708c8c5 | 5372 | // Menu @ -- print device configuration |
whismanoid | 0:3edb3708c8c5 | 5373 | cmdLine.serial().printf("\r\n @ -- print MAX5715 configuration"); |
whismanoid | 0:3edb3708c8c5 | 5374 | // |
whismanoid | 0:3edb3708c8c5 | 5375 | // MAX5717 menu function to drive MAX5717_LDACb_Pin LDAC# |
whismanoid | 0:3edb3708c8c5 | 5376 | // Note: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 5377 | cmdLine.serial().printf("\r\n L -- LDAC# pulse LH high LL low"); |
whismanoid | 0:3edb3708c8c5 | 5378 | // MAX5717 menu function to drive MAX5717_CLRb_Pin CLR# |
whismanoid | 0:3edb3708c8c5 | 5379 | cmdLine.serial().printf("\r\n C -- CLR# pulse CH high CL low"); |
whismanoid | 0:3edb3708c8c5 | 5380 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 5381 | // |
whismanoid | 0:3edb3708c8c5 | 5382 | #if APPLICATION_MAX11131 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5383 | // VERIFY: console menu command 0 int16_t MAX11131_ScanRead(void); |
whismanoid | 0:3edb3708c8c5 | 5384 | cmdLine.serial().printf("\r\n 0 n=? -- MAX11131_ScanRead"); |
whismanoid | 0:3edb3708c8c5 | 5385 | // VERIFY: console menu command 1 MAX11131_ScanManual(int channelNumber_0_15, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 5386 | cmdLine.serial().printf("\r\n 1 ch=? pm=? id=? -- MAX11131_ScanManual"); |
whismanoid | 0:3edb3708c8c5 | 5387 | // VERIFY: console menu command 2 int MAX11131_ScanRepeat(uint8_t channelNumber_0_15, uint8_t average_0_4_8_16_32, uint8_t nscan_4_8_12_16, uint8_t PowerManagement_0_2, uint8_t swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 5388 | cmdLine.serial().printf("\r\n 2 ch=? av=? n=? pm=? swcnv=? -- MAX11131_ScanRepeat"); |
whismanoid | 0:3edb3708c8c5 | 5389 | // VERIFY: console menu command 3 MAX11131_ScanStandardInternalClock(int channelNumber_0_15, int average_0_4_8_16_32, int PowerManagement_0_2, int swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 5390 | cmdLine.serial().printf("\r\n 3 ch=? av=? pm=? swcnv=? -- MAX11131_ScanStandardIntClock"); |
whismanoid | 0:3edb3708c8c5 | 5391 | // VERIFY: console menu command 4 MAX11131_ScanStandardExternalClock(int channelNumber_0_15, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 5392 | cmdLine.serial().printf("\r\n 4 ch=? pm=? id=? -- MAX11131_ScanStandardExtClock"); |
whismanoid | 0:3edb3708c8c5 | 5393 | // VERIFY: console menu command 5 MAX11131_ScanUpperInternalClock(int channelNumber_0_15, int average_0_4_8_16_32, int PowerManagement_0_2, int swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 5394 | cmdLine.serial().printf("\r\n 5 ch=? av=? pm=? swcnv=? -- MAX11131_ScanUpperIntClock"); |
whismanoid | 0:3edb3708c8c5 | 5395 | // VERIFY: console menu command 6 MAX11131_ScanUpperExternalClock(int channelNumber_0_15, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 5396 | cmdLine.serial().printf("\r\n 6 ch=? pm=? id=? -- MAX11131_ScanUpperExtClock"); |
whismanoid | 0:3edb3708c8c5 | 5397 | // VERIFY: console menu command 7 MAX11131_ScanCustomInternalClock(int16_t enabledChannelsMask, int average_0_4_8_16_32, int PowerManagement_0_2, int swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 5398 | cmdLine.serial().printf("\r\n 7 enableMask=0xffff av=? pm=? swcnv=? -- MAX11131_ScanCustomIntClock"); |
whismanoid | 0:3edb3708c8c5 | 5399 | // VERIFY: console menu command 8 MAX11131_ScanCustomExternalClock(int16_t enabledChannelsMask, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 5400 | cmdLine.serial().printf("\r\n 8 enableMask=0xffff pm=0 id=1 -- MAX11131_ScanCustomExtClock"); |
whismanoid | 0:3edb3708c8c5 | 5401 | // VERIFY: console menu command 9 MAX11131_ScanSampleSetExternalClock(uint8_t enabledChannelsPatternLength_1_256, int16_t enabledChannelsPattern[], int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 5402 | cmdLine.serial().printf("\r\n 9 channelsPattern... pm=? id=? | len=? -- MAX11131_ScanSampleSetExtClock"); |
whismanoid | 0:3edb3708c8c5 | 5403 | cmdLine.serial().printf("\r\n @ -- print MAX11131 configuration"); |
whismanoid | 0:3edb3708c8c5 | 5404 | cmdLine.serial().printf("\r\n ISc) IUc) IBc) IRc) reconfigure channel single-ended/unipolar/bipolar/range"); |
whismanoid | 0:3edb3708c8c5 | 5405 | // cmdLine.serial().printf("\r\n & -- MAX11131_Example_ScanManual"); |
whismanoid | 0:3edb3708c8c5 | 5406 | // Note: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 5407 | #endif // APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 5408 | // |
whismanoid | 0:3edb3708c8c5 | 5409 | #if APPLICATION_MAX5171 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5410 | // TODO1: MAX5171 main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5411 | cmdLine.serial().printf("\r\n 0 code=? -- CODE"); |
whismanoid | 0:3edb3708c8c5 | 5412 | cmdLine.serial().printf("\r\n 4 code=? -- CODE_LOAD"); |
whismanoid | 0:3edb3708c8c5 | 5413 | cmdLine.serial().printf("\r\n 8 -- LOAD"); |
whismanoid | 0:3edb3708c8c5 | 5414 | cmdLine.serial().printf("\r\n c -- NOP"); |
whismanoid | 0:3edb3708c8c5 | 5415 | cmdLine.serial().printf("\r\n d -- SHUTDOWN"); |
whismanoid | 0:3edb3708c8c5 | 5416 | cmdLine.serial().printf("\r\n e0 -- UPO_LOW"); |
whismanoid | 0:3edb3708c8c5 | 5417 | cmdLine.serial().printf("\r\n e8 -- UPO_HIGH"); |
whismanoid | 0:3edb3708c8c5 | 5418 | cmdLine.serial().printf("\r\n f0 -- MODE1_DOUT_SCLK_RISING_EDGE"); |
whismanoid | 0:3edb3708c8c5 | 5419 | cmdLine.serial().printf("\r\n f8 -- MODE0_DOUT_SCLK_FALLING_EDGE"); |
whismanoid | 0:3edb3708c8c5 | 5420 | // Note: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 5421 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 5422 | // |
whismanoid | 0:3edb3708c8c5 | 5423 | #if APPLICATION_MAX11410 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5424 | // TODO1: MAX11410 main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5425 | cmdLine.serial().printf("\r\n w reg=? data=? -- write register"); |
whismanoid | 0:3edb3708c8c5 | 5426 | cmdLine.serial().printf("\r\n r reg=? -- read register"); |
whismanoid | 0:3edb3708c8c5 | 5427 | cmdLine.serial().printf("\r\n TC -- thermocouple config"); |
whismanoid | 0:3edb3708c8c5 | 5428 | cmdLine.serial().printf("\r\n T -- RTD measurement"); |
whismanoid | 0:3edb3708c8c5 | 5429 | cmdLine.serial().printf("\r\n RC -- thermocouple config"); |
whismanoid | 0:3edb3708c8c5 | 5430 | cmdLine.serial().printf("\r\n R -- RTD measurement"); |
whismanoid | 0:3edb3708c8c5 | 5431 | // Note: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 5432 | #endif // APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 5433 | // |
whismanoid | 0:3edb3708c8c5 | 5434 | #if APPLICATION_MAX12345 // main_menu_help |
whismanoid | 0:3edb3708c8c5 | 5435 | cmdLine.serial().printf("\r\n 0 -- something"); |
whismanoid | 0:3edb3708c8c5 | 5436 | cmdLine.serial().printf("\r\n 1 -- something"); |
whismanoid | 0:3edb3708c8c5 | 5437 | cmdLine.serial().printf("\r\n 2 -- something"); |
whismanoid | 0:3edb3708c8c5 | 5438 | cmdLine.serial().printf("\r\n A -- something"); |
whismanoid | 0:3edb3708c8c5 | 5439 | cmdLine.serial().printf("\r\n B -- something"); |
whismanoid | 0:3edb3708c8c5 | 5440 | cmdLine.serial().printf("\r\n C -- something"); |
whismanoid | 0:3edb3708c8c5 | 5441 | // Note: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 5442 | #endif // APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 5443 | // |
whismanoid | 0:3edb3708c8c5 | 5444 | } |
whismanoid | 0:3edb3708c8c5 | 5445 | |
whismanoid | 0:3edb3708c8c5 | 5446 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 5447 | // main menu command-line parser |
whismanoid | 0:3edb3708c8c5 | 5448 | // invoked by CmdLine::append(char ch) or CmdLine::idleAppendIfReadable() |
whismanoid | 0:3edb3708c8c5 | 5449 | #if USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 5450 | void main_menu_onEOLcommandParser(CmdLine & cmdLine) |
whismanoid | 0:3edb3708c8c5 | 5451 | { |
whismanoid | 0:3edb3708c8c5 | 5452 | // DIAGNOSTIC: print line buffer |
whismanoid | 0:3edb3708c8c5 | 5453 | //~ cmdLine.serial().printf("\r\nmain_menu_onEOLcommandParser: ~%s~\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 5454 | // |
whismanoid | 0:3edb3708c8c5 | 5455 | switch (cmdLine[0]) |
whismanoid | 0:3edb3708c8c5 | 5456 | { |
whismanoid | 0:3edb3708c8c5 | 5457 | case '?': |
whismanoid | 0:3edb3708c8c5 | 5458 | main_menu_status(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5459 | main_menu_help(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5460 | // print command prompt |
whismanoid | 0:3edb3708c8c5 | 5461 | //cmdLine.serial().printf("\r\n>"); |
whismanoid | 0:3edb3708c8c5 | 5462 | break; |
whismanoid | 0:3edb3708c8c5 | 5463 | case '\r': case '\n': // ignore blank line |
whismanoid | 0:3edb3708c8c5 | 5464 | case '\0': // ignore empty line |
whismanoid | 0:3edb3708c8c5 | 5465 | case '#': // ignore comment line |
whismanoid | 0:3edb3708c8c5 | 5466 | // # -- lines beginning with # are comments |
whismanoid | 0:3edb3708c8c5 | 5467 | main_menu_status(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5468 | //~ main_menu_help(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5469 | // print command prompt |
whismanoid | 0:3edb3708c8c5 | 5470 | //cmdLine.serial().printf("\r\n>"); |
whismanoid | 0:3edb3708c8c5 | 5471 | break; |
whismanoid | 0:3edb3708c8c5 | 5472 | #if ECHO_EOF_ON_EOL |
whismanoid | 0:3edb3708c8c5 | 5473 | case '\x04': // Unicode (U+0004) EOT END OF TRANSMISSION = CTRL+D as EOF end of file |
whismanoid | 0:3edb3708c8c5 | 5474 | cmdLine.serial().printf("\x04"); // immediately echo EOF for test scripting |
whismanoid | 0:3edb3708c8c5 | 5475 | diagnostic_led_EOF(); |
whismanoid | 0:3edb3708c8c5 | 5476 | break; |
whismanoid | 0:3edb3708c8c5 | 5477 | case '\x1a': // Unicode (U+001A) SUB SUBSTITUTE = CTRL+Z as EOF end of file |
whismanoid | 0:3edb3708c8c5 | 5478 | cmdLine.serial().printf("\x1a"); // immediately echo EOF for test scripting |
whismanoid | 0:3edb3708c8c5 | 5479 | diagnostic_led_EOF(); |
whismanoid | 0:3edb3708c8c5 | 5480 | break; |
whismanoid | 0:3edb3708c8c5 | 5481 | #endif |
whismanoid | 0:3edb3708c8c5 | 5482 | #if APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 5483 | case '.': |
whismanoid | 0:3edb3708c8c5 | 5484 | { |
whismanoid | 0:3edb3708c8c5 | 5485 | // . -- SelfTest |
whismanoid | 0:3edb3708c8c5 | 5486 | cmdLine.serial().printf("SelfTest()"); |
whismanoid | 0:3edb3708c8c5 | 5487 | SelfTest(cmdLine); |
whismanoid | 0:3edb3708c8c5 | 5488 | } |
whismanoid | 0:3edb3708c8c5 | 5489 | break; |
whismanoid | 0:3edb3708c8c5 | 5490 | case '%': |
whismanoid | 0:3edb3708c8c5 | 5491 | { |
whismanoid | 0:3edb3708c8c5 | 5492 | // TODO: consolidate "Arduino Pins Monitor" under '%' submenu -- APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 5493 | // % standardize diagnostic commands |
whismanoid | 0:3edb3708c8c5 | 5494 | // %Hpin -- digital output high |
whismanoid | 0:3edb3708c8c5 | 5495 | // %Lpin -- digital output low |
whismanoid | 0:3edb3708c8c5 | 5496 | // %?pin -- digital input |
whismanoid | 0:3edb3708c8c5 | 5497 | // %A %Apin -- analog input |
whismanoid | 0:3edb3708c8c5 | 5498 | // %Ppin df=xx -- pwm output |
whismanoid | 0:3edb3708c8c5 | 5499 | // %Wpin -- measure high pulsewidth input in usec |
whismanoid | 0:3edb3708c8c5 | 5500 | // %wpin -- measure low pulsewidth input in usec |
whismanoid | 0:3edb3708c8c5 | 5501 | // %I... -- I2C diagnostics |
whismanoid | 0:3edb3708c8c5 | 5502 | // %IP -- I2C probe |
whismanoid | 0:3edb3708c8c5 | 5503 | // %IC scl=100khz ADDR=? -- I2C configure |
whismanoid | 0:3edb3708c8c5 | 5504 | // %IW byte byte ... byte RD=? ADDR=0x -- write |
whismanoid | 0:3edb3708c8c5 | 5505 | // %IR ADDR=? RD=? -- read |
whismanoid | 0:3edb3708c8c5 | 5506 | // %I^ cmd=? -- i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5507 | // %S... -- SPI diagnostics |
whismanoid | 0:3edb3708c8c5 | 5508 | // %SC sclk=1Mhz -- SPI configure |
whismanoid | 0:3edb3708c8c5 | 5509 | // %SW -- write (write and read) |
whismanoid | 0:3edb3708c8c5 | 5510 | // %SR -- read (alias for %SW because SPI always write and read) |
whismanoid | 0:3edb3708c8c5 | 5511 | // A-Z,a-z,0-9 reserved for application use |
whismanoid | 0:3edb3708c8c5 | 5512 | // |
whismanoid | 0:3edb3708c8c5 | 5513 | // get pinIndex from cmdLine[2] |
whismanoid | 0:3edb3708c8c5 | 5514 | //int pinIndex = cmdLine[2]; |
whismanoid | 0:3edb3708c8c5 | 5515 | // *** warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith] |
whismanoid | 0:3edb3708c8c5 | 5516 | //int pinIndex = strtoul((char *)((void *)(cmdLine.str()) + 2), NULL, 10); // strtol(str, NULL, 10): get decimal value |
whismanoid | 0:3edb3708c8c5 | 5517 | // ^ |
whismanoid | 0:3edb3708c8c5 | 5518 | char strPinIndex[3]; |
whismanoid | 0:3edb3708c8c5 | 5519 | strPinIndex[0] = cmdLine[2]; |
whismanoid | 0:3edb3708c8c5 | 5520 | strPinIndex[1] = cmdLine[3]; |
whismanoid | 0:3edb3708c8c5 | 5521 | strPinIndex[2] = '\0'; |
whismanoid | 0:3edb3708c8c5 | 5522 | int pinIndex = strtoul(strPinIndex, NULL, 10); // strtol(str, NULL, 10): get decimal value |
whismanoid | 0:3edb3708c8c5 | 5523 | //cmdLine.serial().printf(" pinIndex=%d ", pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5524 | // |
whismanoid | 0:3edb3708c8c5 | 5525 | // get next character |
whismanoid | 0:3edb3708c8c5 | 5526 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 5527 | { |
whismanoid | 0:3edb3708c8c5 | 5528 | #if HAS_digitalInOuts |
whismanoid | 0:3edb3708c8c5 | 5529 | case 'H': case 'h': |
whismanoid | 0:3edb3708c8c5 | 5530 | { |
whismanoid | 0:3edb3708c8c5 | 5531 | // %Hpin -- digital output high |
whismanoid | 0:3edb3708c8c5 | 5532 | #if ARDUINO_STYLE |
whismanoid | 0:3edb3708c8c5 | 5533 | pinMode(pinIndex, OUTPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5 |
whismanoid | 0:3edb3708c8c5 | 5534 | digitalWrite(pinIndex, HIGH); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5 |
whismanoid | 0:3edb3708c8c5 | 5535 | #else |
whismanoid | 0:3edb3708c8c5 | 5536 | DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5537 | digitalInOutPin.output(); |
whismanoid | 0:3edb3708c8c5 | 5538 | digitalInOutPin.write(1); |
whismanoid | 0:3edb3708c8c5 | 5539 | #endif |
whismanoid | 0:3edb3708c8c5 | 5540 | cmdLine.serial().printf(" digitalInOutPin %d Output High ", pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5541 | } |
whismanoid | 0:3edb3708c8c5 | 5542 | break; |
whismanoid | 0:3edb3708c8c5 | 5543 | case 'L': case 'l': |
whismanoid | 0:3edb3708c8c5 | 5544 | { |
whismanoid | 0:3edb3708c8c5 | 5545 | // %Lpin -- digital output low |
whismanoid | 0:3edb3708c8c5 | 5546 | #if ARDUINO_STYLE |
whismanoid | 0:3edb3708c8c5 | 5547 | pinMode(pinIndex, OUTPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5 |
whismanoid | 0:3edb3708c8c5 | 5548 | digitalWrite(pinIndex, LOW); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5 |
whismanoid | 0:3edb3708c8c5 | 5549 | #else |
whismanoid | 0:3edb3708c8c5 | 5550 | DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5551 | digitalInOutPin.output(); |
whismanoid | 0:3edb3708c8c5 | 5552 | digitalInOutPin.write(0); |
whismanoid | 0:3edb3708c8c5 | 5553 | #endif |
whismanoid | 0:3edb3708c8c5 | 5554 | cmdLine.serial().printf(" digitalInOutPin %d Output Low ", pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5555 | } |
whismanoid | 0:3edb3708c8c5 | 5556 | break; |
whismanoid | 0:3edb3708c8c5 | 5557 | case '?': |
whismanoid | 0:3edb3708c8c5 | 5558 | { |
whismanoid | 0:3edb3708c8c5 | 5559 | // %?pin -- digital input |
whismanoid | 0:3edb3708c8c5 | 5560 | #if ARDUINO_STYLE |
whismanoid | 0:3edb3708c8c5 | 5561 | pinMode(pinIndex, INPUT); // digital pins 0, 1, 2, .. 13, analog input pins A0, A1, .. A5 |
whismanoid | 0:3edb3708c8c5 | 5562 | #else |
whismanoid | 0:3edb3708c8c5 | 5563 | DigitalInOut& digitalInOutPin = find_digitalInOutPin(pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5564 | digitalInOutPin.input(); |
whismanoid | 0:3edb3708c8c5 | 5565 | #endif |
whismanoid | 0:3edb3708c8c5 | 5566 | microUSBserial.printf(" digitalInOutPin %d Input ", pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5567 | #if ARDUINO_STYLE |
whismanoid | 0:3edb3708c8c5 | 5568 | int value = digitalRead(pinIndex); |
whismanoid | 0:3edb3708c8c5 | 5569 | #else |
whismanoid | 0:3edb3708c8c5 | 5570 | int value = digitalInOutPin.read(); |
whismanoid | 0:3edb3708c8c5 | 5571 | #endif |
whismanoid | 0:3edb3708c8c5 | 5572 | cmdLine.serial().printf("%d ", value); |
whismanoid | 0:3edb3708c8c5 | 5573 | } |
whismanoid | 0:3edb3708c8c5 | 5574 | break; |
whismanoid | 0:3edb3708c8c5 | 5575 | #endif |
whismanoid | 0:3edb3708c8c5 | 5576 | // |
whismanoid | 0:3edb3708c8c5 | 5577 | #if HAS_analogIns |
whismanoid | 0:3edb3708c8c5 | 5578 | case 'A': case 'a': |
whismanoid | 0:3edb3708c8c5 | 5579 | { |
whismanoid | 0:3edb3708c8c5 | 5580 | // %A %Apin -- analog input |
whismanoid | 0:3edb3708c8c5 | 5581 | #if analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5582 | // Platform board uses AIN4,AIN5,.. as high range of AIN0,AIN1,.. |
whismanoid | 0:3edb3708c8c5 | 5583 | for (int pinIndex = 0; pinIndex < 2; pinIndex++) |
whismanoid | 0:3edb3708c8c5 | 5584 | { |
whismanoid | 0:3edb3708c8c5 | 5585 | int cPinIndex = '0' + pinIndex; |
whismanoid | 0:3edb3708c8c5 | 5586 | AnalogIn& analogInPin = find_analogInPin(cPinIndex); |
whismanoid | 0:3edb3708c8c5 | 5587 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex]; |
whismanoid | 0:3edb3708c8c5 | 5588 | float normValue_0_1 = analogInPin.read(); |
whismanoid | 0:3edb3708c8c5 | 5589 | // |
whismanoid | 0:3edb3708c8c5 | 5590 | int pinIndexH = pinIndex + 4; |
whismanoid | 0:3edb3708c8c5 | 5591 | int cPinIndexH = '0' + pinIndexH; |
whismanoid | 0:3edb3708c8c5 | 5592 | AnalogIn& analogInPinH = find_analogInPin(cPinIndexH); |
whismanoid | 0:3edb3708c8c5 | 5593 | float adc_full_scale_voltageH = analogInPin_fullScaleVoltage[pinIndexH]; |
whismanoid | 0:3edb3708c8c5 | 5594 | float normValueH_0_1 = analogInPinH.read(); |
whismanoid | 0:3edb3708c8c5 | 5595 | // |
whismanoid | 0:3edb3708c8c5 | 5596 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV AIN%c = %7.3f%% = %1.3fV \r\n", |
whismanoid | 0:3edb3708c8c5 | 5597 | cPinIndex, |
whismanoid | 0:3edb3708c8c5 | 5598 | normValue_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 5599 | normValue_0_1 * adc_full_scale_voltage, |
whismanoid | 0:3edb3708c8c5 | 5600 | cPinIndexH, |
whismanoid | 0:3edb3708c8c5 | 5601 | normValueH_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 5602 | normValueH_0_1 * adc_full_scale_voltageH |
whismanoid | 0:3edb3708c8c5 | 5603 | ); |
whismanoid | 0:3edb3708c8c5 | 5604 | } |
whismanoid | 0:3edb3708c8c5 | 5605 | for (int pinIndex = 2; pinIndex < 4; pinIndex++) |
whismanoid | 0:3edb3708c8c5 | 5606 | { |
whismanoid | 0:3edb3708c8c5 | 5607 | int cPinIndex = '0' + pinIndex; |
whismanoid | 0:3edb3708c8c5 | 5608 | AnalogIn& analogInPin = find_analogInPin(cPinIndex); |
whismanoid | 0:3edb3708c8c5 | 5609 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex]; |
whismanoid | 0:3edb3708c8c5 | 5610 | float normValue_0_1 = analogInPin.read(); |
whismanoid | 0:3edb3708c8c5 | 5611 | // |
whismanoid | 0:3edb3708c8c5 | 5612 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV\r\n", |
whismanoid | 0:3edb3708c8c5 | 5613 | cPinIndex, |
whismanoid | 0:3edb3708c8c5 | 5614 | normValue_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 5615 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:3edb3708c8c5 | 5616 | ); |
whismanoid | 0:3edb3708c8c5 | 5617 | } |
whismanoid | 0:3edb3708c8c5 | 5618 | #else // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5619 | // Platform board uses simple analog inputs |
whismanoid | 0:3edb3708c8c5 | 5620 | // assume standard Arduino analog inputs A0-A5 |
whismanoid | 0:3edb3708c8c5 | 5621 | for (int pinIndex = 0; pinIndex < 6; pinIndex++) |
whismanoid | 0:3edb3708c8c5 | 5622 | { |
whismanoid | 0:3edb3708c8c5 | 5623 | int cPinIndex = '0' + pinIndex; |
whismanoid | 0:3edb3708c8c5 | 5624 | AnalogIn& analogInPin = find_analogInPin(cPinIndex); |
whismanoid | 0:3edb3708c8c5 | 5625 | float adc_full_scale_voltage = analogInPin_fullScaleVoltage[pinIndex]; |
whismanoid | 0:3edb3708c8c5 | 5626 | float normValue_0_1 = analogInPin.read(); |
whismanoid | 0:3edb3708c8c5 | 5627 | // |
whismanoid | 0:3edb3708c8c5 | 5628 | cmdLine.serial().printf("AIN%c = %7.3f%% = %1.3fV\r\n", |
whismanoid | 0:3edb3708c8c5 | 5629 | cPinIndex, |
whismanoid | 0:3edb3708c8c5 | 5630 | normValue_0_1 * 100.0, |
whismanoid | 0:3edb3708c8c5 | 5631 | normValue_0_1 * adc_full_scale_voltage |
whismanoid | 0:3edb3708c8c5 | 5632 | ); |
whismanoid | 0:3edb3708c8c5 | 5633 | } |
whismanoid | 0:3edb3708c8c5 | 5634 | #endif // analogIn4_IS_HIGH_RANGE_OF_analogIn0 |
whismanoid | 0:3edb3708c8c5 | 5635 | } |
whismanoid | 0:3edb3708c8c5 | 5636 | break; |
whismanoid | 0:3edb3708c8c5 | 5637 | #endif |
whismanoid | 0:3edb3708c8c5 | 5638 | // |
whismanoid | 0:3edb3708c8c5 | 5639 | #if HAS_SPI2_MAX541 |
whismanoid | 0:3edb3708c8c5 | 5640 | case 'D': case 'd': |
whismanoid | 0:3edb3708c8c5 | 5641 | { |
whismanoid | 0:3edb3708c8c5 | 5642 | // %D -- DAC output MAX541 (SPI2) -- need cmdLine.parse_float(voltageV) |
whismanoid | 0:3edb3708c8c5 | 5643 | // MAX541 max541(spi2_max541, spi2_max541_cs); |
whismanoid | 0:3edb3708c8c5 | 5644 | float voltageV = max541.Get_Voltage(); |
whismanoid | 0:3edb3708c8c5 | 5645 | // if (cmdLine[2] == '+') { |
whismanoid | 0:3edb3708c8c5 | 5646 | // // %D+ |
whismanoid | 0:3edb3708c8c5 | 5647 | // voltageV = voltageV * 1.25f; |
whismanoid | 0:3edb3708c8c5 | 5648 | // if (voltageV >= max541.VRef) voltageV = max541.VRef; |
whismanoid | 0:3edb3708c8c5 | 5649 | // SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 5650 | // } |
whismanoid | 0:3edb3708c8c5 | 5651 | // else if (cmdLine[2] == '-') { |
whismanoid | 0:3edb3708c8c5 | 5652 | // // %D- |
whismanoid | 0:3edb3708c8c5 | 5653 | // voltageV = voltageV * 0.75f; |
whismanoid | 0:3edb3708c8c5 | 5654 | // if (voltageV < 0.1f) voltageV = 0.1f; |
whismanoid | 0:3edb3708c8c5 | 5655 | // SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 5656 | // } |
whismanoid | 0:3edb3708c8c5 | 5657 | if (cmdLine.parse_float("V", voltageV)) |
whismanoid | 0:3edb3708c8c5 | 5658 | { |
whismanoid | 0:3edb3708c8c5 | 5659 | // %D V=1.234 -- set voltage |
whismanoid | 0:3edb3708c8c5 | 5660 | max541.Set_Voltage(voltageV); |
whismanoid | 0:3edb3708c8c5 | 5661 | } |
whismanoid | 0:3edb3708c8c5 | 5662 | else if (cmdLine.parse_float("TEST", voltageV)) |
whismanoid | 0:3edb3708c8c5 | 5663 | { |
whismanoid | 0:3edb3708c8c5 | 5664 | // %D TEST=1.234 -- set voltage and compare with AIN0 |
whismanoid | 0:3edb3708c8c5 | 5665 | SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 5666 | } |
whismanoid | 0:3edb3708c8c5 | 5667 | else if (cmdLine.parse_float("CAL", voltageV)) |
whismanoid | 0:3edb3708c8c5 | 5668 | { |
whismanoid | 0:3edb3708c8c5 | 5669 | // %D CAL=1.234 -- calibrate VRef and compare with AIN0 |
whismanoid | 0:3edb3708c8c5 | 5670 | |
whismanoid | 0:3edb3708c8c5 | 5671 | max541.Set_Code(0x8000); // we don't know the fullscale voltage yet, so set code to midscale |
whismanoid | 0:3edb3708c8c5 | 5672 | double max541_midscale_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 5673 | const int average_count = 100; |
whismanoid | 0:3edb3708c8c5 | 5674 | const double average_K = 0.25; |
whismanoid | 0:3edb3708c8c5 | 5675 | for (int count = 0; count < average_count; count++) { |
whismanoid | 0:3edb3708c8c5 | 5676 | double measurement_V = analogInPin_fullScaleVoltage[4] * analogIn4.read(); // TARGET_MAX32630 J1.5 AIN_4 = AIN0 / 5.0 fullscale is 6.0V |
whismanoid | 0:3edb3708c8c5 | 5677 | max541_midscale_V = ((1 - average_K) * max541_midscale_V) + (average_K * measurement_V); |
whismanoid | 0:3edb3708c8c5 | 5678 | } |
whismanoid | 0:3edb3708c8c5 | 5679 | max541.VRef = 2.0 * max541_midscale_V; |
whismanoid | 0:3edb3708c8c5 | 5680 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 5681 | "\r\n MAX541 midscale = %1.3fV, so fullscale = %1.3fV", |
whismanoid | 0:3edb3708c8c5 | 5682 | max541_midscale_V, max541.VRef); |
whismanoid | 0:3edb3708c8c5 | 5683 | // Detect whether MAX541 is really connected to MAX32625MBED.AIN0/AIN4 |
whismanoid | 0:3edb3708c8c5 | 5684 | voltageV = 1.0f; |
whismanoid | 0:3edb3708c8c5 | 5685 | SelfTest_MAX541_Voltage(cmdLine, max541, voltageV); |
whismanoid | 0:3edb3708c8c5 | 5686 | } |
whismanoid | 0:3edb3708c8c5 | 5687 | else { |
whismanoid | 0:3edb3708c8c5 | 5688 | // %D -- print MAX541 DAC status |
whismanoid | 0:3edb3708c8c5 | 5689 | cmdLine.serial().printf("MAX541 code=0x%4.4x = %1.3fV VRef=%1.3fV\r\n", |
whismanoid | 0:3edb3708c8c5 | 5690 | max541.Get_Code(), max541.Get_Voltage(), max541.VRef); |
whismanoid | 0:3edb3708c8c5 | 5691 | } |
whismanoid | 0:3edb3708c8c5 | 5692 | } |
whismanoid | 0:3edb3708c8c5 | 5693 | break; |
whismanoid | 0:3edb3708c8c5 | 5694 | #endif |
whismanoid | 0:3edb3708c8c5 | 5695 | |
whismanoid | 0:3edb3708c8c5 | 5696 | // |
whismanoid | 0:3edb3708c8c5 | 5697 | #if HAS_pwmDrivers |
whismanoid | 0:3edb3708c8c5 | 5698 | case 'P': case 'p': |
whismanoid | 0:3edb3708c8c5 | 5699 | { |
whismanoid | 0:3edb3708c8c5 | 5700 | // %Ppin df=xx -- pwm output |
whismanoid | 0:3edb3708c8c5 | 5701 | } |
whismanoid | 0:3edb3708c8c5 | 5702 | break; |
whismanoid | 0:3edb3708c8c5 | 5703 | #endif |
whismanoid | 0:3edb3708c8c5 | 5704 | // |
whismanoid | 0:3edb3708c8c5 | 5705 | #if 0 // HAS_pwmDrivers |
whismanoid | 0:3edb3708c8c5 | 5706 | case 'W': |
whismanoid | 0:3edb3708c8c5 | 5707 | case 'w': |
whismanoid | 0:3edb3708c8c5 | 5708 | // %Wpin -- measure high pulsewidth input in usec |
whismanoid | 0:3edb3708c8c5 | 5709 | // %wpin -- measure low pulsewidth input in usec |
whismanoid | 0:3edb3708c8c5 | 5710 | break; |
whismanoid | 0:3edb3708c8c5 | 5711 | #endif |
whismanoid | 0:3edb3708c8c5 | 5712 | // |
whismanoid | 0:3edb3708c8c5 | 5713 | #if HAS_I2C // SUPPORT_I2C |
whismanoid | 0:3edb3708c8c5 | 5714 | case 'I': case 'i': |
whismanoid | 0:3edb3708c8c5 | 5715 | // %I... -- I2C diagnostics |
whismanoid | 0:3edb3708c8c5 | 5716 | // %IP -- I2C probe |
whismanoid | 0:3edb3708c8c5 | 5717 | // %IC scl=100khz ADDR=? -- I2C configure |
whismanoid | 0:3edb3708c8c5 | 5718 | // %IW byte byte ... byte RD=? ADDR=0x -- write |
whismanoid | 0:3edb3708c8c5 | 5719 | // %IR ADDR=? RD=? -- read |
whismanoid | 0:3edb3708c8c5 | 5720 | // %I^ cmd=? -- i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5721 | // get next character |
whismanoid | 0:3edb3708c8c5 | 5722 | // TODO: parse cmdLine arg (ADDR=\d+)? --> g_I2C_deviceAddress7 |
whismanoid | 0:3edb3708c8c5 | 5723 | cmdLine.parse_byte_hex("ADDR", g_I2C_deviceAddress7); |
whismanoid | 0:3edb3708c8c5 | 5724 | // TODO: parse cmdLine arg (RD=\d)? --> g_I2C_read_count |
whismanoid | 0:3edb3708c8c5 | 5725 | g_I2C_read_count = 0; // read count must be reset every command |
whismanoid | 0:3edb3708c8c5 | 5726 | cmdLine.parse_byte_dec("RD", g_I2C_read_count); |
whismanoid | 0:3edb3708c8c5 | 5727 | // TODO: parse cmdLine arg (CMD=\d)? --> g_I2C_command_regAddress |
whismanoid | 0:3edb3708c8c5 | 5728 | cmdLine.parse_byte_hex("CMD", g_I2C_command_regAddress); |
whismanoid | 0:3edb3708c8c5 | 5729 | switch (cmdLine[2]) |
whismanoid | 0:3edb3708c8c5 | 5730 | { |
whismanoid | 0:3edb3708c8c5 | 5731 | case 'P': case 'p': |
whismanoid | 0:3edb3708c8c5 | 5732 | { |
whismanoid | 0:3edb3708c8c5 | 5733 | // %IP -- I2C probe |
whismanoid | 0:3edb3708c8c5 | 5734 | HuntAttachedI2CDevices(cmdLine, 0x03, 0x77); |
whismanoid | 0:3edb3708c8c5 | 5735 | } |
whismanoid | 0:3edb3708c8c5 | 5736 | break; |
whismanoid | 0:3edb3708c8c5 | 5737 | case 'C': case 'c': |
whismanoid | 0:3edb3708c8c5 | 5738 | { |
whismanoid | 0:3edb3708c8c5 | 5739 | bool isUpdatedI2CConfig = false; |
whismanoid | 0:3edb3708c8c5 | 5740 | // %IC scl=100khz ADDR=? -- I2C configure |
whismanoid | 0:3edb3708c8c5 | 5741 | // parse cmdLine arg (SCL=\d+(kHZ|MHZ)?)? --> g_I2C_SCL_Hz |
whismanoid | 0:3edb3708c8c5 | 5742 | if (cmdLine.parse_frequency_Hz("SCL", g_I2C_SCL_Hz)) |
whismanoid | 0:3edb3708c8c5 | 5743 | { |
whismanoid | 0:3edb3708c8c5 | 5744 | isUpdatedI2CConfig = true; |
whismanoid | 0:3edb3708c8c5 | 5745 | // TODO1: validate g_I2C_SCL_Hz against system clock frequency F_CPU |
whismanoid | 0:3edb3708c8c5 | 5746 | if (g_I2C_SCL_Hz > limit_max_I2C_SCL_Hz) |
whismanoid | 0:3edb3708c8c5 | 5747 | { |
whismanoid | 0:3edb3708c8c5 | 5748 | g_I2C_SCL_Hz = limit_max_I2C_SCL_Hz; |
whismanoid | 0:3edb3708c8c5 | 5749 | } |
whismanoid | 0:3edb3708c8c5 | 5750 | if (g_I2C_SCL_Hz < limit_min_I2C_SCL_Hz) |
whismanoid | 0:3edb3708c8c5 | 5751 | { |
whismanoid | 0:3edb3708c8c5 | 5752 | g_I2C_SCL_Hz = limit_min_I2C_SCL_Hz; |
whismanoid | 0:3edb3708c8c5 | 5753 | } |
whismanoid | 0:3edb3708c8c5 | 5754 | } |
whismanoid | 0:3edb3708c8c5 | 5755 | if (isUpdatedI2CConfig) |
whismanoid | 0:3edb3708c8c5 | 5756 | { |
whismanoid | 0:3edb3708c8c5 | 5757 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(...) |
whismanoid | 0:3edb3708c8c5 | 5758 | I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 5759 | i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 5760 | i2cMaster.start(); |
whismanoid | 0:3edb3708c8c5 | 5761 | i2cMaster.stop(); |
whismanoid | 0:3edb3708c8c5 | 5762 | i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 5763 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 5764 | "\r\n %%IC ADDR=0x%2.2x=(0x%2.2x>>1) SCL=%d=%1.3fkHz -- I2C config", |
whismanoid | 0:3edb3708c8c5 | 5765 | g_I2C_deviceAddress7, (g_I2C_deviceAddress7 << 1), g_I2C_SCL_Hz, |
whismanoid | 0:3edb3708c8c5 | 5766 | (g_I2C_SCL_Hz / 1000.)); |
whismanoid | 0:3edb3708c8c5 | 5767 | i2cMaster.start(); |
whismanoid | 0:3edb3708c8c5 | 5768 | i2cMaster.stop(); |
whismanoid | 0:3edb3708c8c5 | 5769 | } |
whismanoid | 0:3edb3708c8c5 | 5770 | } |
whismanoid | 0:3edb3708c8c5 | 5771 | break; |
whismanoid | 0:3edb3708c8c5 | 5772 | case 'W': case 'w': |
whismanoid | 0:3edb3708c8c5 | 5773 | { |
whismanoid | 0:3edb3708c8c5 | 5774 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(...) |
whismanoid | 0:3edb3708c8c5 | 5775 | I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 5776 | i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 5777 | // %IW byte byte ... byte RD=? ADDR=0x -- write |
whismanoid | 0:3edb3708c8c5 | 5778 | // parse cmdLine byte list --> int byteCount; int mosiData[MAX_SPI_BYTE_COUNT]; |
whismanoid | 0:3edb3708c8c5 | 5779 | #define MAX_I2C_BYTE_COUNT 32 |
whismanoid | 0:3edb3708c8c5 | 5780 | size_t byteCount = byteCount; |
whismanoid | 0:3edb3708c8c5 | 5781 | static char mosiData[MAX_I2C_BYTE_COUNT]; |
whismanoid | 0:3edb3708c8c5 | 5782 | static char misoData[MAX_I2C_BYTE_COUNT]; |
whismanoid | 0:3edb3708c8c5 | 5783 | if (cmdLine.parse_byteCount_byteList_hex(byteCount, mosiData, |
whismanoid | 0:3edb3708c8c5 | 5784 | MAX_I2C_BYTE_COUNT)) |
whismanoid | 0:3edb3708c8c5 | 5785 | { |
whismanoid | 0:3edb3708c8c5 | 5786 | // hex dump mosiData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 5787 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 5788 | "\r\nADDR=0x%2.2x=(0x%2.2x>>1) byteCount:%d RD=%d\r\nI2C MOSI->", |
whismanoid | 0:3edb3708c8c5 | 5789 | g_I2C_deviceAddress7, |
whismanoid | 0:3edb3708c8c5 | 5790 | (g_I2C_deviceAddress7 << 1), byteCount, g_I2C_read_count); |
whismanoid | 0:3edb3708c8c5 | 5791 | for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 5792 | { |
whismanoid | 0:3edb3708c8c5 | 5793 | cmdLine.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 5794 | } |
whismanoid | 0:3edb3708c8c5 | 5795 | // |
whismanoid | 0:3edb3708c8c5 | 5796 | // TODO: i2c transfer |
whismanoid | 0:3edb3708c8c5 | 5797 | //const int addr7bit = 0x48; // 7 bit I2C address |
whismanoid | 0:3edb3708c8c5 | 5798 | //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90 |
whismanoid | 0:3edb3708c8c5 | 5799 | // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 5800 | // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5801 | // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 5802 | // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5803 | // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5804 | // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5805 | // /* 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 | 0:3edb3708c8c5 | 5806 | // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More... |
whismanoid | 0:3edb3708c8c5 | 5807 | const int addr8bit = g_I2C_deviceAddress7 << 1; // 8bit I2C address, 0x90 |
whismanoid | 0:3edb3708c8c5 | 5808 | unsigned int misoLength = 0; |
whismanoid | 0:3edb3708c8c5 | 5809 | bool repeated = (g_I2C_read_count > 0); |
whismanoid | 0:3edb3708c8c5 | 5810 | // |
whismanoid | 0:3edb3708c8c5 | 5811 | int writeStatus = i2cMaster.write (addr8bit, mosiData, byteCount, repeated); |
whismanoid | 0:3edb3708c8c5 | 5812 | switch (writeStatus) |
whismanoid | 0:3edb3708c8c5 | 5813 | { |
whismanoid | 0:3edb3708c8c5 | 5814 | case 0: cmdLine.serial().printf(" ack "); break; |
whismanoid | 0:3edb3708c8c5 | 5815 | case 1: cmdLine.serial().printf(" nack "); break; |
whismanoid | 0:3edb3708c8c5 | 5816 | default: cmdLine.serial().printf(" {writeStatus 0x%2.2X} ", |
whismanoid | 0:3edb3708c8c5 | 5817 | writeStatus); |
whismanoid | 0:3edb3708c8c5 | 5818 | } |
whismanoid | 0:3edb3708c8c5 | 5819 | if (repeated) |
whismanoid | 0:3edb3708c8c5 | 5820 | { |
whismanoid | 0:3edb3708c8c5 | 5821 | int readStatus = |
whismanoid | 0:3edb3708c8c5 | 5822 | i2cMaster.read (addr8bit, misoData, g_I2C_read_count, false); |
whismanoid | 0:3edb3708c8c5 | 5823 | switch (readStatus) |
whismanoid | 0:3edb3708c8c5 | 5824 | { |
whismanoid | 0:3edb3708c8c5 | 5825 | case 1: cmdLine.serial().printf(" nack "); break; |
whismanoid | 0:3edb3708c8c5 | 5826 | case 0: cmdLine.serial().printf(" ack "); break; |
whismanoid | 0:3edb3708c8c5 | 5827 | default: cmdLine.serial().printf(" {readStatus 0x%2.2X} ", |
whismanoid | 0:3edb3708c8c5 | 5828 | readStatus); |
whismanoid | 0:3edb3708c8c5 | 5829 | } |
whismanoid | 0:3edb3708c8c5 | 5830 | } |
whismanoid | 0:3edb3708c8c5 | 5831 | // |
whismanoid | 0:3edb3708c8c5 | 5832 | if (misoLength > 0) |
whismanoid | 0:3edb3708c8c5 | 5833 | { |
whismanoid | 0:3edb3708c8c5 | 5834 | // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 5835 | cmdLine.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 5836 | for (unsigned int byteIndex = 0; byteIndex < g_I2C_read_count; |
whismanoid | 0:3edb3708c8c5 | 5837 | byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 5838 | { |
whismanoid | 0:3edb3708c8c5 | 5839 | cmdLine.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 5840 | } |
whismanoid | 0:3edb3708c8c5 | 5841 | } |
whismanoid | 0:3edb3708c8c5 | 5842 | cmdLine.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 5843 | } |
whismanoid | 0:3edb3708c8c5 | 5844 | } |
whismanoid | 0:3edb3708c8c5 | 5845 | break; |
whismanoid | 0:3edb3708c8c5 | 5846 | case 'R': case 'r': |
whismanoid | 0:3edb3708c8c5 | 5847 | { |
whismanoid | 0:3edb3708c8c5 | 5848 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(...) |
whismanoid | 0:3edb3708c8c5 | 5849 | I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 5850 | i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 5851 | // %IR ADDR=? RD=? -- read |
whismanoid | 0:3edb3708c8c5 | 5852 | // TODO: i2c transfer |
whismanoid | 0:3edb3708c8c5 | 5853 | //const int addr7bit = 0x48; // 7 bit I2C address |
whismanoid | 0:3edb3708c8c5 | 5854 | //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90 |
whismanoid | 0:3edb3708c8c5 | 5855 | // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 5856 | // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5857 | // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 5858 | // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5859 | // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5860 | // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5861 | // /* 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 | 0:3edb3708c8c5 | 5862 | // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More... |
whismanoid | 0:3edb3708c8c5 | 5863 | } |
whismanoid | 0:3edb3708c8c5 | 5864 | break; |
whismanoid | 0:3edb3708c8c5 | 5865 | case '^': |
whismanoid | 0:3edb3708c8c5 | 5866 | { |
whismanoid | 0:3edb3708c8c5 | 5867 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(...) |
whismanoid | 0:3edb3708c8c5 | 5868 | I2C i2cMaster(I2C0_SDA, I2C0_SCL); // sda scl TARGET_MAX32635MBED: P1_6, P1_7 Arduino 10-pin header |
whismanoid | 0:3edb3708c8c5 | 5869 | i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 5870 | // %I^ cmd=? -- i2c_smbus_read_word_data |
whismanoid | 0:3edb3708c8c5 | 5871 | // TODO: i2c transfer |
whismanoid | 0:3edb3708c8c5 | 5872 | //const int addr7bit = 0x48; // 7 bit I2C address |
whismanoid | 0:3edb3708c8c5 | 5873 | //const int addr8bit = 0x48 << 1; // 8bit I2C address, 0x90 |
whismanoid | 0:3edb3708c8c5 | 5874 | // /* int */ i2cMaster.read (int addr8bit, char *data, int length, bool repeated=false) // Read from an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 5875 | // /* int */ i2cMaster.read (int ack) // Read a single byte from the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5876 | // /* int */ i2cMaster.write (int addr8bit, const char *data, int length, bool repeated=false) // Write to an I2C slave. |
whismanoid | 0:3edb3708c8c5 | 5877 | // /* int */ i2cMaster.write (int data) // Write single byte out on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5878 | // /* void */ i2cMaster.start (void) // Creates a start condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5879 | // /* void */ i2cMaster.stop (void) // Creates a stop condition on the I2C bus. |
whismanoid | 0:3edb3708c8c5 | 5880 | // /* 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 | 0:3edb3708c8c5 | 5881 | // /* void */ i2cMaster.abort_transfer () // Abort the ongoing I2C transfer. More... |
whismanoid | 0:3edb3708c8c5 | 5882 | } |
whismanoid | 0:3edb3708c8c5 | 5883 | break; |
whismanoid | 0:3edb3708c8c5 | 5884 | } // switch(cmdLine[2]) |
whismanoid | 0:3edb3708c8c5 | 5885 | break; |
whismanoid | 0:3edb3708c8c5 | 5886 | #endif |
whismanoid | 0:3edb3708c8c5 | 5887 | // |
whismanoid | 0:3edb3708c8c5 | 5888 | #if HAS_SPI // SUPPORT_SPI |
whismanoid | 0:3edb3708c8c5 | 5889 | case 'S': case 's': |
whismanoid | 0:3edb3708c8c5 | 5890 | { |
whismanoid | 0:3edb3708c8c5 | 5891 | // %S... -- SPI diagnostics |
whismanoid | 0:3edb3708c8c5 | 5892 | // %SC sclk=1Mhz -- SPI configure |
whismanoid | 0:3edb3708c8c5 | 5893 | // %SW -- write (write and read) |
whismanoid | 0:3edb3708c8c5 | 5894 | // %SR -- read (alias for %SW because SPI always write and read) |
whismanoid | 0:3edb3708c8c5 | 5895 | // |
whismanoid | 0:3edb3708c8c5 | 5896 | // Process arguments SCLK=\d+(kHZ|MHZ) CPOL=\d CPHA=\d |
whismanoid | 0:3edb3708c8c5 | 5897 | bool isUpdatedSPIConfig = false; |
whismanoid | 0:3edb3708c8c5 | 5898 | // parse cmdLine arg (CPOL=\d)? --> g_SPI_dataMode | SPI_MODE2 |
whismanoid | 0:3edb3708c8c5 | 5899 | // parse cmdLine arg (CPHA=\d)? --> g_SPI_dataMode | SPI_MODE1 |
whismanoid | 0:3edb3708c8c5 | 5900 | if (cmdLine.parse_flag("CPOL", g_SPI_dataMode, SPI_MODE2)) |
whismanoid | 0:3edb3708c8c5 | 5901 | { |
whismanoid | 0:3edb3708c8c5 | 5902 | isUpdatedSPIConfig = true; |
whismanoid | 0:3edb3708c8c5 | 5903 | } |
whismanoid | 0:3edb3708c8c5 | 5904 | if (cmdLine.parse_flag("CPHA", g_SPI_dataMode, SPI_MODE1)) |
whismanoid | 0:3edb3708c8c5 | 5905 | { |
whismanoid | 0:3edb3708c8c5 | 5906 | isUpdatedSPIConfig = true; |
whismanoid | 0:3edb3708c8c5 | 5907 | } |
whismanoid | 0:3edb3708c8c5 | 5908 | if (cmdLine.parse_flag("CS", g_SPI_cs_state, 1)) |
whismanoid | 0:3edb3708c8c5 | 5909 | { |
whismanoid | 0:3edb3708c8c5 | 5910 | isUpdatedSPIConfig = true; |
whismanoid | 0:3edb3708c8c5 | 5911 | } |
whismanoid | 0:3edb3708c8c5 | 5912 | // parse cmdLine arg (SCLK=\d+(kHZ|MHZ)?)? --> g_SPI_SCLK_Hz |
whismanoid | 0:3edb3708c8c5 | 5913 | if (cmdLine.parse_frequency_Hz("SCLK", g_SPI_SCLK_Hz)) |
whismanoid | 0:3edb3708c8c5 | 5914 | { |
whismanoid | 0:3edb3708c8c5 | 5915 | isUpdatedSPIConfig = true; |
whismanoid | 0:3edb3708c8c5 | 5916 | // TODO1: validate g_SPI_SCLK_Hz against system clock frequency F_CPU |
whismanoid | 0:3edb3708c8c5 | 5917 | if (g_SPI_SCLK_Hz > limit_max_SPI_SCLK_Hz) |
whismanoid | 0:3edb3708c8c5 | 5918 | { |
whismanoid | 0:3edb3708c8c5 | 5919 | g_SPI_SCLK_Hz = limit_max_SPI_SCLK_Hz; |
whismanoid | 0:3edb3708c8c5 | 5920 | } |
whismanoid | 0:3edb3708c8c5 | 5921 | if (g_SPI_SCLK_Hz < limit_min_SPI_SCLK_Hz) |
whismanoid | 0:3edb3708c8c5 | 5922 | { |
whismanoid | 0:3edb3708c8c5 | 5923 | g_SPI_SCLK_Hz = limit_min_SPI_SCLK_Hz; |
whismanoid | 0:3edb3708c8c5 | 5924 | } |
whismanoid | 0:3edb3708c8c5 | 5925 | } |
whismanoid | 0:3edb3708c8c5 | 5926 | // Update SPI configuration |
whismanoid | 0:3edb3708c8c5 | 5927 | if (isUpdatedSPIConfig) |
whismanoid | 0:3edb3708c8c5 | 5928 | { |
whismanoid | 0:3edb3708c8c5 | 5929 | // %SC sclk=1Mhz -- SPI configure |
whismanoid | 0:3edb3708c8c5 | 5930 | spi_cs = g_SPI_cs_state; |
whismanoid | 0:3edb3708c8c5 | 5931 | spi.format(8,g_SPI_dataMode); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 |
whismanoid | 0:3edb3708c8c5 | 5932 | #if APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 5933 | g_MAX5715_device.spi_frequency(g_SPI_SCLK_Hz); |
whismanoid | 0:3edb3708c8c5 | 5934 | #elif APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 5935 | g_MAX11131_device.spi_frequency(g_SPI_SCLK_Hz); |
whismanoid | 0:3edb3708c8c5 | 5936 | #elif APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 5937 | g_MAX5171_device.spi_frequency(g_SPI_SCLK_Hz); |
whismanoid | 0:3edb3708c8c5 | 5938 | #elif APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 5939 | g_MAX11410_device.spi_frequency(g_SPI_SCLK_Hz); |
whismanoid | 0:3edb3708c8c5 | 5940 | #elif APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 5941 | g_MAX12345_device.spi_frequency(g_SPI_SCLK_Hz); |
whismanoid | 0:3edb3708c8c5 | 5942 | #else |
whismanoid | 0:3edb3708c8c5 | 5943 | spi.frequency(g_SPI_SCLK_Hz); // int SCLK_Hz=1000000 = 1MHz (initial default) |
whismanoid | 0:3edb3708c8c5 | 5944 | #endif |
whismanoid | 0:3edb3708c8c5 | 5945 | // |
whismanoid | 0:3edb3708c8c5 | 5946 | double ideal_divisor = ((double)SystemCoreClock) / g_SPI_SCLK_Hz; |
whismanoid | 0:3edb3708c8c5 | 5947 | int actual_divisor = (int)(ideal_divisor + 0.0); // frequency divisor truncate |
whismanoid | 0:3edb3708c8c5 | 5948 | double actual_SCLK_Hz = SystemCoreClock / actual_divisor; |
whismanoid | 0:3edb3708c8c5 | 5949 | // |
whismanoid | 0:3edb3708c8c5 | 5950 | // 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 | 0:3edb3708c8c5 | 5951 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 5952 | "\r\n %%SC CPOL=%d CPHA=%d CS=%d SCLK=%ld=%1.3fMHz (%1.1fMHz/%1.2f = actual %1.3fMHz) -- SPI config", |
whismanoid | 0:3edb3708c8c5 | 5953 | ((g_SPI_dataMode & SPI_MODE2) ? 1 : 0), |
whismanoid | 0:3edb3708c8c5 | 5954 | ((g_SPI_dataMode & SPI_MODE1) ? 1 : 0), |
whismanoid | 0:3edb3708c8c5 | 5955 | g_SPI_cs_state, |
whismanoid | 0:3edb3708c8c5 | 5956 | g_SPI_SCLK_Hz, |
whismanoid | 0:3edb3708c8c5 | 5957 | (g_SPI_SCLK_Hz / 1000000.), |
whismanoid | 0:3edb3708c8c5 | 5958 | ((double)(SystemCoreClock / 1000000.)), |
whismanoid | 0:3edb3708c8c5 | 5959 | ideal_divisor, |
whismanoid | 0:3edb3708c8c5 | 5960 | (actual_SCLK_Hz / 1000000.) |
whismanoid | 0:3edb3708c8c5 | 5961 | ); |
whismanoid | 0:3edb3708c8c5 | 5962 | } |
whismanoid | 0:3edb3708c8c5 | 5963 | // get next character |
whismanoid | 0:3edb3708c8c5 | 5964 | switch (cmdLine[2]) |
whismanoid | 0:3edb3708c8c5 | 5965 | { |
whismanoid | 0:3edb3708c8c5 | 5966 | case 'C': case 's': |
whismanoid | 0:3edb3708c8c5 | 5967 | // %SC sclk=1Mhz -- SPI configure |
whismanoid | 0:3edb3708c8c5 | 5968 | break; |
whismanoid | 0:3edb3708c8c5 | 5969 | case 'W': case 'R': case 'w': case 'r': |
whismanoid | 0:3edb3708c8c5 | 5970 | { |
whismanoid | 0:3edb3708c8c5 | 5971 | // %SW -- write (write and read) |
whismanoid | 0:3edb3708c8c5 | 5972 | // %SR -- read (alias for %SW because SPI always write and read) |
whismanoid | 0:3edb3708c8c5 | 5973 | // parse cmdLine byte list --> int byteCount; int mosiData[MAX_SPI_BYTE_COUNT]; |
whismanoid | 0:3edb3708c8c5 | 5974 | #define MAX_SPI_BYTE_COUNT 32 |
whismanoid | 0:3edb3708c8c5 | 5975 | size_t byteCount = byteCount; |
whismanoid | 0:3edb3708c8c5 | 5976 | static char mosiData[MAX_SPI_BYTE_COUNT]; |
whismanoid | 0:3edb3708c8c5 | 5977 | static char misoData[MAX_SPI_BYTE_COUNT]; |
whismanoid | 0:3edb3708c8c5 | 5978 | if (cmdLine.parse_byteCount_byteList_hex(byteCount, mosiData, |
whismanoid | 0:3edb3708c8c5 | 5979 | MAX_SPI_BYTE_COUNT)) |
whismanoid | 0:3edb3708c8c5 | 5980 | { |
whismanoid | 0:3edb3708c8c5 | 5981 | // hex dump mosiData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 5982 | cmdLine.serial().printf("\r\nSPI"); |
whismanoid | 0:3edb3708c8c5 | 5983 | if (byteCount > 7) { |
whismanoid | 0:3edb3708c8c5 | 5984 | cmdLine.serial().printf(" byteCount:%d", byteCount); |
whismanoid | 0:3edb3708c8c5 | 5985 | } |
whismanoid | 0:3edb3708c8c5 | 5986 | cmdLine.serial().printf(" MOSI->"); |
whismanoid | 0:3edb3708c8c5 | 5987 | for (unsigned int byteIndex = 0; byteIndex < byteCount; byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 5988 | { |
whismanoid | 0:3edb3708c8c5 | 5989 | cmdLine.serial().printf(" 0x%2.2X", mosiData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 5990 | } |
whismanoid | 0:3edb3708c8c5 | 5991 | spi_cs = 0; |
whismanoid | 0:3edb3708c8c5 | 5992 | unsigned int numBytesTransferred = |
whismanoid | 0:3edb3708c8c5 | 5993 | spi.write(mosiData, byteCount, misoData, byteCount); |
whismanoid | 0:3edb3708c8c5 | 5994 | spi_cs = 1; |
whismanoid | 0:3edb3708c8c5 | 5995 | // hex dump misoData[0..byteCount-1] |
whismanoid | 0:3edb3708c8c5 | 5996 | cmdLine.serial().printf(" MISO<-"); |
whismanoid | 0:3edb3708c8c5 | 5997 | for (unsigned int byteIndex = 0; byteIndex < numBytesTransferred; |
whismanoid | 0:3edb3708c8c5 | 5998 | byteIndex++) |
whismanoid | 0:3edb3708c8c5 | 5999 | { |
whismanoid | 0:3edb3708c8c5 | 6000 | cmdLine.serial().printf(" 0x%2.2X", misoData[byteIndex]); |
whismanoid | 0:3edb3708c8c5 | 6001 | } |
whismanoid | 0:3edb3708c8c5 | 6002 | cmdLine.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 6003 | } |
whismanoid | 0:3edb3708c8c5 | 6004 | } |
whismanoid | 0:3edb3708c8c5 | 6005 | break; |
whismanoid | 0:3edb3708c8c5 | 6006 | } // switch(cmdLine[2]) |
whismanoid | 0:3edb3708c8c5 | 6007 | } // case 'S': // %S... -- SPI diagnostics |
whismanoid | 0:3edb3708c8c5 | 6008 | break; |
whismanoid | 0:3edb3708c8c5 | 6009 | #endif |
whismanoid | 0:3edb3708c8c5 | 6010 | // |
whismanoid | 0:3edb3708c8c5 | 6011 | // A-Z,a-z,0-9 reserved for application use |
whismanoid | 0:3edb3708c8c5 | 6012 | } // switch(cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6013 | } |
whismanoid | 0:3edb3708c8c5 | 6014 | break; // case '%' |
whismanoid | 0:3edb3708c8c5 | 6015 | #endif // APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 6016 | // |
whismanoid | 0:3edb3708c8c5 | 6017 | // Application-specific commands here |
whismanoid | 0:3edb3708c8c5 | 6018 | // alphanumeric command codes A-Z,a-z,0-9 reserved for application use |
whismanoid | 0:3edb3708c8c5 | 6019 | // |
whismanoid | 0:3edb3708c8c5 | 6020 | #if APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 6021 | #endif // APPLICATION_ArduinoPinsMonitor |
whismanoid | 0:3edb3708c8c5 | 6022 | |
whismanoid | 0:3edb3708c8c5 | 6023 | #if APPLICATION_MAX5715 // main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 6024 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6025 | { |
whismanoid | 0:3edb3708c8c5 | 6026 | // recommended for hex command codes 00..0F |
whismanoid | 0:3edb3708c8c5 | 6027 | // TODO: cmdLine.serial().printf("\r\n 0 ch=? code=? -- CODEn"); |
whismanoid | 0:3edb3708c8c5 | 6028 | // Menu 0 ch=? code=?) CODEn |
whismanoid | 0:3edb3708c8c5 | 6029 | // MAX5715_CODEn(uint8_t channel, uint16_t dacCodeLsbs); |
whismanoid | 0:3edb3708c8c5 | 6030 | // VERIFY: parse strCommandArgs for additional arguments including key=value pairs |
whismanoid | 0:3edb3708c8c5 | 6031 | // TODO: parse command arguments ~ parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6032 | uint16_t ch = g_MAX5715_device.channelNumber_0_3; |
whismanoid | 0:3edb3708c8c5 | 6033 | if (cmdLine.parse_uint16_dec("ch", ch)) |
whismanoid | 0:3edb3708c8c5 | 6034 | { |
whismanoid | 0:3edb3708c8c5 | 6035 | } |
whismanoid | 0:3edb3708c8c5 | 6036 | uint16_t code = g_MAX5715_device.CODE[ch]; |
whismanoid | 0:3edb3708c8c5 | 6037 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 6038 | { |
whismanoid | 0:3edb3708c8c5 | 6039 | } |
whismanoid | 0:3edb3708c8c5 | 6040 | cmdLine.serial().printf("CODEn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 6041 | g_MAX5715_device.CODEn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 6042 | } |
whismanoid | 0:3edb3708c8c5 | 6043 | break; |
whismanoid | 0:3edb3708c8c5 | 6044 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6045 | { |
whismanoid | 0:3edb3708c8c5 | 6046 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 6047 | // TODO: cmdLine.serial().printf("\r\n 1 ch=? -- LOADn"); |
whismanoid | 0:3edb3708c8c5 | 6048 | // TODO: parse command arguments ~ parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6049 | uint16_t ch = g_MAX5715_device.channelNumber_0_3; |
whismanoid | 0:3edb3708c8c5 | 6050 | if (cmdLine.parse_uint16_dec("ch", ch)) |
whismanoid | 0:3edb3708c8c5 | 6051 | { |
whismanoid | 0:3edb3708c8c5 | 6052 | } |
whismanoid | 0:3edb3708c8c5 | 6053 | cmdLine.serial().printf("LOADn ch=%d", ch); |
whismanoid | 0:3edb3708c8c5 | 6054 | g_MAX5715_device.LOADn(ch); |
whismanoid | 0:3edb3708c8c5 | 6055 | } |
whismanoid | 0:3edb3708c8c5 | 6056 | break; |
whismanoid | 0:3edb3708c8c5 | 6057 | case '2': |
whismanoid | 0:3edb3708c8c5 | 6058 | { |
whismanoid | 0:3edb3708c8c5 | 6059 | // recommended for hex command codes 20..2F |
whismanoid | 0:3edb3708c8c5 | 6060 | // TODO: cmdLine.serial().printf("\r\n 2 ch=? code=? -- CODEnLOADall"); |
whismanoid | 0:3edb3708c8c5 | 6061 | // TODO: parse command arguments ~ parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6062 | uint16_t ch = g_MAX5715_device.channelNumber_0_3; |
whismanoid | 0:3edb3708c8c5 | 6063 | if (cmdLine.parse_uint16_dec("ch", ch)) |
whismanoid | 0:3edb3708c8c5 | 6064 | { |
whismanoid | 0:3edb3708c8c5 | 6065 | } |
whismanoid | 0:3edb3708c8c5 | 6066 | uint16_t code = g_MAX5715_device.CODE[ch]; |
whismanoid | 0:3edb3708c8c5 | 6067 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 6068 | { |
whismanoid | 0:3edb3708c8c5 | 6069 | } |
whismanoid | 0:3edb3708c8c5 | 6070 | cmdLine.serial().printf("CODEnLOADall ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 6071 | g_MAX5715_device.CODEnLOADall(ch, code); |
whismanoid | 0:3edb3708c8c5 | 6072 | } |
whismanoid | 0:3edb3708c8c5 | 6073 | break; |
whismanoid | 0:3edb3708c8c5 | 6074 | case '3': |
whismanoid | 0:3edb3708c8c5 | 6075 | { |
whismanoid | 0:3edb3708c8c5 | 6076 | // recommended for hex command codes 30..3F |
whismanoid | 0:3edb3708c8c5 | 6077 | // TODO: cmdLine.serial().printf("\r\n 3 ch=? code=? -- CODEnLOADn"); |
whismanoid | 0:3edb3708c8c5 | 6078 | // TODO: parse command arguments ~ parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6079 | uint16_t ch = g_MAX5715_device.channelNumber_0_3; |
whismanoid | 0:3edb3708c8c5 | 6080 | uint16_t code; |
whismanoid | 0:3edb3708c8c5 | 6081 | if (cmdLine.parse_uint16_dec("ch", ch)) |
whismanoid | 0:3edb3708c8c5 | 6082 | { |
whismanoid | 0:3edb3708c8c5 | 6083 | } |
whismanoid | 0:3edb3708c8c5 | 6084 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 6085 | { |
whismanoid | 0:3edb3708c8c5 | 6086 | } |
whismanoid | 0:3edb3708c8c5 | 6087 | cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 6088 | g_MAX5715_device.CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 6089 | } |
whismanoid | 0:3edb3708c8c5 | 6090 | break; |
whismanoid | 0:3edb3708c8c5 | 6091 | case '4': |
whismanoid | 0:3edb3708c8c5 | 6092 | { |
whismanoid | 0:3edb3708c8c5 | 6093 | // recommended for hex command codes 40..4F |
whismanoid | 0:3edb3708c8c5 | 6094 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6095 | { |
whismanoid | 0:3edb3708c8c5 | 6096 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6097 | { |
whismanoid | 0:3edb3708c8c5 | 6098 | // cmdLine.serial().printf("\r\n 40 ch=? -- POWERn_Normal"); |
whismanoid | 0:3edb3708c8c5 | 6099 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6100 | "channel_dcba=%d, POWERn_Normal)", |
whismanoid | 0:3edb3708c8c5 | 6101 | g_MAX5715_device.channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6102 | g_MAX5715_device.POWER(g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6103 | channels_bitmask_DCBA, |
whismanoid | 0:3edb3708c8c5 | 6104 | MAX5715::POWERn_Normal); |
whismanoid | 0:3edb3708c8c5 | 6105 | } |
whismanoid | 0:3edb3708c8c5 | 6106 | break; |
whismanoid | 0:3edb3708c8c5 | 6107 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6108 | { |
whismanoid | 0:3edb3708c8c5 | 6109 | // cmdLine.serial().printf("\r\n 41 ch=? -- POWERn_PD1k"); |
whismanoid | 0:3edb3708c8c5 | 6110 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6111 | "channel_dcba=%d, POWERn_PD1k)", |
whismanoid | 0:3edb3708c8c5 | 6112 | g_MAX5715_device.channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6113 | g_MAX5715_device.POWER(g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6114 | channels_bitmask_DCBA, |
whismanoid | 0:3edb3708c8c5 | 6115 | MAX5715::POWERn_PD1k); |
whismanoid | 0:3edb3708c8c5 | 6116 | } |
whismanoid | 0:3edb3708c8c5 | 6117 | break; |
whismanoid | 0:3edb3708c8c5 | 6118 | case '2': |
whismanoid | 0:3edb3708c8c5 | 6119 | { |
whismanoid | 0:3edb3708c8c5 | 6120 | // cmdLine.serial().printf("\r\n 42 ch=? -- POWERn_PD100k"); |
whismanoid | 0:3edb3708c8c5 | 6121 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6122 | "channel_dcba=%d, POWERn_PD100k)", |
whismanoid | 0:3edb3708c8c5 | 6123 | g_MAX5715_device.channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6124 | g_MAX5715_device.POWER(g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6125 | channels_bitmask_DCBA, |
whismanoid | 0:3edb3708c8c5 | 6126 | MAX5715::POWERn_PD100k); |
whismanoid | 0:3edb3708c8c5 | 6127 | } |
whismanoid | 0:3edb3708c8c5 | 6128 | break; |
whismanoid | 0:3edb3708c8c5 | 6129 | case '3': |
whismanoid | 0:3edb3708c8c5 | 6130 | { |
whismanoid | 0:3edb3708c8c5 | 6131 | // cmdLine.serial().printf("\r\n 43 ch=? -- POWERn_PDHiZ"); |
whismanoid | 0:3edb3708c8c5 | 6132 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6133 | "channel_dcba=%d, POWERn_PDHiZ)", |
whismanoid | 0:3edb3708c8c5 | 6134 | g_MAX5715_device.channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6135 | g_MAX5715_device.POWER(g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6136 | channels_bitmask_DCBA, |
whismanoid | 0:3edb3708c8c5 | 6137 | MAX5715::POWERn_PDHiZ); |
whismanoid | 0:3edb3708c8c5 | 6138 | } |
whismanoid | 0:3edb3708c8c5 | 6139 | break; |
whismanoid | 0:3edb3708c8c5 | 6140 | } |
whismanoid | 0:3edb3708c8c5 | 6141 | break; |
whismanoid | 0:3edb3708c8c5 | 6142 | } |
whismanoid | 0:3edb3708c8c5 | 6143 | break; |
whismanoid | 0:3edb3708c8c5 | 6144 | case '5': |
whismanoid | 0:3edb3708c8c5 | 6145 | { |
whismanoid | 0:3edb3708c8c5 | 6146 | // recommended for hex command codes 50..5F |
whismanoid | 0:3edb3708c8c5 | 6147 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6148 | { |
whismanoid | 0:3edb3708c8c5 | 6149 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6150 | { |
whismanoid | 0:3edb3708c8c5 | 6151 | // cmdLine.serial().printf("\r\n 50 -- SW_CLEAR"); |
whismanoid | 0:3edb3708c8c5 | 6152 | cmdLine.serial().printf("SW_CLEAR"); |
whismanoid | 0:3edb3708c8c5 | 6153 | g_MAX5715_device.SW_CLEAR(); |
whismanoid | 0:3edb3708c8c5 | 6154 | } |
whismanoid | 0:3edb3708c8c5 | 6155 | break; |
whismanoid | 0:3edb3708c8c5 | 6156 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6157 | { |
whismanoid | 0:3edb3708c8c5 | 6158 | // cmdLine.serial().printf("\r\n 51 -- SW_RESET"); |
whismanoid | 0:3edb3708c8c5 | 6159 | cmdLine.serial().printf("SW_RESET"); |
whismanoid | 0:3edb3708c8c5 | 6160 | g_MAX5715_device.SW_RESET(); |
whismanoid | 0:3edb3708c8c5 | 6161 | } |
whismanoid | 0:3edb3708c8c5 | 6162 | break; |
whismanoid | 0:3edb3708c8c5 | 6163 | } |
whismanoid | 0:3edb3708c8c5 | 6164 | } |
whismanoid | 0:3edb3708c8c5 | 6165 | break; |
whismanoid | 0:3edb3708c8c5 | 6166 | case '6': |
whismanoid | 0:3edb3708c8c5 | 6167 | { |
whismanoid | 0:3edb3708c8c5 | 6168 | // recommended for hex command codes 60..6F |
whismanoid | 0:3edb3708c8c5 | 6169 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6170 | { |
whismanoid | 0:3edb3708c8c5 | 6171 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6172 | { |
whismanoid | 0:3edb3708c8c5 | 6173 | // cmdLine.serial().printf("\r\n 60 ch=? -- CONFIGn_LATCHED"); |
whismanoid | 0:3edb3708c8c5 | 6174 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6175 | "MAX5715_CONFIGn_LATCHED(channel_dcba=%d)", |
whismanoid | 0:3edb3708c8c5 | 6176 | g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6177 | channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6178 | g_MAX5715_device.CONFIGn_LATCHED(g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6179 | channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6180 | } |
whismanoid | 0:3edb3708c8c5 | 6181 | break; |
whismanoid | 0:3edb3708c8c5 | 6182 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6183 | { |
whismanoid | 0:3edb3708c8c5 | 6184 | // cmdLine.serial().printf("\r\n 61 ch=? -- CONFIGn_TRANSPARENT"); |
whismanoid | 0:3edb3708c8c5 | 6185 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6186 | "MAX5715_CONFIGn_TRANSPARENT(channel_dcba=%d)", |
whismanoid | 0:3edb3708c8c5 | 6187 | g_MAX5715_device. |
whismanoid | 0:3edb3708c8c5 | 6188 | channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6189 | g_MAX5715_device.CONFIGn_TRANSPARENT( |
whismanoid | 0:3edb3708c8c5 | 6190 | g_MAX5715_device.channels_bitmask_DCBA); |
whismanoid | 0:3edb3708c8c5 | 6191 | } |
whismanoid | 0:3edb3708c8c5 | 6192 | break; |
whismanoid | 0:3edb3708c8c5 | 6193 | case '8': |
whismanoid | 0:3edb3708c8c5 | 6194 | { |
whismanoid | 0:3edb3708c8c5 | 6195 | // cmdLine.serial().printf("\r\n 68 -- CONFIGall_LATCHED"); |
whismanoid | 0:3edb3708c8c5 | 6196 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6197 | "MAX5715_CONFIGall_LATCHED()"); |
whismanoid | 0:3edb3708c8c5 | 6198 | g_MAX5715_device.CONFIGall_LATCHED(); |
whismanoid | 0:3edb3708c8c5 | 6199 | } |
whismanoid | 0:3edb3708c8c5 | 6200 | break; |
whismanoid | 0:3edb3708c8c5 | 6201 | case '9': |
whismanoid | 0:3edb3708c8c5 | 6202 | { |
whismanoid | 0:3edb3708c8c5 | 6203 | // cmdLine.serial().printf("\r\n 69 -- CONFIGall_TRANSPARENT"); |
whismanoid | 0:3edb3708c8c5 | 6204 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6205 | "MAX5715_CONFIGall_TRANSPARENT()"); |
whismanoid | 0:3edb3708c8c5 | 6206 | g_MAX5715_device.CONFIGall_TRANSPARENT(); |
whismanoid | 0:3edb3708c8c5 | 6207 | } |
whismanoid | 0:3edb3708c8c5 | 6208 | break; |
whismanoid | 0:3edb3708c8c5 | 6209 | } |
whismanoid | 0:3edb3708c8c5 | 6210 | } |
whismanoid | 0:3edb3708c8c5 | 6211 | break; |
whismanoid | 0:3edb3708c8c5 | 6212 | case '7': |
whismanoid | 0:3edb3708c8c5 | 6213 | { |
whismanoid | 0:3edb3708c8c5 | 6214 | // recommended for hex command codes 70..7F |
whismanoid | 0:3edb3708c8c5 | 6215 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6216 | { |
whismanoid | 0:3edb3708c8c5 | 6217 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6218 | { |
whismanoid | 0:3edb3708c8c5 | 6219 | // cmdLine.serial().printf("\r\n 70 -- REF_EXT"); |
whismanoid | 0:3edb3708c8c5 | 6220 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6221 | "MAX5715_REF(REF_EXT)"); |
whismanoid | 0:3edb3708c8c5 | 6222 | g_MAX5715_device.REF(MAX5715::REF_EXT); |
whismanoid | 0:3edb3708c8c5 | 6223 | } |
whismanoid | 0:3edb3708c8c5 | 6224 | break; |
whismanoid | 0:3edb3708c8c5 | 6225 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6226 | { |
whismanoid | 0:3edb3708c8c5 | 6227 | // cmdLine.serial().printf("\r\n 71 -- REF_2V500"); |
whismanoid | 0:3edb3708c8c5 | 6228 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6229 | "MAX5715_REF(REF_2V500)"); |
whismanoid | 0:3edb3708c8c5 | 6230 | g_MAX5715_device.REF(MAX5715::REF_2V500); |
whismanoid | 0:3edb3708c8c5 | 6231 | } |
whismanoid | 0:3edb3708c8c5 | 6232 | break; |
whismanoid | 0:3edb3708c8c5 | 6233 | case '2': |
whismanoid | 0:3edb3708c8c5 | 6234 | { |
whismanoid | 0:3edb3708c8c5 | 6235 | // cmdLine.serial().printf("\r\n 72 -- REF_2V048"); |
whismanoid | 0:3edb3708c8c5 | 6236 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6237 | "MAX5715_REF(REF_2V048)"); |
whismanoid | 0:3edb3708c8c5 | 6238 | g_MAX5715_device.REF(MAX5715::REF_2V048); |
whismanoid | 0:3edb3708c8c5 | 6239 | } |
whismanoid | 0:3edb3708c8c5 | 6240 | break; |
whismanoid | 0:3edb3708c8c5 | 6241 | case '3': |
whismanoid | 0:3edb3708c8c5 | 6242 | { |
whismanoid | 0:3edb3708c8c5 | 6243 | // cmdLine.serial().printf("\r\n 73 -- REF_4V096"); |
whismanoid | 0:3edb3708c8c5 | 6244 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6245 | "MAX5715_REF(REF_4V096)"); |
whismanoid | 0:3edb3708c8c5 | 6246 | g_MAX5715_device.REF(MAX5715::REF_4V096); |
whismanoid | 0:3edb3708c8c5 | 6247 | } |
whismanoid | 0:3edb3708c8c5 | 6248 | break; |
whismanoid | 0:3edb3708c8c5 | 6249 | case '4': |
whismanoid | 0:3edb3708c8c5 | 6250 | { |
whismanoid | 0:3edb3708c8c5 | 6251 | // cmdLine.serial().printf("\r\n 74 -- REF_AlwaysOn_EXT"); |
whismanoid | 0:3edb3708c8c5 | 6252 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6253 | "MAX5715_REF(REF_AlwaysOn_EXT)"); |
whismanoid | 0:3edb3708c8c5 | 6254 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_EXT); |
whismanoid | 0:3edb3708c8c5 | 6255 | } |
whismanoid | 0:3edb3708c8c5 | 6256 | break; |
whismanoid | 0:3edb3708c8c5 | 6257 | case '5': |
whismanoid | 0:3edb3708c8c5 | 6258 | { |
whismanoid | 0:3edb3708c8c5 | 6259 | // cmdLine.serial().printf("\r\n 75 -- REF_AlwaysOn_2V500"); |
whismanoid | 0:3edb3708c8c5 | 6260 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6261 | "MAX5715_REF(REF_AlwaysOn_2V500)"); |
whismanoid | 0:3edb3708c8c5 | 6262 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_2V500); |
whismanoid | 0:3edb3708c8c5 | 6263 | } |
whismanoid | 0:3edb3708c8c5 | 6264 | break; |
whismanoid | 0:3edb3708c8c5 | 6265 | case '6': |
whismanoid | 0:3edb3708c8c5 | 6266 | { |
whismanoid | 0:3edb3708c8c5 | 6267 | // cmdLine.serial().printf("\r\n 76 -- REF_AlwaysOn_2V048"); |
whismanoid | 0:3edb3708c8c5 | 6268 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6269 | "MAX5715_REF(REF_AlwaysOn_2V048)"); |
whismanoid | 0:3edb3708c8c5 | 6270 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_2V048); |
whismanoid | 0:3edb3708c8c5 | 6271 | } |
whismanoid | 0:3edb3708c8c5 | 6272 | break; |
whismanoid | 0:3edb3708c8c5 | 6273 | case '7': |
whismanoid | 0:3edb3708c8c5 | 6274 | { |
whismanoid | 0:3edb3708c8c5 | 6275 | // cmdLine.serial().printf("\r\n 77 -- REF_AlwaysOn_4V096"); |
whismanoid | 0:3edb3708c8c5 | 6276 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6277 | "MAX5715_REF(REF_AlwaysOn_4V096)"); |
whismanoid | 0:3edb3708c8c5 | 6278 | g_MAX5715_device.REF(MAX5715::REF_AlwaysOn_4V096); |
whismanoid | 0:3edb3708c8c5 | 6279 | } |
whismanoid | 0:3edb3708c8c5 | 6280 | break; |
whismanoid | 0:3edb3708c8c5 | 6281 | } |
whismanoid | 0:3edb3708c8c5 | 6282 | } |
whismanoid | 0:3edb3708c8c5 | 6283 | break; |
whismanoid | 0:3edb3708c8c5 | 6284 | case '8': |
whismanoid | 0:3edb3708c8c5 | 6285 | { |
whismanoid | 0:3edb3708c8c5 | 6286 | // recommended for hex command codes 80..8F |
whismanoid | 0:3edb3708c8c5 | 6287 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6288 | { |
whismanoid | 0:3edb3708c8c5 | 6289 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6290 | { |
whismanoid | 0:3edb3708c8c5 | 6291 | // TODO: cmdLine.serial().printf("\r\n 80 code=? -- CODEall"); |
whismanoid | 0:3edb3708c8c5 | 6292 | // TODO: parse command arguments ~ parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6293 | g_MAX5715_device.channels_bitmask_DCBA = 0xFF; // store g_MAX5715_device.CODE[allChannels] |
whismanoid | 0:3edb3708c8c5 | 6294 | uint16_t code = g_MAX5715_device.CODE[0]; |
whismanoid | 0:3edb3708c8c5 | 6295 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 6296 | { |
whismanoid | 0:3edb3708c8c5 | 6297 | } |
whismanoid | 0:3edb3708c8c5 | 6298 | cmdLine.serial().printf("CODEall code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 6299 | g_MAX5715_device.CODEall(code); |
whismanoid | 0:3edb3708c8c5 | 6300 | } |
whismanoid | 0:3edb3708c8c5 | 6301 | break; |
whismanoid | 0:3edb3708c8c5 | 6302 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6303 | { |
whismanoid | 0:3edb3708c8c5 | 6304 | // TODO: cmdLine.serial().printf("\r\n 81 -- LOADall"); |
whismanoid | 0:3edb3708c8c5 | 6305 | cmdLine.serial().printf("LOADall"); |
whismanoid | 0:3edb3708c8c5 | 6306 | g_MAX5715_device.LOADall(); |
whismanoid | 0:3edb3708c8c5 | 6307 | } |
whismanoid | 0:3edb3708c8c5 | 6308 | break; |
whismanoid | 0:3edb3708c8c5 | 6309 | case '2': |
whismanoid | 0:3edb3708c8c5 | 6310 | { |
whismanoid | 0:3edb3708c8c5 | 6311 | // TODO: cmdLine.serial().printf("\r\n 82 code=? -- CODEallLOADall"); |
whismanoid | 0:3edb3708c8c5 | 6312 | uint16_t code = g_MAX5715_device.CODE[0]; |
whismanoid | 0:3edb3708c8c5 | 6313 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 6314 | { |
whismanoid | 0:3edb3708c8c5 | 6315 | } |
whismanoid | 0:3edb3708c8c5 | 6316 | cmdLine.serial().printf("CODEallLOADall code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 6317 | g_MAX5715_device.CODEallLOADall(code); |
whismanoid | 0:3edb3708c8c5 | 6318 | } |
whismanoid | 0:3edb3708c8c5 | 6319 | break; |
whismanoid | 0:3edb3708c8c5 | 6320 | } |
whismanoid | 0:3edb3708c8c5 | 6321 | } |
whismanoid | 0:3edb3708c8c5 | 6322 | break; |
whismanoid | 0:3edb3708c8c5 | 6323 | case '9': |
whismanoid | 0:3edb3708c8c5 | 6324 | { |
whismanoid | 0:3edb3708c8c5 | 6325 | // recommended for hex command codes 90..9F |
whismanoid | 0:3edb3708c8c5 | 6326 | } |
whismanoid | 0:3edb3708c8c5 | 6327 | break; |
whismanoid | 0:3edb3708c8c5 | 6328 | case 'a': case 'A': |
whismanoid | 0:3edb3708c8c5 | 6329 | { |
whismanoid | 0:3edb3708c8c5 | 6330 | // recommended for hex command codes A0..AF |
whismanoid | 0:3edb3708c8c5 | 6331 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6332 | { |
whismanoid | 0:3edb3708c8c5 | 6333 | case 't': case 'T': |
whismanoid | 0:3edb3708c8c5 | 6334 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6335 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6336 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 6337 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6338 | // AT command: skip the prompt to avoid confusing modem detector |
whismanoid | 0:3edb3708c8c5 | 6339 | return; |
whismanoid | 0:3edb3708c8c5 | 6340 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6341 | } |
whismanoid | 0:3edb3708c8c5 | 6342 | } |
whismanoid | 0:3edb3708c8c5 | 6343 | break; |
whismanoid | 0:3edb3708c8c5 | 6344 | case 'b': case 'B': |
whismanoid | 0:3edb3708c8c5 | 6345 | { |
whismanoid | 0:3edb3708c8c5 | 6346 | // recommended for hex command codes B0..BF |
whismanoid | 0:3edb3708c8c5 | 6347 | } |
whismanoid | 0:3edb3708c8c5 | 6348 | break; |
whismanoid | 0:3edb3708c8c5 | 6349 | case 'c': case 'C': |
whismanoid | 0:3edb3708c8c5 | 6350 | { |
whismanoid | 0:3edb3708c8c5 | 6351 | // recommended for hex command codes C0..CF |
whismanoid | 0:3edb3708c8c5 | 6352 | // // MAX5717 menu function to drive MAX5717_CLRb_Pin CLR# |
whismanoid | 0:3edb3708c8c5 | 6353 | // cmdLine.serial().printf("\r\n C -- CLR# pulse CH high CL low"); |
whismanoid | 0:3edb3708c8c5 | 6354 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6355 | { |
whismanoid | 0:3edb3708c8c5 | 6356 | default: |
whismanoid | 0:3edb3708c8c5 | 6357 | // g_MAX5715_device.CLRboutputPulseLow(); |
whismanoid | 0:3edb3708c8c5 | 6358 | g_MAX5715_device.CLRboutputValue(1); |
whismanoid | 0:3edb3708c8c5 | 6359 | g_MAX5715_device.CLRboutputValue(0); |
whismanoid | 0:3edb3708c8c5 | 6360 | g_MAX5715_device.CLRboutputValue(1); |
whismanoid | 0:3edb3708c8c5 | 6361 | break; |
whismanoid | 0:3edb3708c8c5 | 6362 | case 'H': case 'h': case '1': |
whismanoid | 0:3edb3708c8c5 | 6363 | g_MAX5715_device.CLRboutputValue(1); // GPIOoutputCLRb(int isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 6364 | break; |
whismanoid | 0:3edb3708c8c5 | 6365 | case 'L': case 'l': case '0': |
whismanoid | 0:3edb3708c8c5 | 6366 | g_MAX5715_device.CLRboutputValue(0); // GPIOoutputCLRb(int isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 6367 | break; |
whismanoid | 0:3edb3708c8c5 | 6368 | } |
whismanoid | 0:3edb3708c8c5 | 6369 | } |
whismanoid | 0:3edb3708c8c5 | 6370 | break; |
whismanoid | 0:3edb3708c8c5 | 6371 | case 'd': case 'D': |
whismanoid | 0:3edb3708c8c5 | 6372 | { |
whismanoid | 0:3edb3708c8c5 | 6373 | // recommended for hex command codes D0..DF |
whismanoid | 0:3edb3708c8c5 | 6374 | } |
whismanoid | 0:3edb3708c8c5 | 6375 | break; |
whismanoid | 0:3edb3708c8c5 | 6376 | case 'e': case 'E': |
whismanoid | 0:3edb3708c8c5 | 6377 | { |
whismanoid | 0:3edb3708c8c5 | 6378 | // recommended for hex command codes E0..EF |
whismanoid | 0:3edb3708c8c5 | 6379 | } |
whismanoid | 0:3edb3708c8c5 | 6380 | break; |
whismanoid | 0:3edb3708c8c5 | 6381 | case 'f': case 'F': |
whismanoid | 0:3edb3708c8c5 | 6382 | { |
whismanoid | 0:3edb3708c8c5 | 6383 | // recommended for hex command codes F0..FF |
whismanoid | 0:3edb3708c8c5 | 6384 | } |
whismanoid | 0:3edb3708c8c5 | 6385 | break; |
whismanoid | 0:3edb3708c8c5 | 6386 | case 'l': case 'L': |
whismanoid | 0:3edb3708c8c5 | 6387 | { |
whismanoid | 0:3edb3708c8c5 | 6388 | // // MAX5717 menu function to drive MAX5717_LDACb_Pin LDAC# |
whismanoid | 0:3edb3708c8c5 | 6389 | // cmdLine.serial().printf("\r\n L -- LDAC# pulse LH high LL low"); |
whismanoid | 0:3edb3708c8c5 | 6390 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6391 | { |
whismanoid | 0:3edb3708c8c5 | 6392 | default: |
whismanoid | 0:3edb3708c8c5 | 6393 | // g_MAX5715_device.LDACboutputPulseLow(); |
whismanoid | 0:3edb3708c8c5 | 6394 | g_MAX5715_device.LDACboutputValue(1); |
whismanoid | 0:3edb3708c8c5 | 6395 | g_MAX5715_device.LDACboutputValue(0); |
whismanoid | 0:3edb3708c8c5 | 6396 | g_MAX5715_device.LDACboutputValue(1); |
whismanoid | 0:3edb3708c8c5 | 6397 | break; |
whismanoid | 0:3edb3708c8c5 | 6398 | case 'H': case 'h': case '1': |
whismanoid | 0:3edb3708c8c5 | 6399 | g_MAX5715_device.LDACboutputValue(1); // GPIOoutputLDACb(int isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 6400 | break; |
whismanoid | 0:3edb3708c8c5 | 6401 | case 'L': case 'l': case '0': |
whismanoid | 0:3edb3708c8c5 | 6402 | g_MAX5715_device.LDACboutputValue(0); // GPIOoutputLDACb(int isLogicHigh); |
whismanoid | 0:3edb3708c8c5 | 6403 | break; |
whismanoid | 0:3edb3708c8c5 | 6404 | } |
whismanoid | 0:3edb3708c8c5 | 6405 | } |
whismanoid | 0:3edb3708c8c5 | 6406 | break; |
whismanoid | 0:3edb3708c8c5 | 6407 | case 'x': case 'X': |
whismanoid | 0:3edb3708c8c5 | 6408 | { |
whismanoid | 0:3edb3708c8c5 | 6409 | } |
whismanoid | 0:3edb3708c8c5 | 6410 | break; |
whismanoid | 0:3edb3708c8c5 | 6411 | case 'y': case 'Y': |
whismanoid | 0:3edb3708c8c5 | 6412 | { |
whismanoid | 0:3edb3708c8c5 | 6413 | } |
whismanoid | 0:3edb3708c8c5 | 6414 | break; |
whismanoid | 0:3edb3708c8c5 | 6415 | case 'z': case 'Z': |
whismanoid | 0:3edb3708c8c5 | 6416 | { |
whismanoid | 0:3edb3708c8c5 | 6417 | } |
whismanoid | 0:3edb3708c8c5 | 6418 | break; |
whismanoid | 0:3edb3708c8c5 | 6419 | case '~': // TODO: IGNORE_AT_COMMANDS -- ignore ~~~ modem command |
whismanoid | 0:3edb3708c8c5 | 6420 | { |
whismanoid | 0:3edb3708c8c5 | 6421 | // TODO: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 6422 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6423 | { |
whismanoid | 0:3edb3708c8c5 | 6424 | default: |
whismanoid | 0:3edb3708c8c5 | 6425 | { |
whismanoid | 0:3edb3708c8c5 | 6426 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6427 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6428 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", |
whismanoid | 0:3edb3708c8c5 | 6429 | cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 6430 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6431 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6432 | } |
whismanoid | 0:3edb3708c8c5 | 6433 | } |
whismanoid | 0:3edb3708c8c5 | 6434 | } |
whismanoid | 0:3edb3708c8c5 | 6435 | break; |
whismanoid | 0:3edb3708c8c5 | 6436 | case '+': // TODO: IGNORE_AT_COMMANDS -- ignore +++ modem command |
whismanoid | 0:3edb3708c8c5 | 6437 | { |
whismanoid | 0:3edb3708c8c5 | 6438 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6439 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6440 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 6441 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6442 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6443 | } |
whismanoid | 0:3edb3708c8c5 | 6444 | break; |
whismanoid | 0:3edb3708c8c5 | 6445 | case '@': |
whismanoid | 0:3edb3708c8c5 | 6446 | { |
whismanoid | 0:3edb3708c8c5 | 6447 | // // |
whismanoid | 0:3edb3708c8c5 | 6448 | // // Menu @ -- print device configuration |
whismanoid | 0:3edb3708c8c5 | 6449 | // TODO: cmdLine.serial().printf("\r\n @ -- print MAX5715 configuration"); |
whismanoid | 0:3edb3708c8c5 | 6450 | // // |
whismanoid | 0:3edb3708c8c5 | 6451 | // print shadow register configuration |
whismanoid | 0:3edb3708c8c5 | 6452 | // |
whismanoid | 0:3edb3708c8c5 | 6453 | // shadow of write-only register CODE dddd_dddd_dddd_0000 |
whismanoid | 0:3edb3708c8c5 | 6454 | //~ int16_t CMD_1000_CODE; |
whismanoid | 0:3edb3708c8c5 | 6455 | int index = 0; |
whismanoid | 0:3edb3708c8c5 | 6456 | for (index = 0; index < 4; index++) |
whismanoid | 0:3edb3708c8c5 | 6457 | { |
whismanoid | 0:3edb3708c8c5 | 6458 | cmdLine.serial().printf("CODE %c=0x%4.4x MAX5715_VoltageOfCode(%d)=%5.3fV\r\n", |
whismanoid | 0:3edb3708c8c5 | 6459 | (char)('A' + index), |
whismanoid | 0:3edb3708c8c5 | 6460 | (g_MAX5715_device.Shadow_0010_nnnn_CODE[index] & 0xFFFF), |
whismanoid | 0:3edb3708c8c5 | 6461 | g_MAX5715_device.CODE[index], |
whismanoid | 0:3edb3708c8c5 | 6462 | g_MAX5715_device.VoltageOfCode(g_MAX5715_device.CODE[index]) |
whismanoid | 0:3edb3708c8c5 | 6463 | ); |
whismanoid | 0:3edb3708c8c5 | 6464 | } |
whismanoid | 0:3edb3708c8c5 | 6465 | // |
whismanoid | 0:3edb3708c8c5 | 6466 | cmdLine.serial().printf("\r\n"); |
whismanoid | 0:3edb3708c8c5 | 6467 | // |
whismanoid | 0:3edb3708c8c5 | 6468 | // |
whismanoid | 0:3edb3708c8c5 | 6469 | // Menu @) print MAX5715 configuration AND g_MAX5715_device globals |
whismanoid | 0:3edb3708c8c5 | 6470 | // |
whismanoid | 0:3edb3708c8c5 | 6471 | #if 1 // SUPPORT_CHANNELS |
whismanoid | 0:3edb3708c8c5 | 6472 | cmdLine.serial().printf("channelNumber_0_3=%d channels_bitmask_DCBA=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6473 | (g_MAX5715_device.channelNumber_0_3 & 0xFFFF), |
whismanoid | 0:3edb3708c8c5 | 6474 | (g_MAX5715_device.channels_bitmask_DCBA & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6475 | #endif // SUPPORT_CHANNELS |
whismanoid | 0:3edb3708c8c5 | 6476 | // |
whismanoid | 0:3edb3708c8c5 | 6477 | cmdLine.serial().printf("VRef=%5.3fV\r\n", g_MAX5715_device.VRef); |
whismanoid | 0:3edb3708c8c5 | 6478 | // dtostrf width and precision: 3.3V / 1024 LSB = 0.00322265625 volts per LSB |
whismanoid | 0:3edb3708c8c5 | 6479 | } |
whismanoid | 0:3edb3708c8c5 | 6480 | break; |
whismanoid | 0:3edb3708c8c5 | 6481 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 6482 | |
whismanoid | 0:3edb3708c8c5 | 6483 | #if APPLICATION_MAX11131 // main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 6484 | case '0': |
whismanoid | 0:3edb3708c8c5 | 6485 | { |
whismanoid | 0:3edb3708c8c5 | 6486 | // recommended for hex command codes 00..0F |
whismanoid | 0:3edb3708c8c5 | 6487 | // VERIFY: console menu command 0 int16_t MAX11131_ScanRead(void); |
whismanoid | 0:3edb3708c8c5 | 6488 | // TODO: cmdLine.serial().printf("\r\n 0 n=? -- MAX11131_ScanRead"); |
whismanoid | 0:3edb3708c8c5 | 6489 | if (cmdLine.parse_uint16_dec("n", g_MAX11131_device.NumWords)) |
whismanoid | 0:3edb3708c8c5 | 6490 | { |
whismanoid | 0:3edb3708c8c5 | 6491 | } |
whismanoid | 0:3edb3708c8c5 | 6492 | cmdLine.serial().printf("ScanRead NumWords=%d", g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6493 | if (g_MAX11131_device.isExternalClock) |
whismanoid | 0:3edb3708c8c5 | 6494 | { |
whismanoid | 0:3edb3708c8c5 | 6495 | cmdLine.serial().printf(" External Clock"); |
whismanoid | 0:3edb3708c8c5 | 6496 | // |
whismanoid | 0:3edb3708c8c5 | 6497 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6498 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6499 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6500 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6501 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6502 | // |
whismanoid | 0:3edb3708c8c5 | 6503 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6504 | } |
whismanoid | 0:3edb3708c8c5 | 6505 | else |
whismanoid | 0:3edb3708c8c5 | 6506 | { |
whismanoid | 0:3edb3708c8c5 | 6507 | cmdLine.serial().printf(" Internal Clock"); |
whismanoid | 0:3edb3708c8c5 | 6508 | // |
whismanoid | 0:3edb3708c8c5 | 6509 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6510 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6511 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6512 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6513 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6514 | // |
whismanoid | 0:3edb3708c8c5 | 6515 | AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6516 | } |
whismanoid | 0:3edb3708c8c5 | 6517 | } |
whismanoid | 0:3edb3708c8c5 | 6518 | break; |
whismanoid | 0:3edb3708c8c5 | 6519 | case '1': |
whismanoid | 0:3edb3708c8c5 | 6520 | { |
whismanoid | 0:3edb3708c8c5 | 6521 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 6522 | // VERIFY: console menu command 1 MAX11131_ScanManual(int channelNumber_0_15, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6523 | // TODO: cmdLine.serial().printf("\r\n 1 ch=? pm=? id=? -- MAX11131_ScanManual"); |
whismanoid | 0:3edb3708c8c5 | 6524 | if (cmdLine.parse_byte_dec("ch", g_MAX11131_device.channelNumber_0_15)) |
whismanoid | 0:3edb3708c8c5 | 6525 | { |
whismanoid | 0:3edb3708c8c5 | 6526 | } |
whismanoid | 0:3edb3708c8c5 | 6527 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6528 | { |
whismanoid | 0:3edb3708c8c5 | 6529 | } |
whismanoid | 0:3edb3708c8c5 | 6530 | if (cmdLine.parse_byte_dec("id", g_MAX11131_device.chan_id_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6531 | { |
whismanoid | 0:3edb3708c8c5 | 6532 | } |
whismanoid | 0:3edb3708c8c5 | 6533 | cmdLine.serial().printf("ScanManual ch=%d pm=%d id=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6534 | g_MAX11131_device.channelNumber_0_15, |
whismanoid | 0:3edb3708c8c5 | 6535 | g_MAX11131_device.PowerManagement_0_2, |
whismanoid | 0:3edb3708c8c5 | 6536 | g_MAX11131_device.chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6537 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6538 | // VERIFY: replace argument with driver global; g_MAX11131_device.chan_id_0_1 replaces chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6539 | // VERIFY: replace argument with driver global; g_MAX11131_device.channelNumber_0_15 replaces channelNumber_0_15 |
whismanoid | 0:3edb3708c8c5 | 6540 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanManual(); |
whismanoid | 0:3edb3708c8c5 | 6541 | // |
whismanoid | 0:3edb3708c8c5 | 6542 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6543 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6544 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6545 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6546 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6547 | // |
whismanoid | 0:3edb3708c8c5 | 6548 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6549 | } |
whismanoid | 0:3edb3708c8c5 | 6550 | break; |
whismanoid | 0:3edb3708c8c5 | 6551 | case '2': |
whismanoid | 0:3edb3708c8c5 | 6552 | { |
whismanoid | 0:3edb3708c8c5 | 6553 | // recommended for hex command codes 20..2F |
whismanoid | 0:3edb3708c8c5 | 6554 | // VERIFY: console menu command 2 int MAX11131_ScanRepeat(uint8_t channelNumber_0_15, uint8_t average_0_4_8_16_32, uint8_t nscan_4_8_12_16, uint8_t PowerManagement_0_2, uint8_t swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 6555 | // TODO: cmdLine.serial().printf("\r\n 2 ch=? av=? n=? pm=? swcnv=? -- MAX11131_ScanRepeat"); |
whismanoid | 0:3edb3708c8c5 | 6556 | // VERIFY: update value of g_MAX11131_device.channelNumber_0_15 from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6557 | // VERIFY: update value of g_MAX11131_device.average_0_4_8_16_32 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6558 | // VERIFY: update value of g_MAX11131_device.nscan_4_8_12_16 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6559 | // VERIFY: update value of g_MAX11131_device.swcnv_0_1 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6560 | // VERIFY: update value of g_MAX11131_device.PowerManagement_0_2 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6561 | // VERIFY: parse strCommandArgs for additional arguments including key=value pairs |
whismanoid | 0:3edb3708c8c5 | 6562 | if (cmdLine.parse_byte_dec("ch", g_MAX11131_device.channelNumber_0_15)) |
whismanoid | 0:3edb3708c8c5 | 6563 | { |
whismanoid | 0:3edb3708c8c5 | 6564 | } |
whismanoid | 0:3edb3708c8c5 | 6565 | if (cmdLine.parse_byte_dec("av", g_MAX11131_device.average_0_4_8_16_32)) |
whismanoid | 0:3edb3708c8c5 | 6566 | { |
whismanoid | 0:3edb3708c8c5 | 6567 | } |
whismanoid | 0:3edb3708c8c5 | 6568 | if (cmdLine.parse_byte_dec("n", g_MAX11131_device.nscan_4_8_12_16)) |
whismanoid | 0:3edb3708c8c5 | 6569 | { |
whismanoid | 0:3edb3708c8c5 | 6570 | } |
whismanoid | 0:3edb3708c8c5 | 6571 | if (cmdLine.parse_byte_dec("swcnv", g_MAX11131_device.swcnv_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6572 | { |
whismanoid | 0:3edb3708c8c5 | 6573 | } |
whismanoid | 0:3edb3708c8c5 | 6574 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6575 | { |
whismanoid | 0:3edb3708c8c5 | 6576 | } |
whismanoid | 0:3edb3708c8c5 | 6577 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6578 | "ScanRepeat ch=%d average_0_4_8_16_32:%d nscan_4_8_12_16:%d swcnv=%d pm=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6579 | g_MAX11131_device.channelNumber_0_15, |
whismanoid | 0:3edb3708c8c5 | 6580 | g_MAX11131_device.average_0_4_8_16_32, |
whismanoid | 0:3edb3708c8c5 | 6581 | g_MAX11131_device.nscan_4_8_12_16, |
whismanoid | 0:3edb3708c8c5 | 6582 | g_MAX11131_device.swcnv_0_1, |
whismanoid | 0:3edb3708c8c5 | 6583 | g_MAX11131_device.PowerManagement_0_2); |
whismanoid | 0:3edb3708c8c5 | 6584 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6585 | // VERIFY: replace argument with driver global; g_MAX11131_device.swcnv_0_1 replaces swcnv_0_1 |
whismanoid | 0:3edb3708c8c5 | 6586 | // VERIFY: replace argument with driver global; g_MAX11131_device.nscan_4_8_12_16 replaces nscan_4_8_12_16 |
whismanoid | 0:3edb3708c8c5 | 6587 | // VERIFY: replace argument with driver global; g_MAX11131_device.average_0_4_8_16_32 replaces average_0_4_8_16_32 |
whismanoid | 0:3edb3708c8c5 | 6588 | // VERIFY: replace argument with driver global; g_MAX11131_device.channelNumber_0_15 replaces channelNumber_0_15 |
whismanoid | 0:3edb3708c8c5 | 6589 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanRepeat(); |
whismanoid | 0:3edb3708c8c5 | 6590 | // |
whismanoid | 0:3edb3708c8c5 | 6591 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6592 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6593 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6594 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6595 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6596 | // |
whismanoid | 0:3edb3708c8c5 | 6597 | AINcode_print_value_chanID_mean(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6598 | } |
whismanoid | 0:3edb3708c8c5 | 6599 | break; |
whismanoid | 0:3edb3708c8c5 | 6600 | case '3': |
whismanoid | 0:3edb3708c8c5 | 6601 | { |
whismanoid | 0:3edb3708c8c5 | 6602 | // recommended for hex command codes 30..3F |
whismanoid | 0:3edb3708c8c5 | 6603 | // VERIFY: console menu command 3 MAX11131_ScanStandardInternalClock(int channelNumber_0_15, int average_0_4_8_16_32, int PowerManagement_0_2, int swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 6604 | // TODO: cmdLine.serial().printf("\r\n 3 ch=? av=? pm=? swcnv=? -- MAX11131_ScanStandardIntClock"); |
whismanoid | 0:3edb3708c8c5 | 6605 | // VERIFY: update value of g_MAX11131_device.channelNumber_0_15 from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6606 | // VERIFY: update value of g_MAX11131_device.average_0_4_8_16_32 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6607 | // VERIFY: update value of g_MAX11131_device.swcnv_0_1 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6608 | // VERIFY: update value of g_MAX11131_device.PowerManagement_0_2 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6609 | if (cmdLine.parse_byte_dec("ch", g_MAX11131_device.channelNumber_0_15)) |
whismanoid | 0:3edb3708c8c5 | 6610 | { |
whismanoid | 0:3edb3708c8c5 | 6611 | } |
whismanoid | 0:3edb3708c8c5 | 6612 | if (cmdLine.parse_byte_dec("av", g_MAX11131_device.average_0_4_8_16_32)) |
whismanoid | 0:3edb3708c8c5 | 6613 | { |
whismanoid | 0:3edb3708c8c5 | 6614 | } |
whismanoid | 0:3edb3708c8c5 | 6615 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6616 | { |
whismanoid | 0:3edb3708c8c5 | 6617 | } |
whismanoid | 0:3edb3708c8c5 | 6618 | if (cmdLine.parse_byte_dec("swcnv", g_MAX11131_device.swcnv_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6619 | { |
whismanoid | 0:3edb3708c8c5 | 6620 | } |
whismanoid | 0:3edb3708c8c5 | 6621 | cmdLine.serial().printf("ScanStandardInternalClock ch=%d average_0_4_8_16_32:%d swcnv=%d pm=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6622 | g_MAX11131_device.channelNumber_0_15, |
whismanoid | 0:3edb3708c8c5 | 6623 | g_MAX11131_device.average_0_4_8_16_32, |
whismanoid | 0:3edb3708c8c5 | 6624 | g_MAX11131_device.swcnv_0_1, |
whismanoid | 0:3edb3708c8c5 | 6625 | g_MAX11131_device.PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6626 | ); |
whismanoid | 0:3edb3708c8c5 | 6627 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6628 | // VERIFY: replace argument with driver global; g_MAX11131_device.swcnv_0_1 replaces swcnv_0_1 |
whismanoid | 0:3edb3708c8c5 | 6629 | // VERIFY: replace argument with driver global; g_MAX11131_device.average_0_4_8_16_32 replaces average_0_4_8_16_32 |
whismanoid | 0:3edb3708c8c5 | 6630 | // VERIFY: replace argument with driver global; g_MAX11131_device.channelNumber_0_15 replaces channelNumber_0_15 |
whismanoid | 0:3edb3708c8c5 | 6631 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanStandardInternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6632 | // |
whismanoid | 0:3edb3708c8c5 | 6633 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6634 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6635 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6636 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6637 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6638 | // |
whismanoid | 0:3edb3708c8c5 | 6639 | AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6640 | } |
whismanoid | 0:3edb3708c8c5 | 6641 | break; |
whismanoid | 0:3edb3708c8c5 | 6642 | case '4': |
whismanoid | 0:3edb3708c8c5 | 6643 | { |
whismanoid | 0:3edb3708c8c5 | 6644 | // recommended for hex command codes 40..4F |
whismanoid | 0:3edb3708c8c5 | 6645 | // VERIFY: console menu command 4 MAX11131_ScanStandardExternalClock(int channelNumber_0_15, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6646 | // TODO: cmdLine.serial().printf("\r\n 4 ch=? pm=? id=? -- MAX11131_ScanStandardExtClock"); |
whismanoid | 0:3edb3708c8c5 | 6647 | // VERIFY: update value of g_MAX11131_device.channelNumber_0_15 from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6648 | // VERIFY: update value of g_MAX11131_device.PowerManagement_0_2 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6649 | // VERIFY: update value of g_MAX11131_device.chan_id_0_1 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6650 | if (cmdLine.parse_byte_dec("ch", g_MAX11131_device.channelNumber_0_15)) |
whismanoid | 0:3edb3708c8c5 | 6651 | { |
whismanoid | 0:3edb3708c8c5 | 6652 | } |
whismanoid | 0:3edb3708c8c5 | 6653 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6654 | { |
whismanoid | 0:3edb3708c8c5 | 6655 | } |
whismanoid | 0:3edb3708c8c5 | 6656 | if (cmdLine.parse_byte_dec("id", g_MAX11131_device.chan_id_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6657 | { |
whismanoid | 0:3edb3708c8c5 | 6658 | } |
whismanoid | 0:3edb3708c8c5 | 6659 | cmdLine.serial().printf("ScanStandardExternalClock ch=%d pm=%d id=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6660 | g_MAX11131_device.channelNumber_0_15, |
whismanoid | 0:3edb3708c8c5 | 6661 | g_MAX11131_device.PowerManagement_0_2, |
whismanoid | 0:3edb3708c8c5 | 6662 | g_MAX11131_device.chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6663 | ); |
whismanoid | 0:3edb3708c8c5 | 6664 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6665 | // VERIFY: replace argument with driver global; g_MAX11131_device.chan_id_0_1 replaces chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6666 | // VERIFY: replace argument with driver global; g_MAX11131_device.channelNumber_0_15 replaces channelNumber_0_15 |
whismanoid | 0:3edb3708c8c5 | 6667 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanStandardExternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6668 | // |
whismanoid | 0:3edb3708c8c5 | 6669 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6670 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6671 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6672 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6673 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6674 | // |
whismanoid | 0:3edb3708c8c5 | 6675 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6676 | } |
whismanoid | 0:3edb3708c8c5 | 6677 | break; |
whismanoid | 0:3edb3708c8c5 | 6678 | case '5': |
whismanoid | 0:3edb3708c8c5 | 6679 | { |
whismanoid | 0:3edb3708c8c5 | 6680 | // recommended for hex command codes 50..5F |
whismanoid | 0:3edb3708c8c5 | 6681 | // VERIFY: console menu command 5 MAX11131_ScanUpperInternalClock(int channelNumber_0_15, int average_0_4_8_16_32, int PowerManagement_0_2, int swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 6682 | // TODO: cmdLine.serial().printf("\r\n 5 ch=? av=? pm=? swcnv=? -- MAX11131_ScanUpperIntClock"); |
whismanoid | 0:3edb3708c8c5 | 6683 | // VERIFY: update value of g_MAX11131_device.channelNumber_0_15 from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6684 | // VERIFY: update value of g_MAX11131_device.average_0_4_8_16_32 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6685 | // VERIFY: update value of g_MAX11131_device.swcnv_0_1 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6686 | // VERIFY: update value of g_MAX11131_device.PowerManagement_0_2 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6687 | if (cmdLine.parse_byte_dec("ch", g_MAX11131_device.channelNumber_0_15)) |
whismanoid | 0:3edb3708c8c5 | 6688 | { |
whismanoid | 0:3edb3708c8c5 | 6689 | } |
whismanoid | 0:3edb3708c8c5 | 6690 | if (cmdLine.parse_byte_dec("av", g_MAX11131_device.average_0_4_8_16_32)) |
whismanoid | 0:3edb3708c8c5 | 6691 | { |
whismanoid | 0:3edb3708c8c5 | 6692 | } |
whismanoid | 0:3edb3708c8c5 | 6693 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6694 | { |
whismanoid | 0:3edb3708c8c5 | 6695 | } |
whismanoid | 0:3edb3708c8c5 | 6696 | if (cmdLine.parse_byte_dec("swcnv", g_MAX11131_device.swcnv_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6697 | { |
whismanoid | 0:3edb3708c8c5 | 6698 | } |
whismanoid | 0:3edb3708c8c5 | 6699 | cmdLine.serial().printf("ScanUpperInternalClock ch=%d average_0_4_8_16_32:%d swcnv=%d pm=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6700 | g_MAX11131_device.channelNumber_0_15, |
whismanoid | 0:3edb3708c8c5 | 6701 | g_MAX11131_device.average_0_4_8_16_32, |
whismanoid | 0:3edb3708c8c5 | 6702 | g_MAX11131_device.swcnv_0_1, |
whismanoid | 0:3edb3708c8c5 | 6703 | g_MAX11131_device.PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6704 | ); |
whismanoid | 0:3edb3708c8c5 | 6705 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6706 | // VERIFY: replace argument with driver global; g_MAX11131_device.swcnv_0_1 replaces swcnv_0_1 |
whismanoid | 0:3edb3708c8c5 | 6707 | // VERIFY: replace argument with driver global; g_MAX11131_device.average_0_4_8_16_32 replaces average_0_4_8_16_32 |
whismanoid | 0:3edb3708c8c5 | 6708 | // VERIFY: replace argument with driver global; g_MAX11131_device.channelNumber_0_15 replaces channelNumber_0_15 |
whismanoid | 0:3edb3708c8c5 | 6709 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanUpperInternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6710 | // |
whismanoid | 0:3edb3708c8c5 | 6711 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6712 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6713 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6714 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6715 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6716 | // |
whismanoid | 0:3edb3708c8c5 | 6717 | AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6718 | } |
whismanoid | 0:3edb3708c8c5 | 6719 | break; |
whismanoid | 0:3edb3708c8c5 | 6720 | case '6': |
whismanoid | 0:3edb3708c8c5 | 6721 | { |
whismanoid | 0:3edb3708c8c5 | 6722 | // recommended for hex command codes 60..6F |
whismanoid | 0:3edb3708c8c5 | 6723 | // VERIFY: console menu command 6 MAX11131_ScanUpperExternalClock(int channelNumber_0_15, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6724 | // TODO: cmdLine.serial().printf("\r\n 6 ch=? pm=? id=? -- MAX11131_ScanUpperExtClock"); |
whismanoid | 0:3edb3708c8c5 | 6725 | // VERIFY: update value of g_MAX11131_device.channelNumber_0_15 from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6726 | // VERIFY: update value of g_MAX11131_device.PowerManagement_0_2 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6727 | // VERIFY: update value of g_MAX11131_device.chan_id_0_1 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6728 | if (cmdLine.parse_byte_dec("ch", g_MAX11131_device.channelNumber_0_15)) |
whismanoid | 0:3edb3708c8c5 | 6729 | { |
whismanoid | 0:3edb3708c8c5 | 6730 | } |
whismanoid | 0:3edb3708c8c5 | 6731 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6732 | { |
whismanoid | 0:3edb3708c8c5 | 6733 | } |
whismanoid | 0:3edb3708c8c5 | 6734 | if (cmdLine.parse_byte_dec("id", g_MAX11131_device.chan_id_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6735 | { |
whismanoid | 0:3edb3708c8c5 | 6736 | } |
whismanoid | 0:3edb3708c8c5 | 6737 | cmdLine.serial().printf("ScanUpperExternalClock ch=%d pm=%d id=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6738 | g_MAX11131_device.channelNumber_0_15, |
whismanoid | 0:3edb3708c8c5 | 6739 | g_MAX11131_device.PowerManagement_0_2, |
whismanoid | 0:3edb3708c8c5 | 6740 | g_MAX11131_device.chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6741 | ); |
whismanoid | 0:3edb3708c8c5 | 6742 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6743 | // VERIFY: replace argument with driver global; g_MAX11131_device.chan_id_0_1 replaces chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6744 | // VERIFY: replace argument with driver global; g_MAX11131_device.channelNumber_0_15 replaces channelNumber_0_15 |
whismanoid | 0:3edb3708c8c5 | 6745 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanUpperExternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6746 | // |
whismanoid | 0:3edb3708c8c5 | 6747 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6748 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6749 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6750 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6751 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6752 | // |
whismanoid | 0:3edb3708c8c5 | 6753 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6754 | } |
whismanoid | 0:3edb3708c8c5 | 6755 | break; |
whismanoid | 0:3edb3708c8c5 | 6756 | case '7': |
whismanoid | 0:3edb3708c8c5 | 6757 | { |
whismanoid | 0:3edb3708c8c5 | 6758 | // recommended for hex command codes 70..7F |
whismanoid | 0:3edb3708c8c5 | 6759 | // VERIFY: console menu command 7 MAX11131_ScanCustomInternalClock(int16_t enabledChannelsMask, int average_0_4_8_16_32, int PowerManagement_0_2, int swcnv_0_1); |
whismanoid | 0:3edb3708c8c5 | 6760 | // TODO: cmdLine.serial().printf("\r\n 7 enableMask=0xffff av=? pm=? swcnv=? -- MAX11131_ScanCustomIntClock"); |
whismanoid | 0:3edb3708c8c5 | 6761 | // VERIFY: update value of g_MAX11131_device.average_0_4_8_16_32 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6762 | // VERIFY: update value of g_MAX11131_device.swcnv_0_1 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6763 | // VERIFY: update value of g_MAX11131_device.PowerManagement_0_2 option from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6764 | if (cmdLine.parse_int16_hex("enableMask", g_MAX11131_device.enabledChannelsMask)) |
whismanoid | 0:3edb3708c8c5 | 6765 | { |
whismanoid | 0:3edb3708c8c5 | 6766 | // TODO1: get g_MAX11131_device.enabledChannelsMask from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6767 | } |
whismanoid | 0:3edb3708c8c5 | 6768 | if (cmdLine.parse_byte_dec("av", g_MAX11131_device.average_0_4_8_16_32)) |
whismanoid | 0:3edb3708c8c5 | 6769 | { |
whismanoid | 0:3edb3708c8c5 | 6770 | } |
whismanoid | 0:3edb3708c8c5 | 6771 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6772 | { |
whismanoid | 0:3edb3708c8c5 | 6773 | } |
whismanoid | 0:3edb3708c8c5 | 6774 | if (cmdLine.parse_byte_dec("swcnv", g_MAX11131_device.swcnv_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6775 | { |
whismanoid | 0:3edb3708c8c5 | 6776 | } |
whismanoid | 0:3edb3708c8c5 | 6777 | cmdLine.serial().printf( |
whismanoid | 0:3edb3708c8c5 | 6778 | "ScanCustomInternalClock enabledChannelsMask:0x%4.4x average_0_4_8_16_32:%d pm=%d swcnv=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6779 | (g_MAX11131_device.enabledChannelsMask & 0xFFFF), |
whismanoid | 0:3edb3708c8c5 | 6780 | g_MAX11131_device.average_0_4_8_16_32, |
whismanoid | 0:3edb3708c8c5 | 6781 | g_MAX11131_device.PowerManagement_0_2, |
whismanoid | 0:3edb3708c8c5 | 6782 | g_MAX11131_device.swcnv_0_1 |
whismanoid | 0:3edb3708c8c5 | 6783 | ); |
whismanoid | 0:3edb3708c8c5 | 6784 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6785 | // VERIFY: replace argument with driver global; g_MAX11131_device.swcnv_0_1 replaces swcnv_0_1 |
whismanoid | 0:3edb3708c8c5 | 6786 | // VERIFY: replace argument with driver global; g_MAX11131_device.average_0_4_8_16_32 replaces average_0_4_8_16_32 |
whismanoid | 0:3edb3708c8c5 | 6787 | // VERIFY: replace argument with driver global; g_MAX11131_device.enabledChannelsMask replaces enabledChannelsMask |
whismanoid | 0:3edb3708c8c5 | 6788 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanCustomInternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6789 | // |
whismanoid | 0:3edb3708c8c5 | 6790 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6791 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6792 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6793 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6794 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6795 | // |
whismanoid | 0:3edb3708c8c5 | 6796 | AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6797 | } |
whismanoid | 0:3edb3708c8c5 | 6798 | break; |
whismanoid | 0:3edb3708c8c5 | 6799 | case '8': |
whismanoid | 0:3edb3708c8c5 | 6800 | { |
whismanoid | 0:3edb3708c8c5 | 6801 | // recommended for hex command codes 80..8F |
whismanoid | 0:3edb3708c8c5 | 6802 | // VERIFY: console menu command 8 MAX11131_ScanCustomExternalClock(int16_t enabledChannelsMask, int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6803 | // TODO: cmdLine.serial().printf("\r\n 8 enableMask=0xffff pm=0 id=1 -- MAX11131_ScanCustomExtClock"); |
whismanoid | 0:3edb3708c8c5 | 6804 | if (cmdLine.parse_int16_hex("enableMask", g_MAX11131_device.enabledChannelsMask)) |
whismanoid | 0:3edb3708c8c5 | 6805 | { |
whismanoid | 0:3edb3708c8c5 | 6806 | // TODO1: get g_MAX11131_device.enabledChannelsMask from strCommandArgs |
whismanoid | 0:3edb3708c8c5 | 6807 | } |
whismanoid | 0:3edb3708c8c5 | 6808 | if (cmdLine.parse_byte_dec("pm", g_MAX11131_device.PowerManagement_0_2)) |
whismanoid | 0:3edb3708c8c5 | 6809 | { |
whismanoid | 0:3edb3708c8c5 | 6810 | } |
whismanoid | 0:3edb3708c8c5 | 6811 | if (cmdLine.parse_byte_dec("id", g_MAX11131_device.chan_id_0_1)) |
whismanoid | 0:3edb3708c8c5 | 6812 | { |
whismanoid | 0:3edb3708c8c5 | 6813 | } |
whismanoid | 0:3edb3708c8c5 | 6814 | cmdLine.serial().printf("ScanCustomExternalClock enabledChannelsMask:0x%4.4x pm=%d id=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 6815 | (g_MAX11131_device.enabledChannelsMask & 0xFFFF), |
whismanoid | 0:3edb3708c8c5 | 6816 | g_MAX11131_device.PowerManagement_0_2, |
whismanoid | 0:3edb3708c8c5 | 6817 | g_MAX11131_device.chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6818 | ); |
whismanoid | 0:3edb3708c8c5 | 6819 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6820 | // VERIFY: replace argument with driver global; g_MAX11131_device.chan_id_0_1 replaces chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6821 | // VERIFY: replace argument with driver global; g_MAX11131_device.enabledChannelsMask replaces enabledChannelsMask |
whismanoid | 0:3edb3708c8c5 | 6822 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanCustomExternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6823 | // |
whismanoid | 0:3edb3708c8c5 | 6824 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6825 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6826 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6827 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6828 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6829 | // |
whismanoid | 0:3edb3708c8c5 | 6830 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6831 | } |
whismanoid | 0:3edb3708c8c5 | 6832 | break; |
whismanoid | 0:3edb3708c8c5 | 6833 | case '9': |
whismanoid | 0:3edb3708c8c5 | 6834 | { |
whismanoid | 0:3edb3708c8c5 | 6835 | // recommended for hex command codes 90..9F |
whismanoid | 0:3edb3708c8c5 | 6836 | // VERIFY: console menu command 9 MAX11131_ScanSampleSetExternalClock(uint8_t enabledChannelsPatternLength_1_256, int16_t enabledChannelsPattern[], int PowerManagement_0_2, int chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6837 | // TODO: cmdLine.serial().printf("\r\n 9 channelsPattern... pm=? id=? | len=? -- MAX11131_ScanSampleSetExtClock"); |
whismanoid | 0:3edb3708c8c5 | 6838 | // |
whismanoid | 0:3edb3708c8c5 | 6839 | // get MAX11131 Sampleset channel selection pattern parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6840 | // cmdLine.parse_byteCount_byteList_dec(byteCount, mosiData, MAX_SPI_BYTE_COUNT) |
whismanoid | 0:3edb3708c8c5 | 6841 | // into g_MAX11131_device.enabledChannelsPatternLength_1_256 |
whismanoid | 0:3edb3708c8c5 | 6842 | // into g_MAX11131_device.enabledChannelsPattern[0..255] |
whismanoid | 0:3edb3708c8c5 | 6843 | size_t numValues; |
whismanoid | 0:3edb3708c8c5 | 6844 | char valueList[256]; |
whismanoid | 0:3edb3708c8c5 | 6845 | if (cmdLine.parse_byteCount_byteList_dec( numValues, valueList, 256)) |
whismanoid | 0:3edb3708c8c5 | 6846 | { |
whismanoid | 0:3edb3708c8c5 | 6847 | // first value is the "9" command itself |
whismanoid | 0:3edb3708c8c5 | 6848 | g_MAX11131_device.enabledChannelsPatternLength_1_256 = numValues - 1; |
whismanoid | 0:3edb3708c8c5 | 6849 | // copy valueList[1, ...] into g_MAX11131_device.enabledChannelsPattern[0, ...] |
whismanoid | 0:3edb3708c8c5 | 6850 | for (size_t index = 0; index < (numValues - 1); index++) |
whismanoid | 0:3edb3708c8c5 | 6851 | { |
whismanoid | 0:3edb3708c8c5 | 6852 | g_MAX11131_device.enabledChannelsPattern[index] = valueList[1 + index]; |
whismanoid | 0:3edb3708c8c5 | 6853 | } |
whismanoid | 0:3edb3708c8c5 | 6854 | } |
whismanoid | 0:3edb3708c8c5 | 6855 | // |
whismanoid | 0:3edb3708c8c5 | 6856 | cmdLine.serial().printf("ScanSampleSetExternalClock enabledChannelsPattern:{ "); |
whismanoid | 0:3edb3708c8c5 | 6857 | int index; |
whismanoid | 0:3edb3708c8c5 | 6858 | for (index = 0; index < g_MAX11131_device.enabledChannelsPatternLength_1_256; index++) |
whismanoid | 0:3edb3708c8c5 | 6859 | { |
whismanoid | 0:3edb3708c8c5 | 6860 | //~ Serial.print( ((g_enabledChannelsPattern[index] >> 4) & 0x000F), DEC); |
whismanoid | 0:3edb3708c8c5 | 6861 | //~ Serial.print(" "); |
whismanoid | 0:3edb3708c8c5 | 6862 | cmdLine.serial().printf("AIN%d ", ((g_MAX11131_device.enabledChannelsPattern[index]) & 0x000F)); |
whismanoid | 0:3edb3708c8c5 | 6863 | } |
whismanoid | 0:3edb3708c8c5 | 6864 | cmdLine.serial().printf("}"); |
whismanoid | 0:3edb3708c8c5 | 6865 | cmdLine.serial().printf(" pm=%d id=%d\r\n", g_MAX11131_device.PowerManagement_0_2, |
whismanoid | 0:3edb3708c8c5 | 6866 | g_MAX11131_device.chan_id_0_1); |
whismanoid | 0:3edb3708c8c5 | 6867 | // VERIFY: replace argument with driver global; g_MAX11131_device.PowerManagement_0_2 replaces PowerManagement_0_2 |
whismanoid | 0:3edb3708c8c5 | 6868 | // VERIFY: replace argument with driver global; g_MAX11131_device.chan_id_0_1 replaces chan_id_0_1 |
whismanoid | 0:3edb3708c8c5 | 6869 | g_MAX11131_device.NumWords = g_MAX11131_device.ScanSampleSetExternalClock(); |
whismanoid | 0:3edb3708c8c5 | 6870 | // |
whismanoid | 0:3edb3708c8c5 | 6871 | // Read raw ADC codes from device into AINcode[] and RAW_misoData16[] |
whismanoid | 0:3edb3708c8c5 | 6872 | // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords |
whismanoid | 0:3edb3708c8c5 | 6873 | g_MAX11131_device.ReadAINcode(); |
whismanoid | 0:3edb3708c8c5 | 6874 | // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data |
whismanoid | 0:3edb3708c8c5 | 6875 | // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs |
whismanoid | 0:3edb3708c8c5 | 6876 | // |
whismanoid | 0:3edb3708c8c5 | 6877 | AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords); |
whismanoid | 0:3edb3708c8c5 | 6878 | } |
whismanoid | 0:3edb3708c8c5 | 6879 | break; |
whismanoid | 0:3edb3708c8c5 | 6880 | case 'a': case 'A': |
whismanoid | 0:3edb3708c8c5 | 6881 | { |
whismanoid | 0:3edb3708c8c5 | 6882 | // recommended for hex command codes A0..AF |
whismanoid | 0:3edb3708c8c5 | 6883 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6884 | { |
whismanoid | 0:3edb3708c8c5 | 6885 | case 't': case 'T': |
whismanoid | 0:3edb3708c8c5 | 6886 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6887 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6888 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 6889 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 6890 | // AT command: skip the prompt to avoid confusing modem detector |
whismanoid | 0:3edb3708c8c5 | 6891 | return; |
whismanoid | 0:3edb3708c8c5 | 6892 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 6893 | } |
whismanoid | 0:3edb3708c8c5 | 6894 | } |
whismanoid | 0:3edb3708c8c5 | 6895 | break; |
whismanoid | 0:3edb3708c8c5 | 6896 | case 'b': case 'B': |
whismanoid | 0:3edb3708c8c5 | 6897 | { |
whismanoid | 0:3edb3708c8c5 | 6898 | // recommended for hex command codes B0..BF |
whismanoid | 0:3edb3708c8c5 | 6899 | } |
whismanoid | 0:3edb3708c8c5 | 6900 | break; |
whismanoid | 0:3edb3708c8c5 | 6901 | case 'c': case 'C': |
whismanoid | 0:3edb3708c8c5 | 6902 | { |
whismanoid | 0:3edb3708c8c5 | 6903 | // recommended for hex command codes C0..CF |
whismanoid | 0:3edb3708c8c5 | 6904 | } |
whismanoid | 0:3edb3708c8c5 | 6905 | break; |
whismanoid | 0:3edb3708c8c5 | 6906 | case 'd': case 'D': |
whismanoid | 0:3edb3708c8c5 | 6907 | { |
whismanoid | 0:3edb3708c8c5 | 6908 | // recommended for hex command codes D0..DF |
whismanoid | 0:3edb3708c8c5 | 6909 | } |
whismanoid | 0:3edb3708c8c5 | 6910 | break; |
whismanoid | 0:3edb3708c8c5 | 6911 | case 'e': case 'E': |
whismanoid | 0:3edb3708c8c5 | 6912 | { |
whismanoid | 0:3edb3708c8c5 | 6913 | // recommended for hex command codes E0..EF |
whismanoid | 0:3edb3708c8c5 | 6914 | } |
whismanoid | 0:3edb3708c8c5 | 6915 | break; |
whismanoid | 0:3edb3708c8c5 | 6916 | case 'f': case 'F': |
whismanoid | 0:3edb3708c8c5 | 6917 | { |
whismanoid | 0:3edb3708c8c5 | 6918 | // recommended for hex command codes F0..FF |
whismanoid | 0:3edb3708c8c5 | 6919 | } |
whismanoid | 0:3edb3708c8c5 | 6920 | break; |
whismanoid | 0:3edb3708c8c5 | 6921 | case 'x': case 'X': |
whismanoid | 0:3edb3708c8c5 | 6922 | { |
whismanoid | 0:3edb3708c8c5 | 6923 | } |
whismanoid | 0:3edb3708c8c5 | 6924 | break; |
whismanoid | 0:3edb3708c8c5 | 6925 | case 'y': case 'Y': |
whismanoid | 0:3edb3708c8c5 | 6926 | { |
whismanoid | 0:3edb3708c8c5 | 6927 | } |
whismanoid | 0:3edb3708c8c5 | 6928 | break; |
whismanoid | 0:3edb3708c8c5 | 6929 | case 'i': case 'I': |
whismanoid | 0:3edb3708c8c5 | 6930 | { |
whismanoid | 0:3edb3708c8c5 | 6931 | // TODO: cmdLine.serial().printf("\r\n ISc) IUc) IBc) IRc) reconfigure channel single-ended/unipolar/bipolar/range"); |
whismanoid | 0:3edb3708c8c5 | 6932 | char strChannelId[3]; |
whismanoid | 0:3edb3708c8c5 | 6933 | strChannelId[0] = cmdLine[2]; |
whismanoid | 0:3edb3708c8c5 | 6934 | strChannelId[1] = cmdLine[3]; |
whismanoid | 0:3edb3708c8c5 | 6935 | strChannelId[2] = '\0'; |
whismanoid | 0:3edb3708c8c5 | 6936 | int channelId_0_15 = strtoul(strChannelId, NULL, 10); // strtol(str, NULL, 10): get decimal value |
whismanoid | 0:3edb3708c8c5 | 6937 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 6938 | { |
whismanoid | 0:3edb3708c8c5 | 6939 | case 's': case 'S': |
whismanoid | 0:3edb3708c8c5 | 6940 | g_MAX11131_device.Reconfigure_SingleEnded(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6941 | break; |
whismanoid | 0:3edb3708c8c5 | 6942 | case 'u': case 'U': |
whismanoid | 0:3edb3708c8c5 | 6943 | g_MAX11131_device.Reconfigure_DifferentialUnipolar(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6944 | break; |
whismanoid | 0:3edb3708c8c5 | 6945 | case 'b': case 'B': |
whismanoid | 0:3edb3708c8c5 | 6946 | g_MAX11131_device.Reconfigure_DifferentialBipolarFSVref(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6947 | break; |
whismanoid | 0:3edb3708c8c5 | 6948 | case 'r': case 'R': |
whismanoid | 0:3edb3708c8c5 | 6949 | g_MAX11131_device.Reconfigure_DifferentialBipolarFS2Vref(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6950 | break; |
whismanoid | 0:3edb3708c8c5 | 6951 | } |
whismanoid | 0:3edb3708c8c5 | 6952 | // char cmd1 = strCommandArgs[0]; |
whismanoid | 0:3edb3708c8c5 | 6953 | // strCommandArgs.remove(0, 1); // unsigned int index, unsigned int count |
whismanoid | 0:3edb3708c8c5 | 6954 | // // get argument int channelId_0_15 |
whismanoid | 0:3edb3708c8c5 | 6955 | // // parse_strCommandArgs(strCommandArgs); |
whismanoid | 0:3edb3708c8c5 | 6956 | // int channelId_0_15 = strtoul(strCommandArgs.c_str(), NULL, 10); // strtol(str, NULL, 10): get decimal value |
whismanoid | 0:3edb3708c8c5 | 6957 | // if (cmd1 == 'S') { |
whismanoid | 0:3edb3708c8c5 | 6958 | // MAX11131_Reconfigure_SingleEnded(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6959 | // } |
whismanoid | 0:3edb3708c8c5 | 6960 | // else if (cmd1 == 'U') { |
whismanoid | 0:3edb3708c8c5 | 6961 | // MAX11131_Reconfigure_DifferentialUnipolar(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6962 | // } |
whismanoid | 0:3edb3708c8c5 | 6963 | // else if (cmd1 == 'B') { |
whismanoid | 0:3edb3708c8c5 | 6964 | // MAX11131_Reconfigure_DifferentialBipolarFSVref(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6965 | // } |
whismanoid | 0:3edb3708c8c5 | 6966 | // else if (cmd1 == 'R') { |
whismanoid | 0:3edb3708c8c5 | 6967 | // MAX11131_Reconfigure_DifferentialBipolarFS2Vref(channelId_0_15); |
whismanoid | 0:3edb3708c8c5 | 6968 | // } |
whismanoid | 0:3edb3708c8c5 | 6969 | } |
whismanoid | 0:3edb3708c8c5 | 6970 | break; |
whismanoid | 0:3edb3708c8c5 | 6971 | case '@': |
whismanoid | 0:3edb3708c8c5 | 6972 | { |
whismanoid | 0:3edb3708c8c5 | 6973 | // TODO: cmdLine.serial().printf("\r\n @ -- print MAX11131 configuration"); |
whismanoid | 0:3edb3708c8c5 | 6974 | // print shadow register configuration |
whismanoid | 0:3edb3708c8c5 | 6975 | // |
whismanoid | 0:3edb3708c8c5 | 6976 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.ADC_MODE_CONTROL & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6977 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.ADC_MODE_CONTROL); |
whismanoid | 0:3edb3708c8c5 | 6978 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.ADC_CONFIGURATION & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6979 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.ADC_CONFIGURATION); |
whismanoid | 0:3edb3708c8c5 | 6980 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.UNIPOLAR & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6981 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.UNIPOLAR); |
whismanoid | 0:3edb3708c8c5 | 6982 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.BIPOLAR & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6983 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.BIPOLAR); |
whismanoid | 0:3edb3708c8c5 | 6984 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.RANGE & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6985 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.RANGE); |
whismanoid | 0:3edb3708c8c5 | 6986 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.CSCAN0 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6987 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.CSCAN0); |
whismanoid | 0:3edb3708c8c5 | 6988 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.CSCAN1 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6989 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.CSCAN1); |
whismanoid | 0:3edb3708c8c5 | 6990 | cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.SAMPLESET & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 6991 | MAX11131_print_register_verbose(cmdLine, g_MAX11131_device.SAMPLESET); |
whismanoid | 0:3edb3708c8c5 | 6992 | // |
whismanoid | 0:3edb3708c8c5 | 6993 | // VERIFY: print shadow SAMPLESET pattern entry |
whismanoid | 0:3edb3708c8c5 | 6994 | int entryIndex; |
whismanoid | 0:3edb3708c8c5 | 6995 | for (entryIndex = 0; entryIndex < g_MAX11131_device.enabledChannelsPatternLength_1_256; |
whismanoid | 0:3edb3708c8c5 | 6996 | entryIndex += 4) |
whismanoid | 0:3edb3708c8c5 | 6997 | { |
whismanoid | 0:3edb3708c8c5 | 6998 | uint16_t pack4channels = 0; |
whismanoid | 0:3edb3708c8c5 | 6999 | pack4channels |= (((g_MAX11131_device.enabledChannelsPattern[entryIndex + 0]) & 0x0F) << 12); |
whismanoid | 0:3edb3708c8c5 | 7000 | if ((entryIndex + 1) < g_MAX11131_device.enabledChannelsPatternLength_1_256) { |
whismanoid | 0:3edb3708c8c5 | 7001 | pack4channels |= (((g_MAX11131_device.enabledChannelsPattern[entryIndex + 1]) & 0x0F) << 8); |
whismanoid | 0:3edb3708c8c5 | 7002 | } |
whismanoid | 0:3edb3708c8c5 | 7003 | if ((entryIndex + 2) < g_MAX11131_device.enabledChannelsPatternLength_1_256) { |
whismanoid | 0:3edb3708c8c5 | 7004 | pack4channels |= (((g_MAX11131_device.enabledChannelsPattern[entryIndex + 2]) & 0x0F) << 4); |
whismanoid | 0:3edb3708c8c5 | 7005 | } |
whismanoid | 0:3edb3708c8c5 | 7006 | if ((entryIndex + 3) < g_MAX11131_device.enabledChannelsPatternLength_1_256) { |
whismanoid | 0:3edb3708c8c5 | 7007 | pack4channels |= ((g_MAX11131_device.enabledChannelsPattern[entryIndex + 3]) & 0x0F); |
whismanoid | 0:3edb3708c8c5 | 7008 | } |
whismanoid | 0:3edb3708c8c5 | 7009 | //~ SPIwrite16bits(pack4channels); |
whismanoid | 0:3edb3708c8c5 | 7010 | cmdLine.serial().printf(" 0x%4.4x", (pack4channels & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7011 | // decode SAMPLESET channel select pattern |
whismanoid | 0:3edb3708c8c5 | 7012 | cmdLine.serial().printf(" SampleSet Entry: AIN%d AIN%d AIN%d AIN%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 7013 | ((pack4channels >> 12) & 0x000F), |
whismanoid | 0:3edb3708c8c5 | 7014 | ((pack4channels >> 8) & 0x000F), |
whismanoid | 0:3edb3708c8c5 | 7015 | ((pack4channels >> 4) & 0x000F), |
whismanoid | 0:3edb3708c8c5 | 7016 | ((pack4channels ) & 0x000F) |
whismanoid | 0:3edb3708c8c5 | 7017 | ); |
whismanoid | 0:3edb3708c8c5 | 7018 | } |
whismanoid | 0:3edb3708c8c5 | 7019 | //cmdLine.serial().printf(" SAMPLESET enabledChannelsPattern:{ "); |
whismanoid | 0:3edb3708c8c5 | 7020 | //int index; |
whismanoid | 0:3edb3708c8c5 | 7021 | //for (index = 0; index < g_MAX11131_device.enabledChannelsPatternLength_1_256; index++) |
whismanoid | 0:3edb3708c8c5 | 7022 | //{ |
whismanoid | 0:3edb3708c8c5 | 7023 | // //~ cmdLine.serial().printf( ((g_enabledChannelsPattern[index] >> 4) & 0x000F), DEC); |
whismanoid | 0:3edb3708c8c5 | 7024 | // //~ cmdLine.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 7025 | // cmdLine.serial().printf("AIN"); |
whismanoid | 0:3edb3708c8c5 | 7026 | // cmdLine.serial().printf( ((g_MAX11131_device.enabledChannelsPattern[index]) & 0x000F), DEC); |
whismanoid | 0:3edb3708c8c5 | 7027 | // cmdLine.serial().printf(" "); |
whismanoid | 0:3edb3708c8c5 | 7028 | //} |
whismanoid | 0:3edb3708c8c5 | 7029 | //cmdLine.serial().printf("}"); |
whismanoid | 0:3edb3708c8c5 | 7030 | // |
whismanoid | 0:3edb3708c8c5 | 7031 | // Menu @) print MAX11131 configuration AND g_MAX11131_device globals |
whismanoid | 0:3edb3708c8c5 | 7032 | // |
whismanoid | 0:3edb3708c8c5 | 7033 | cmdLine.serial().printf("SPI_MOSI_Semantic=%d\r\n", (g_MAX11131_device.SPI_MOSI_Semantic & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7034 | cmdLine.serial().printf("NumWords=%d\r\n", (g_MAX11131_device.NumWords & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7035 | cmdLine.serial().printf("isExternalClock=%d\r\n", (g_MAX11131_device.isExternalClock & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7036 | cmdLine.serial().printf("ScanMode=%d\r\n", (g_MAX11131_device.ScanMode & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7037 | cmdLine.serial().printf("channelNumber_0_15=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 7038 | (g_MAX11131_device.channelNumber_0_15 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7039 | cmdLine.serial().printf("PowerManagement_0_2=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 7040 | (g_MAX11131_device.PowerManagement_0_2 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7041 | cmdLine.serial().printf("chan_id_0_1=%d\r\n", (g_MAX11131_device.chan_id_0_1 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7042 | cmdLine.serial().printf("average_0_4_8_16_32=%d\r\n", |
whismanoid | 0:3edb3708c8c5 | 7043 | (g_MAX11131_device.average_0_4_8_16_32 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7044 | cmdLine.serial().printf("nscan_4_8_12_16=%d\r\n", (g_MAX11131_device.nscan_4_8_12_16 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7045 | cmdLine.serial().printf("swcnv_0_1=%d\r\n", (g_MAX11131_device.swcnv_0_1 & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7046 | cmdLine.serial().printf("enabledChannelsMask=0x%4.4x\r\n", |
whismanoid | 0:3edb3708c8c5 | 7047 | (g_MAX11131_device.enabledChannelsMask & 0xFFFF)); |
whismanoid | 0:3edb3708c8c5 | 7048 | // |
whismanoid | 0:3edb3708c8c5 | 7049 | cmdLine.serial().printf("VRef=%5.3fV\r\n", g_MAX11131_device.VRef); |
whismanoid | 0:3edb3708c8c5 | 7050 | // dtostrf width and precision: 3.3V / 1024 LSB = 0.00322265625 volts per LSB |
whismanoid | 0:3edb3708c8c5 | 7051 | // |
whismanoid | 0:3edb3708c8c5 | 7052 | } |
whismanoid | 0:3edb3708c8c5 | 7053 | //case '&': |
whismanoid | 0:3edb3708c8c5 | 7054 | //{ |
whismanoid | 0:3edb3708c8c5 | 7055 | // // TODO: cmdLine.serial().printf("\r\n & -- MAX11131_Example_ScanManual"); |
whismanoid | 0:3edb3708c8c5 | 7056 | //} |
whismanoid | 0:3edb3708c8c5 | 7057 | break; |
whismanoid | 0:3edb3708c8c5 | 7058 | case '~': // TODO: IGNORE_AT_COMMANDS -- ignore ~~~ modem command |
whismanoid | 0:3edb3708c8c5 | 7059 | { |
whismanoid | 0:3edb3708c8c5 | 7060 | // TODO: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 7061 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7062 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7063 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7064 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7065 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7066 | } |
whismanoid | 0:3edb3708c8c5 | 7067 | break; |
whismanoid | 0:3edb3708c8c5 | 7068 | case '+': // TODO: IGNORE_AT_COMMANDS -- ignore +++ modem command |
whismanoid | 0:3edb3708c8c5 | 7069 | { |
whismanoid | 0:3edb3708c8c5 | 7070 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7071 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7072 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7073 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7074 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7075 | } |
whismanoid | 0:3edb3708c8c5 | 7076 | break; |
whismanoid | 0:3edb3708c8c5 | 7077 | #endif // APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 7078 | |
whismanoid | 0:3edb3708c8c5 | 7079 | #if APPLICATION_MAX5171 // main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 7080 | // MAX5171 main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 7081 | case '0': |
whismanoid | 0:3edb3708c8c5 | 7082 | { |
whismanoid | 0:3edb3708c8c5 | 7083 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7084 | //~ cmdLine.serial().printf("\r\n 0 code=? -- CODE"); |
whismanoid | 0:3edb3708c8c5 | 7085 | uint16_t code; |
whismanoid | 0:3edb3708c8c5 | 7086 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 7087 | { |
whismanoid | 0:3edb3708c8c5 | 7088 | } |
whismanoid | 0:3edb3708c8c5 | 7089 | cmdLine.serial().printf("CODE code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 7090 | g_MAX5171_device.CODE(code); |
whismanoid | 0:3edb3708c8c5 | 7091 | } |
whismanoid | 0:3edb3708c8c5 | 7092 | break; |
whismanoid | 0:3edb3708c8c5 | 7093 | case '4': |
whismanoid | 0:3edb3708c8c5 | 7094 | { |
whismanoid | 0:3edb3708c8c5 | 7095 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7096 | //~ cmdLine.serial().printf("\r\n 4 code=? -- CODE_LOAD"); |
whismanoid | 0:3edb3708c8c5 | 7097 | uint16_t code; |
whismanoid | 0:3edb3708c8c5 | 7098 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 7099 | { |
whismanoid | 0:3edb3708c8c5 | 7100 | } |
whismanoid | 0:3edb3708c8c5 | 7101 | cmdLine.serial().printf("CODE_LOAD code=%d", code); |
whismanoid | 0:3edb3708c8c5 | 7102 | g_MAX5171_device.CODE_LOAD(code); |
whismanoid | 0:3edb3708c8c5 | 7103 | } |
whismanoid | 0:3edb3708c8c5 | 7104 | break; |
whismanoid | 0:3edb3708c8c5 | 7105 | case '8': |
whismanoid | 0:3edb3708c8c5 | 7106 | { |
whismanoid | 0:3edb3708c8c5 | 7107 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7108 | //~ cmdLine.serial().printf("\r\n 8 -- LOAD"); |
whismanoid | 0:3edb3708c8c5 | 7109 | cmdLine.serial().printf("LOAD"); |
whismanoid | 0:3edb3708c8c5 | 7110 | g_MAX5171_device.LOAD(); |
whismanoid | 0:3edb3708c8c5 | 7111 | } |
whismanoid | 0:3edb3708c8c5 | 7112 | break; |
whismanoid | 0:3edb3708c8c5 | 7113 | case 'c': case 'C': |
whismanoid | 0:3edb3708c8c5 | 7114 | { |
whismanoid | 0:3edb3708c8c5 | 7115 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7116 | //~ cmdLine.serial().printf("\r\n c -- NOP"); |
whismanoid | 0:3edb3708c8c5 | 7117 | cmdLine.serial().printf("NOP"); |
whismanoid | 0:3edb3708c8c5 | 7118 | g_MAX5171_device.NOP(); |
whismanoid | 0:3edb3708c8c5 | 7119 | } |
whismanoid | 0:3edb3708c8c5 | 7120 | break; |
whismanoid | 0:3edb3708c8c5 | 7121 | case 'd': case 'D': |
whismanoid | 0:3edb3708c8c5 | 7122 | { |
whismanoid | 0:3edb3708c8c5 | 7123 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7124 | //~ cmdLine.serial().printf("\r\n d -- SHUTDOWN"); |
whismanoid | 0:3edb3708c8c5 | 7125 | cmdLine.serial().printf("SHUTDOWN"); |
whismanoid | 0:3edb3708c8c5 | 7126 | g_MAX5171_device.SHUTDOWN(); |
whismanoid | 0:3edb3708c8c5 | 7127 | } |
whismanoid | 0:3edb3708c8c5 | 7128 | break; |
whismanoid | 0:3edb3708c8c5 | 7129 | case 'e': case 'E': |
whismanoid | 0:3edb3708c8c5 | 7130 | { |
whismanoid | 0:3edb3708c8c5 | 7131 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 7132 | { |
whismanoid | 0:3edb3708c8c5 | 7133 | case '0': |
whismanoid | 0:3edb3708c8c5 | 7134 | { |
whismanoid | 0:3edb3708c8c5 | 7135 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7136 | //~ cmdLine.serial().printf("\r\n e0 -- UPO_LOW"); |
whismanoid | 0:3edb3708c8c5 | 7137 | cmdLine.serial().printf("UPO_LOW"); |
whismanoid | 0:3edb3708c8c5 | 7138 | g_MAX5171_device.UPO_LOW(); |
whismanoid | 0:3edb3708c8c5 | 7139 | } |
whismanoid | 0:3edb3708c8c5 | 7140 | break; |
whismanoid | 0:3edb3708c8c5 | 7141 | case '8': |
whismanoid | 0:3edb3708c8c5 | 7142 | { |
whismanoid | 0:3edb3708c8c5 | 7143 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7144 | //~ cmdLine.serial().printf("\r\n e8 -- UPO_HIGH"); |
whismanoid | 0:3edb3708c8c5 | 7145 | cmdLine.serial().printf("UPO_HIGH"); |
whismanoid | 0:3edb3708c8c5 | 7146 | g_MAX5171_device.UPO_HIGH(); |
whismanoid | 0:3edb3708c8c5 | 7147 | } |
whismanoid | 0:3edb3708c8c5 | 7148 | break; |
whismanoid | 0:3edb3708c8c5 | 7149 | } |
whismanoid | 0:3edb3708c8c5 | 7150 | } |
whismanoid | 0:3edb3708c8c5 | 7151 | break; |
whismanoid | 0:3edb3708c8c5 | 7152 | case 'f': case 'F': |
whismanoid | 0:3edb3708c8c5 | 7153 | { |
whismanoid | 0:3edb3708c8c5 | 7154 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 7155 | { |
whismanoid | 0:3edb3708c8c5 | 7156 | case '0': |
whismanoid | 0:3edb3708c8c5 | 7157 | { |
whismanoid | 0:3edb3708c8c5 | 7158 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7159 | //~ cmdLine.serial().printf("\r\n f0 -- MODE1_DOUT_SCLK_RISING_EDGE"); |
whismanoid | 0:3edb3708c8c5 | 7160 | cmdLine.serial().printf("MODE1_DOUT_SCLK_RISING_EDGE"); |
whismanoid | 0:3edb3708c8c5 | 7161 | g_MAX5171_device.MODE1_DOUT_SCLK_RISING_EDGE(); |
whismanoid | 0:3edb3708c8c5 | 7162 | } |
whismanoid | 0:3edb3708c8c5 | 7163 | break; |
whismanoid | 0:3edb3708c8c5 | 7164 | case '8': |
whismanoid | 0:3edb3708c8c5 | 7165 | { |
whismanoid | 0:3edb3708c8c5 | 7166 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7167 | //~ cmdLine.serial().printf("\r\n f8 -- MODE0_DOUT_SCLK_FALLING_EDGE"); |
whismanoid | 0:3edb3708c8c5 | 7168 | cmdLine.serial().printf("MODE0_DOUT_SCLK_FALLING_EDGE"); |
whismanoid | 0:3edb3708c8c5 | 7169 | g_MAX5171_device.MODE0_DOUT_SCLK_FALLING_EDGE(); |
whismanoid | 0:3edb3708c8c5 | 7170 | } |
whismanoid | 0:3edb3708c8c5 | 7171 | break; |
whismanoid | 0:3edb3708c8c5 | 7172 | } |
whismanoid | 0:3edb3708c8c5 | 7173 | } |
whismanoid | 0:3edb3708c8c5 | 7174 | break; |
whismanoid | 0:3edb3708c8c5 | 7175 | case 'a': case 'A': |
whismanoid | 0:3edb3708c8c5 | 7176 | { |
whismanoid | 0:3edb3708c8c5 | 7177 | // recommended for hex command codes A0..AF |
whismanoid | 0:3edb3708c8c5 | 7178 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 7179 | { |
whismanoid | 0:3edb3708c8c5 | 7180 | case 't': case 'T': |
whismanoid | 0:3edb3708c8c5 | 7181 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7182 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7183 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7184 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7185 | // AT command: skip the prompt to avoid confusing modem detector |
whismanoid | 0:3edb3708c8c5 | 7186 | return; |
whismanoid | 0:3edb3708c8c5 | 7187 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7188 | } |
whismanoid | 0:3edb3708c8c5 | 7189 | } |
whismanoid | 0:3edb3708c8c5 | 7190 | break; |
whismanoid | 0:3edb3708c8c5 | 7191 | case 'x': case 'X': |
whismanoid | 0:3edb3708c8c5 | 7192 | { |
whismanoid | 0:3edb3708c8c5 | 7193 | } |
whismanoid | 0:3edb3708c8c5 | 7194 | break; |
whismanoid | 0:3edb3708c8c5 | 7195 | case 'y': case 'Y': |
whismanoid | 0:3edb3708c8c5 | 7196 | { |
whismanoid | 0:3edb3708c8c5 | 7197 | } |
whismanoid | 0:3edb3708c8c5 | 7198 | break; |
whismanoid | 0:3edb3708c8c5 | 7199 | case 'z': case 'Z': |
whismanoid | 0:3edb3708c8c5 | 7200 | { |
whismanoid | 0:3edb3708c8c5 | 7201 | } |
whismanoid | 0:3edb3708c8c5 | 7202 | break; |
whismanoid | 0:3edb3708c8c5 | 7203 | case '~': // TODO: IGNORE_AT_COMMANDS -- ignore ~~~ modem command |
whismanoid | 0:3edb3708c8c5 | 7204 | { |
whismanoid | 0:3edb3708c8c5 | 7205 | // TODO: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 7206 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7207 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7208 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7209 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7210 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7211 | } |
whismanoid | 0:3edb3708c8c5 | 7212 | break; |
whismanoid | 0:3edb3708c8c5 | 7213 | case '+': // TODO: IGNORE_AT_COMMANDS -- ignore +++ modem command |
whismanoid | 0:3edb3708c8c5 | 7214 | { |
whismanoid | 0:3edb3708c8c5 | 7215 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7216 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7217 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7218 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7219 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7220 | } |
whismanoid | 0:3edb3708c8c5 | 7221 | break; |
whismanoid | 0:3edb3708c8c5 | 7222 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 7223 | |
whismanoid | 0:3edb3708c8c5 | 7224 | |
whismanoid | 0:3edb3708c8c5 | 7225 | #if APPLICATION_MAX11410 // main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 7226 | // TODO1: MAX11410 main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 7227 | case '0': |
whismanoid | 0:3edb3708c8c5 | 7228 | { |
whismanoid | 0:3edb3708c8c5 | 7229 | // recommended for hex command codes 00..0F |
whismanoid | 0:3edb3708c8c5 | 7230 | // placeholder: cmdLine.serial().printf("\r\n 3 ch=? code=? -- CODEnLOADn"); |
whismanoid | 0:3edb3708c8c5 | 7231 | uint16_t ch = g_MAX5715_device.channelNumber_0_3; |
whismanoid | 0:3edb3708c8c5 | 7232 | uint16_t code; |
whismanoid | 0:3edb3708c8c5 | 7233 | if (cmdLine.parse_uint16_dec("ch", ch)) |
whismanoid | 0:3edb3708c8c5 | 7234 | { |
whismanoid | 0:3edb3708c8c5 | 7235 | } |
whismanoid | 0:3edb3708c8c5 | 7236 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 7237 | { |
whismanoid | 0:3edb3708c8c5 | 7238 | } |
whismanoid | 0:3edb3708c8c5 | 7239 | if (cmdLine.parse_flag("xyzzy", g_xyzzy_flag, XYZZY_FLAG)) |
whismanoid | 0:3edb3708c8c5 | 7240 | { |
whismanoid | 0:3edb3708c8c5 | 7241 | isUpdatedSPIConfig = true; |
whismanoid | 0:3edb3708c8c5 | 7242 | } |
whismanoid | 0:3edb3708c8c5 | 7243 | cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 7244 | MAX5715_CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 7245 | cmdLine.serial().printf("\r\n placeholder"); |
whismanoid | 0:3edb3708c8c5 | 7246 | } |
whismanoid | 0:3edb3708c8c5 | 7247 | break; |
whismanoid | 0:3edb3708c8c5 | 7248 | case '1': |
whismanoid | 0:3edb3708c8c5 | 7249 | { |
whismanoid | 0:3edb3708c8c5 | 7250 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7251 | } |
whismanoid | 0:3edb3708c8c5 | 7252 | break; |
whismanoid | 0:3edb3708c8c5 | 7253 | case '2': |
whismanoid | 0:3edb3708c8c5 | 7254 | { |
whismanoid | 0:3edb3708c8c5 | 7255 | // recommended for hex command codes 20..2F |
whismanoid | 0:3edb3708c8c5 | 7256 | } |
whismanoid | 0:3edb3708c8c5 | 7257 | break; |
whismanoid | 0:3edb3708c8c5 | 7258 | case '3': |
whismanoid | 0:3edb3708c8c5 | 7259 | { |
whismanoid | 0:3edb3708c8c5 | 7260 | // recommended for hex command codes 30..3F |
whismanoid | 0:3edb3708c8c5 | 7261 | } |
whismanoid | 0:3edb3708c8c5 | 7262 | break; |
whismanoid | 0:3edb3708c8c5 | 7263 | case '4': |
whismanoid | 0:3edb3708c8c5 | 7264 | { |
whismanoid | 0:3edb3708c8c5 | 7265 | // recommended for hex command codes 40..4F |
whismanoid | 0:3edb3708c8c5 | 7266 | } |
whismanoid | 0:3edb3708c8c5 | 7267 | break; |
whismanoid | 0:3edb3708c8c5 | 7268 | case '5': |
whismanoid | 0:3edb3708c8c5 | 7269 | { |
whismanoid | 0:3edb3708c8c5 | 7270 | // recommended for hex command codes 50..5F |
whismanoid | 0:3edb3708c8c5 | 7271 | } |
whismanoid | 0:3edb3708c8c5 | 7272 | break; |
whismanoid | 0:3edb3708c8c5 | 7273 | case '6': |
whismanoid | 0:3edb3708c8c5 | 7274 | { |
whismanoid | 0:3edb3708c8c5 | 7275 | // recommended for hex command codes 60..6F |
whismanoid | 0:3edb3708c8c5 | 7276 | } |
whismanoid | 0:3edb3708c8c5 | 7277 | break; |
whismanoid | 0:3edb3708c8c5 | 7278 | case '7': |
whismanoid | 0:3edb3708c8c5 | 7279 | { |
whismanoid | 0:3edb3708c8c5 | 7280 | // recommended for hex command codes 70..7F |
whismanoid | 0:3edb3708c8c5 | 7281 | } |
whismanoid | 0:3edb3708c8c5 | 7282 | break; |
whismanoid | 0:3edb3708c8c5 | 7283 | case '8': |
whismanoid | 0:3edb3708c8c5 | 7284 | { |
whismanoid | 0:3edb3708c8c5 | 7285 | // recommended for hex command codes 80..8F |
whismanoid | 0:3edb3708c8c5 | 7286 | } |
whismanoid | 0:3edb3708c8c5 | 7287 | break; |
whismanoid | 0:3edb3708c8c5 | 7288 | case '9': |
whismanoid | 0:3edb3708c8c5 | 7289 | { |
whismanoid | 0:3edb3708c8c5 | 7290 | // recommended for hex command codes 90..9F |
whismanoid | 0:3edb3708c8c5 | 7291 | } |
whismanoid | 0:3edb3708c8c5 | 7292 | break; |
whismanoid | 0:3edb3708c8c5 | 7293 | case 'a': case 'A': |
whismanoid | 0:3edb3708c8c5 | 7294 | { |
whismanoid | 0:3edb3708c8c5 | 7295 | // recommended for hex command codes A0..AF |
whismanoid | 0:3edb3708c8c5 | 7296 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 7297 | { |
whismanoid | 0:3edb3708c8c5 | 7298 | case 't': case 'T': |
whismanoid | 0:3edb3708c8c5 | 7299 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7300 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7301 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7302 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7303 | // AT command: skip the prompt to avoid confusing modem detector |
whismanoid | 0:3edb3708c8c5 | 7304 | return; |
whismanoid | 0:3edb3708c8c5 | 7305 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7306 | } |
whismanoid | 0:3edb3708c8c5 | 7307 | } |
whismanoid | 0:3edb3708c8c5 | 7308 | break; |
whismanoid | 0:3edb3708c8c5 | 7309 | case 'b': case 'B': |
whismanoid | 0:3edb3708c8c5 | 7310 | { |
whismanoid | 0:3edb3708c8c5 | 7311 | // recommended for hex command codes B0..BF |
whismanoid | 0:3edb3708c8c5 | 7312 | } |
whismanoid | 0:3edb3708c8c5 | 7313 | break; |
whismanoid | 0:3edb3708c8c5 | 7314 | case 'c': case 'C': |
whismanoid | 0:3edb3708c8c5 | 7315 | { |
whismanoid | 0:3edb3708c8c5 | 7316 | // recommended for hex command codes C0..CF |
whismanoid | 0:3edb3708c8c5 | 7317 | } |
whismanoid | 0:3edb3708c8c5 | 7318 | break; |
whismanoid | 0:3edb3708c8c5 | 7319 | case 'd': case 'D': |
whismanoid | 0:3edb3708c8c5 | 7320 | { |
whismanoid | 0:3edb3708c8c5 | 7321 | // recommended for hex command codes D0..DF |
whismanoid | 0:3edb3708c8c5 | 7322 | } |
whismanoid | 0:3edb3708c8c5 | 7323 | break; |
whismanoid | 0:3edb3708c8c5 | 7324 | case 'e': case 'E': |
whismanoid | 0:3edb3708c8c5 | 7325 | { |
whismanoid | 0:3edb3708c8c5 | 7326 | // recommended for hex command codes E0..EF |
whismanoid | 0:3edb3708c8c5 | 7327 | } |
whismanoid | 0:3edb3708c8c5 | 7328 | break; |
whismanoid | 0:3edb3708c8c5 | 7329 | case 'f': case 'F': |
whismanoid | 0:3edb3708c8c5 | 7330 | { |
whismanoid | 0:3edb3708c8c5 | 7331 | // recommended for hex command codes F0..FF |
whismanoid | 0:3edb3708c8c5 | 7332 | } |
whismanoid | 0:3edb3708c8c5 | 7333 | break; |
whismanoid | 0:3edb3708c8c5 | 7334 | case 'x': case 'X': |
whismanoid | 0:3edb3708c8c5 | 7335 | { |
whismanoid | 0:3edb3708c8c5 | 7336 | } |
whismanoid | 0:3edb3708c8c5 | 7337 | break; |
whismanoid | 0:3edb3708c8c5 | 7338 | case 'y': case 'Y': |
whismanoid | 0:3edb3708c8c5 | 7339 | { |
whismanoid | 0:3edb3708c8c5 | 7340 | } |
whismanoid | 0:3edb3708c8c5 | 7341 | break; |
whismanoid | 0:3edb3708c8c5 | 7342 | case 'z': case 'Z': |
whismanoid | 0:3edb3708c8c5 | 7343 | { |
whismanoid | 0:3edb3708c8c5 | 7344 | } |
whismanoid | 0:3edb3708c8c5 | 7345 | break; |
whismanoid | 0:3edb3708c8c5 | 7346 | case '~': // TODO: IGNORE_AT_COMMANDS -- ignore ~~~ modem command |
whismanoid | 0:3edb3708c8c5 | 7347 | { |
whismanoid | 0:3edb3708c8c5 | 7348 | // TODO: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 7349 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7350 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7351 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7352 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7353 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7354 | } |
whismanoid | 0:3edb3708c8c5 | 7355 | break; |
whismanoid | 0:3edb3708c8c5 | 7356 | case '+': // TODO: IGNORE_AT_COMMANDS -- ignore +++ modem command |
whismanoid | 0:3edb3708c8c5 | 7357 | { |
whismanoid | 0:3edb3708c8c5 | 7358 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7359 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7360 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7361 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7362 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7363 | } |
whismanoid | 0:3edb3708c8c5 | 7364 | break; |
whismanoid | 0:3edb3708c8c5 | 7365 | #endif // APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 7366 | |
whismanoid | 0:3edb3708c8c5 | 7367 | |
whismanoid | 0:3edb3708c8c5 | 7368 | #if APPLICATION_MAX12345 // main_menu_onEOLcommandParser |
whismanoid | 0:3edb3708c8c5 | 7369 | case '0': |
whismanoid | 0:3edb3708c8c5 | 7370 | { |
whismanoid | 0:3edb3708c8c5 | 7371 | // recommended for hex command codes 00..0F |
whismanoid | 0:3edb3708c8c5 | 7372 | // placeholder: cmdLine.serial().printf("\r\n 3 ch=? code=? -- CODEnLOADn"); |
whismanoid | 0:3edb3708c8c5 | 7373 | uint16_t ch = g_MAX5715_device.channelNumber_0_3; |
whismanoid | 0:3edb3708c8c5 | 7374 | uint16_t code; |
whismanoid | 0:3edb3708c8c5 | 7375 | if (cmdLine.parse_uint16_dec("ch", ch)) |
whismanoid | 0:3edb3708c8c5 | 7376 | { |
whismanoid | 0:3edb3708c8c5 | 7377 | } |
whismanoid | 0:3edb3708c8c5 | 7378 | if (cmdLine.parse_uint16_dec("code", code)) |
whismanoid | 0:3edb3708c8c5 | 7379 | { |
whismanoid | 0:3edb3708c8c5 | 7380 | } |
whismanoid | 0:3edb3708c8c5 | 7381 | if (cmdLine.parse_flag("xyzzy", g_xyzzy_flag, XYZZY_FLAG)) |
whismanoid | 0:3edb3708c8c5 | 7382 | { |
whismanoid | 0:3edb3708c8c5 | 7383 | isUpdatedSPIConfig = true; |
whismanoid | 0:3edb3708c8c5 | 7384 | } |
whismanoid | 0:3edb3708c8c5 | 7385 | cmdLine.serial().printf("CODEnLOADn ch=%d code=%d", ch, code); |
whismanoid | 0:3edb3708c8c5 | 7386 | MAX5715_CODEnLOADn(ch, code); |
whismanoid | 0:3edb3708c8c5 | 7387 | cmdLine.serial().printf("\r\n placeholder"); |
whismanoid | 0:3edb3708c8c5 | 7388 | } |
whismanoid | 0:3edb3708c8c5 | 7389 | break; |
whismanoid | 0:3edb3708c8c5 | 7390 | case '1': |
whismanoid | 0:3edb3708c8c5 | 7391 | { |
whismanoid | 0:3edb3708c8c5 | 7392 | // recommended for hex command codes 10..1F |
whismanoid | 0:3edb3708c8c5 | 7393 | } |
whismanoid | 0:3edb3708c8c5 | 7394 | break; |
whismanoid | 0:3edb3708c8c5 | 7395 | case '2': |
whismanoid | 0:3edb3708c8c5 | 7396 | { |
whismanoid | 0:3edb3708c8c5 | 7397 | // recommended for hex command codes 20..2F |
whismanoid | 0:3edb3708c8c5 | 7398 | } |
whismanoid | 0:3edb3708c8c5 | 7399 | break; |
whismanoid | 0:3edb3708c8c5 | 7400 | case '3': |
whismanoid | 0:3edb3708c8c5 | 7401 | { |
whismanoid | 0:3edb3708c8c5 | 7402 | // recommended for hex command codes 30..3F |
whismanoid | 0:3edb3708c8c5 | 7403 | } |
whismanoid | 0:3edb3708c8c5 | 7404 | break; |
whismanoid | 0:3edb3708c8c5 | 7405 | case '4': |
whismanoid | 0:3edb3708c8c5 | 7406 | { |
whismanoid | 0:3edb3708c8c5 | 7407 | // recommended for hex command codes 40..4F |
whismanoid | 0:3edb3708c8c5 | 7408 | } |
whismanoid | 0:3edb3708c8c5 | 7409 | break; |
whismanoid | 0:3edb3708c8c5 | 7410 | case '5': |
whismanoid | 0:3edb3708c8c5 | 7411 | { |
whismanoid | 0:3edb3708c8c5 | 7412 | // recommended for hex command codes 50..5F |
whismanoid | 0:3edb3708c8c5 | 7413 | } |
whismanoid | 0:3edb3708c8c5 | 7414 | break; |
whismanoid | 0:3edb3708c8c5 | 7415 | case '6': |
whismanoid | 0:3edb3708c8c5 | 7416 | { |
whismanoid | 0:3edb3708c8c5 | 7417 | // recommended for hex command codes 60..6F |
whismanoid | 0:3edb3708c8c5 | 7418 | } |
whismanoid | 0:3edb3708c8c5 | 7419 | break; |
whismanoid | 0:3edb3708c8c5 | 7420 | case '7': |
whismanoid | 0:3edb3708c8c5 | 7421 | { |
whismanoid | 0:3edb3708c8c5 | 7422 | // recommended for hex command codes 70..7F |
whismanoid | 0:3edb3708c8c5 | 7423 | } |
whismanoid | 0:3edb3708c8c5 | 7424 | break; |
whismanoid | 0:3edb3708c8c5 | 7425 | case '8': |
whismanoid | 0:3edb3708c8c5 | 7426 | { |
whismanoid | 0:3edb3708c8c5 | 7427 | // recommended for hex command codes 80..8F |
whismanoid | 0:3edb3708c8c5 | 7428 | } |
whismanoid | 0:3edb3708c8c5 | 7429 | break; |
whismanoid | 0:3edb3708c8c5 | 7430 | case '9': |
whismanoid | 0:3edb3708c8c5 | 7431 | { |
whismanoid | 0:3edb3708c8c5 | 7432 | // recommended for hex command codes 90..9F |
whismanoid | 0:3edb3708c8c5 | 7433 | } |
whismanoid | 0:3edb3708c8c5 | 7434 | break; |
whismanoid | 0:3edb3708c8c5 | 7435 | case 'a': case 'A': |
whismanoid | 0:3edb3708c8c5 | 7436 | { |
whismanoid | 0:3edb3708c8c5 | 7437 | // recommended for hex command codes A0..AF |
whismanoid | 0:3edb3708c8c5 | 7438 | switch (cmdLine[1]) |
whismanoid | 0:3edb3708c8c5 | 7439 | { |
whismanoid | 0:3edb3708c8c5 | 7440 | case 't': case 'T': |
whismanoid | 0:3edb3708c8c5 | 7441 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7442 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7443 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7444 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7445 | // AT command: skip the prompt to avoid confusing modem detector |
whismanoid | 0:3edb3708c8c5 | 7446 | return; |
whismanoid | 0:3edb3708c8c5 | 7447 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7448 | } |
whismanoid | 0:3edb3708c8c5 | 7449 | } |
whismanoid | 0:3edb3708c8c5 | 7450 | break; |
whismanoid | 0:3edb3708c8c5 | 7451 | case 'b': case 'B': |
whismanoid | 0:3edb3708c8c5 | 7452 | { |
whismanoid | 0:3edb3708c8c5 | 7453 | // recommended for hex command codes B0..BF |
whismanoid | 0:3edb3708c8c5 | 7454 | } |
whismanoid | 0:3edb3708c8c5 | 7455 | break; |
whismanoid | 0:3edb3708c8c5 | 7456 | case 'c': case 'C': |
whismanoid | 0:3edb3708c8c5 | 7457 | { |
whismanoid | 0:3edb3708c8c5 | 7458 | // recommended for hex command codes C0..CF |
whismanoid | 0:3edb3708c8c5 | 7459 | } |
whismanoid | 0:3edb3708c8c5 | 7460 | break; |
whismanoid | 0:3edb3708c8c5 | 7461 | case 'd': case 'D': |
whismanoid | 0:3edb3708c8c5 | 7462 | { |
whismanoid | 0:3edb3708c8c5 | 7463 | // recommended for hex command codes D0..DF |
whismanoid | 0:3edb3708c8c5 | 7464 | } |
whismanoid | 0:3edb3708c8c5 | 7465 | break; |
whismanoid | 0:3edb3708c8c5 | 7466 | case 'e': case 'E': |
whismanoid | 0:3edb3708c8c5 | 7467 | { |
whismanoid | 0:3edb3708c8c5 | 7468 | // recommended for hex command codes E0..EF |
whismanoid | 0:3edb3708c8c5 | 7469 | } |
whismanoid | 0:3edb3708c8c5 | 7470 | break; |
whismanoid | 0:3edb3708c8c5 | 7471 | case 'f': case 'F': |
whismanoid | 0:3edb3708c8c5 | 7472 | { |
whismanoid | 0:3edb3708c8c5 | 7473 | // recommended for hex command codes F0..FF |
whismanoid | 0:3edb3708c8c5 | 7474 | } |
whismanoid | 0:3edb3708c8c5 | 7475 | break; |
whismanoid | 0:3edb3708c8c5 | 7476 | case 'x': case 'X': |
whismanoid | 0:3edb3708c8c5 | 7477 | { |
whismanoid | 0:3edb3708c8c5 | 7478 | } |
whismanoid | 0:3edb3708c8c5 | 7479 | break; |
whismanoid | 0:3edb3708c8c5 | 7480 | case 'y': case 'Y': |
whismanoid | 0:3edb3708c8c5 | 7481 | { |
whismanoid | 0:3edb3708c8c5 | 7482 | } |
whismanoid | 0:3edb3708c8c5 | 7483 | break; |
whismanoid | 0:3edb3708c8c5 | 7484 | case 'z': case 'Z': |
whismanoid | 0:3edb3708c8c5 | 7485 | { |
whismanoid | 0:3edb3708c8c5 | 7486 | } |
whismanoid | 0:3edb3708c8c5 | 7487 | break; |
whismanoid | 0:3edb3708c8c5 | 7488 | case '~': // TODO: IGNORE_AT_COMMANDS -- ignore ~~~ modem command |
whismanoid | 0:3edb3708c8c5 | 7489 | { |
whismanoid | 0:3edb3708c8c5 | 7490 | // TODO: '~' is not recommended for menu commands, interferes with ssh |
whismanoid | 0:3edb3708c8c5 | 7491 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7492 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7493 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7494 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7495 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7496 | } |
whismanoid | 0:3edb3708c8c5 | 7497 | break; |
whismanoid | 0:3edb3708c8c5 | 7498 | case '+': // TODO: IGNORE_AT_COMMANDS -- ignore +++ modem command |
whismanoid | 0:3edb3708c8c5 | 7499 | { |
whismanoid | 0:3edb3708c8c5 | 7500 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7501 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7502 | cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7503 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7504 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7505 | } |
whismanoid | 0:3edb3708c8c5 | 7506 | break; |
whismanoid | 0:3edb3708c8c5 | 7507 | #endif // APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 7508 | |
whismanoid | 0:3edb3708c8c5 | 7509 | //#if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7510 | // // tolerate AT commands, which may be sent during probe |
whismanoid | 0:3edb3708c8c5 | 7511 | // // "AT\r" |
whismanoid | 0:3edb3708c8c5 | 7512 | // // "AT+CGMI\r" -- request manufacturer identification AT+CMGI=? |
whismanoid | 0:3edb3708c8c5 | 7513 | // // "AT+CGMM\r" -- request manufacturer model |
whismanoid | 0:3edb3708c8c5 | 7514 | // // "AT%IPSYS?\r" |
whismanoid | 0:3edb3708c8c5 | 7515 | // // "ATE0\r" -- echo disable |
whismanoid | 0:3edb3708c8c5 | 7516 | // // "ATV1\r" -- verbose result codes OK | ERROR | NO CARRIER |
whismanoid | 0:3edb3708c8c5 | 7517 | // // menu_main() ignore_until_line_end: AT |
whismanoid | 0:3edb3708c8c5 | 7518 | // // menu_main() ignore_until_line_end: AT+CGMI |
whismanoid | 0:3edb3708c8c5 | 7519 | // // menu_main() ignore_until_line_end: AT+CGMM |
whismanoid | 0:3edb3708c8c5 | 7520 | // // menu_main() ignore_until_line_end: AT%IPSYS? |
whismanoid | 0:3edb3708c8c5 | 7521 | // // menu_main() ignore_until_line_end: ATE0 |
whismanoid | 0:3edb3708c8c5 | 7522 | // // menu_main() ignore_until_line_end: ATV1 |
whismanoid | 0:3edb3708c8c5 | 7523 | // // menu_main() ignore_until_line_end: AT+CMEE=1 |
whismanoid | 0:3edb3708c8c5 | 7524 | // // menu_main() ignore_until_line_end: ATX4 |
whismanoid | 0:3edb3708c8c5 | 7525 | // // menu_main() ignore_until_line_end: AT&C1 |
whismanoid | 0:3edb3708c8c5 | 7526 | // // menu_main() ignore_until_line_end: ATE0 |
whismanoid | 0:3edb3708c8c5 | 7527 | // // menu_main() ignore_until_line_end: AT+CMEE=1 |
whismanoid | 0:3edb3708c8c5 | 7528 | // // menu_main() ignore_until_line_end: AT+GCAP |
whismanoid | 0:3edb3708c8c5 | 7529 | // // menu_main() ignore_until_line_end: ATI |
whismanoid | 0:3edb3708c8c5 | 7530 | // // menu_main() ignore_until_line_end: AT+CPIN? |
whismanoid | 0:3edb3708c8c5 | 7531 | // // menu_main() ignore_until_line_end: AT+CGMM |
whismanoid | 0:3edb3708c8c5 | 7532 | // case 'A': |
whismanoid | 0:3edb3708c8c5 | 7533 | // // likely unwanted AT command, host probing for a modem. |
whismanoid | 0:3edb3708c8c5 | 7534 | // // ignore everything up to next line end '\r' or '\n'. |
whismanoid | 0:3edb3708c8c5 | 7535 | // //~ ignore_until_line_end = true; |
whismanoid | 0:3edb3708c8c5 | 7536 | //# if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7537 | // cmdLine_DAPLINKserial.serial().printf("\r\n ignore AT command \"%s\"\r\n", cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7538 | //# endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7539 | // //~ goto label_menu_main_idle; |
whismanoid | 0:3edb3708c8c5 | 7540 | // break; |
whismanoid | 0:3edb3708c8c5 | 7541 | //#endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7542 | // |
whismanoid | 0:3edb3708c8c5 | 7543 | // |
whismanoid | 0:3edb3708c8c5 | 7544 | // TODO1: add new commands here |
whismanoid | 0:3edb3708c8c5 | 7545 | // |
whismanoid | 0:3edb3708c8c5 | 7546 | default: |
whismanoid | 0:3edb3708c8c5 | 7547 | cmdLine.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", cmdLine.str()[0], cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7548 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7549 | cmdLine_DAPLINKserial.serial().printf("\r\n unknown command 0x%2.2x \"%s\"\r\n", |
whismanoid | 0:3edb3708c8c5 | 7550 | cmdLine.str()[0], cmdLine.str()); |
whismanoid | 0:3edb3708c8c5 | 7551 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7552 | } // switch (cmdLine[0]) |
whismanoid | 0:3edb3708c8c5 | 7553 | // |
whismanoid | 0:3edb3708c8c5 | 7554 | // print command prompt |
whismanoid | 0:3edb3708c8c5 | 7555 | #if APPLICATION_MAX5715 // main_menu_onEOLcommandParser print command prompt |
whismanoid | 0:3edb3708c8c5 | 7556 | cmdLine.serial().printf("\r\nMAX5715 > "); |
whismanoid | 0:3edb3708c8c5 | 7557 | #elif APPLICATION_MAX11131 // main_menu_onEOLcommandParser print command prompt |
whismanoid | 0:3edb3708c8c5 | 7558 | cmdLine.serial().printf("\r\nMAX11131 > "); |
whismanoid | 0:3edb3708c8c5 | 7559 | #elif APPLICATION_MAX5171 // main_menu_onEOLcommandParser print command prompt |
whismanoid | 0:3edb3708c8c5 | 7560 | cmdLine.serial().printf("\r\nMAX5171 > "); |
whismanoid | 0:3edb3708c8c5 | 7561 | #elif APPLICATION_MAX11410 // main_menu_onEOLcommandParser print command prompt |
whismanoid | 0:3edb3708c8c5 | 7562 | cmdLine.serial().printf("\r\nMAX11410 > "); |
whismanoid | 0:3edb3708c8c5 | 7563 | #elif APPLICATION_MAX12345 // main_menu_onEOLcommandParser print command prompt |
whismanoid | 0:3edb3708c8c5 | 7564 | cmdLine.serial().printf("\r\nMAX12345 > "); |
whismanoid | 0:3edb3708c8c5 | 7565 | #else |
whismanoid | 0:3edb3708c8c5 | 7566 | cmdLine.serial().printf("\r\n> "); |
whismanoid | 0:3edb3708c8c5 | 7567 | #endif |
whismanoid | 0:3edb3708c8c5 | 7568 | } |
whismanoid | 0:3edb3708c8c5 | 7569 | #endif //USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 7570 | |
whismanoid | 0:3edb3708c8c5 | 7571 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7572 | void InitializeConfiguration() |
whismanoid | 0:3edb3708c8c5 | 7573 | { |
whismanoid | 0:3edb3708c8c5 | 7574 | |
whismanoid | 0:3edb3708c8c5 | 7575 | #if APPLICATION_MAX5715 // InitializeConfiguration |
whismanoid | 0:3edb3708c8c5 | 7576 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7577 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX5715_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7578 | # endif |
whismanoid | 0:3edb3708c8c5 | 7579 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7580 | cmdLine_microUSBserial.serial().printf("\r\nMAX5715_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7581 | # endif |
whismanoid | 0:3edb3708c8c5 | 7582 | int initResult = g_MAX5715_device.Init(); // defined in #include MAX5715.h |
whismanoid | 0:3edb3708c8c5 | 7583 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7584 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX5715_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7585 | # endif |
whismanoid | 0:3edb3708c8c5 | 7586 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7587 | cmdLine_microUSBserial.serial().printf("\r\nMAX5715_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7588 | # endif |
whismanoid | 0:3edb3708c8c5 | 7589 | #endif // APPLICATION_MAX5715 |
whismanoid | 0:3edb3708c8c5 | 7590 | |
whismanoid | 0:3edb3708c8c5 | 7591 | #if APPLICATION_MAX11131 // InitializeConfiguration |
whismanoid | 0:3edb3708c8c5 | 7592 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7593 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX11131_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7594 | # endif |
whismanoid | 0:3edb3708c8c5 | 7595 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7596 | cmdLine_microUSBserial.serial().printf("\r\nMAX11131_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7597 | # endif |
whismanoid | 0:3edb3708c8c5 | 7598 | g_MAX11131_device.Init(); // defined in #include MAX11131.h |
whismanoid | 0:3edb3708c8c5 | 7599 | #endif // APPLICATION_MAX11131 |
whismanoid | 0:3edb3708c8c5 | 7600 | |
whismanoid | 0:3edb3708c8c5 | 7601 | #if APPLICATION_MAX5171 // InitializeConfiguration |
whismanoid | 0:3edb3708c8c5 | 7602 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7603 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX5171_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7604 | # endif |
whismanoid | 0:3edb3708c8c5 | 7605 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7606 | cmdLine_microUSBserial.serial().printf("\r\nMAX5171_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7607 | # endif |
whismanoid | 0:3edb3708c8c5 | 7608 | int initResult = g_MAX5171_device.Init(); // defined in #include MAX5171.h |
whismanoid | 0:3edb3708c8c5 | 7609 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7610 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX5171_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7611 | # endif |
whismanoid | 0:3edb3708c8c5 | 7612 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7613 | cmdLine_microUSBserial.serial().printf("\r\nMAX5171_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7614 | # endif |
whismanoid | 0:3edb3708c8c5 | 7615 | #endif // APPLICATION_MAX5171 |
whismanoid | 0:3edb3708c8c5 | 7616 | |
whismanoid | 0:3edb3708c8c5 | 7617 | #if APPLICATION_MAX11410 // InitializeConfiguration |
whismanoid | 0:3edb3708c8c5 | 7618 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7619 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX11410_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7620 | # endif |
whismanoid | 0:3edb3708c8c5 | 7621 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7622 | cmdLine_microUSBserial.serial().printf("\r\nMAX11410_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7623 | # endif |
whismanoid | 0:3edb3708c8c5 | 7624 | int initResult = g_MAX11410_device.Init(); // defined in #include MAX11410.h |
whismanoid | 0:3edb3708c8c5 | 7625 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7626 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX11410_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7627 | # endif |
whismanoid | 0:3edb3708c8c5 | 7628 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7629 | cmdLine_microUSBserial.serial().printf("\r\nMAX11410_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7630 | # endif |
whismanoid | 0:3edb3708c8c5 | 7631 | #endif // APPLICATION_MAX11410 |
whismanoid | 0:3edb3708c8c5 | 7632 | |
whismanoid | 0:3edb3708c8c5 | 7633 | #if APPLICATION_MAX12345 // InitializeConfiguration |
whismanoid | 0:3edb3708c8c5 | 7634 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7635 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX12345_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7636 | # endif |
whismanoid | 0:3edb3708c8c5 | 7637 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7638 | cmdLine_microUSBserial.serial().printf("\r\nMAX12345_Init()"); |
whismanoid | 0:3edb3708c8c5 | 7639 | # endif |
whismanoid | 0:3edb3708c8c5 | 7640 | int initResult = MAX12345_Init(); // defined in #include MAX12345.h |
whismanoid | 0:3edb3708c8c5 | 7641 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7642 | cmdLine_DAPLINKserial.serial().printf("\r\nMAX12345_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7643 | # endif |
whismanoid | 0:3edb3708c8c5 | 7644 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7645 | cmdLine_microUSBserial.serial().printf("\r\nMAX12345_Init() returned %d\r\n", initResult); |
whismanoid | 0:3edb3708c8c5 | 7646 | # endif |
whismanoid | 0:3edb3708c8c5 | 7647 | #endif // APPLICATION_MAX12345 |
whismanoid | 0:3edb3708c8c5 | 7648 | |
whismanoid | 0:3edb3708c8c5 | 7649 | } |
whismanoid | 0:3edb3708c8c5 | 7650 | |
whismanoid | 0:3edb3708c8c5 | 7651 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7652 | // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7653 | void diagnostic_led_EOF() |
whismanoid | 0:3edb3708c8c5 | 7654 | { |
whismanoid | 0:3edb3708c8c5 | 7655 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7656 | led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 7657 | // 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 | 0:3edb3708c8c5 | 7658 | ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 7659 | led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7660 | ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 7661 | led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 7662 | ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 7663 | led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7664 | ThisThread::sleep_for(250); // [since mbed-os-5.10] vs Thread::wait(250); |
whismanoid | 0:3edb3708c8c5 | 7665 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7666 | } |
whismanoid | 0:3edb3708c8c5 | 7667 | |
whismanoid | 0:3edb3708c8c5 | 7668 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7669 | // Support commands that get handled immediately w/o waiting for EOL |
whismanoid | 0:3edb3708c8c5 | 7670 | // handled as immediate command, do not append to buffer |
whismanoid | 0:3edb3708c8c5 | 7671 | void on_immediate_0x21() // Unicode (U+0021) ! EXCLAMATION MARK |
whismanoid | 0:3edb3708c8c5 | 7672 | { |
whismanoid | 0:3edb3708c8c5 | 7673 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7674 | led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 7675 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7676 | InitializeConfiguration(); |
whismanoid | 0:3edb3708c8c5 | 7677 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7678 | } |
whismanoid | 0:3edb3708c8c5 | 7679 | |
whismanoid | 0:3edb3708c8c5 | 7680 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7681 | // Support commands that get handled immediately w/o waiting for EOL |
whismanoid | 0:3edb3708c8c5 | 7682 | // handled as immediate command, do not append to buffer |
whismanoid | 0:3edb3708c8c5 | 7683 | void on_immediate_0x7b() // Unicode (U+007B) { LEFT CURLY BRACKET |
whismanoid | 0:3edb3708c8c5 | 7684 | { |
whismanoid | 0:3edb3708c8c5 | 7685 | //~ led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7686 | //~ InitializeConfiguration(); |
whismanoid | 0:3edb3708c8c5 | 7687 | //~ ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7688 | #if HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7689 | onButton2FallingEdge(); |
whismanoid | 0:3edb3708c8c5 | 7690 | #endif |
whismanoid | 0:3edb3708c8c5 | 7691 | } |
whismanoid | 0:3edb3708c8c5 | 7692 | |
whismanoid | 0:3edb3708c8c5 | 7693 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7694 | // Support commands that get handled immediately w/o waiting for EOL |
whismanoid | 0:3edb3708c8c5 | 7695 | // handled as immediate command, do not append to buffer |
whismanoid | 0:3edb3708c8c5 | 7696 | void on_immediate_0x7d() // Unicode (U+007D) } RIGHT CURLY BRACKET |
whismanoid | 0:3edb3708c8c5 | 7697 | { |
whismanoid | 0:3edb3708c8c5 | 7698 | //~ led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7699 | //~ InitializeConfiguration(); |
whismanoid | 0:3edb3708c8c5 | 7700 | //~ ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7701 | #if HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7702 | onButton1FallingEdge(); |
whismanoid | 0:3edb3708c8c5 | 7703 | #endif |
whismanoid | 0:3edb3708c8c5 | 7704 | } |
whismanoid | 0:3edb3708c8c5 | 7705 | |
whismanoid | 0:3edb3708c8c5 | 7706 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7707 | // based on example code: https://os.mbed.com/docs/v5.7/reference/pwmout.html |
whismanoid | 0:3edb3708c8c5 | 7708 | int main() |
whismanoid | 0:3edb3708c8c5 | 7709 | { |
whismanoid | 0:3edb3708c8c5 | 7710 | //#ifdef SCOPE_TRIG_PIN |
whismanoid | 0:3edb3708c8c5 | 7711 | // //pinMode(SCOPE_TRIG_PIN, OUTPUT); |
whismanoid | 0:3edb3708c8c5 | 7712 | // scopeTrigPinP11 = 0; // digitalWrite(SCOPE_TRIG_PIN, LOW); |
whismanoid | 0:3edb3708c8c5 | 7713 | // scopeTrigPinP11 = 1; // digitalWrite(SCOPE_TRIG_PIN, HIGH); |
whismanoid | 0:3edb3708c8c5 | 7714 | //#endif // SCOPE_TRIG_PIN |
whismanoid | 0:3edb3708c8c5 | 7715 | |
whismanoid | 0:3edb3708c8c5 | 7716 | // Configure serial ports |
whismanoid | 0:3edb3708c8c5 | 7717 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 7718 | // Note: DAPLINKserial interferes with the timer tick interrupt. Try faster baud rate? |
whismanoid | 0:3edb3708c8c5 | 7719 | DAPLINKserial.baud(115200); // default 9600 baud |
whismanoid | 0:3edb3708c8c5 | 7720 | //microUSBserial.baud(9600); // class USBSerial has no baud function |
whismanoid | 0:3edb3708c8c5 | 7721 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7722 | DAPLINKserial.printf("\r\n\r\nDAPLINK_SERIAL: main() startup\r\n"); |
whismanoid | 0:3edb3708c8c5 | 7723 | # endif |
whismanoid | 0:3edb3708c8c5 | 7724 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7725 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 7726 | // MAX32625MBED crash if DAPLINKserial.baud(anything other than 9600 baud) |
whismanoid | 0:3edb3708c8c5 | 7727 | // xxx DAPLINKserial.baud(115200); // default 9600 baud |
whismanoid | 0:3edb3708c8c5 | 7728 | //microUSBserial.baud(9600); // class USBSerial has no baud function |
whismanoid | 0:3edb3708c8c5 | 7729 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7730 | DAPLINKserial.printf("\r\n\r\nDAPLINK_SERIAL: main() startup\r\n"); |
whismanoid | 0:3edb3708c8c5 | 7731 | # endif |
whismanoid | 0:3edb3708c8c5 | 7732 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7733 | #elif defined(TARGET_LPC1768) |
whismanoid | 0:3edb3708c8c5 | 7734 | microUSBserial.baud(115200); // default 9600 baud |
whismanoid | 0:3edb3708c8c5 | 7735 | #else |
whismanoid | 0:3edb3708c8c5 | 7736 | // unknown target |
whismanoid | 0:3edb3708c8c5 | 7737 | #endif |
whismanoid | 0:3edb3708c8c5 | 7738 | #if USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 7739 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7740 | cmdLine_microUSBserial.clear(); |
whismanoid | 0:3edb3708c8c5 | 7741 | //~ cmdLine_microUSBserial.serial().printf("\r\n cmdLine_microUSBserial.serial().printf test\r\n"); |
whismanoid | 0:3edb3708c8c5 | 7742 | cmdLine_microUSBserial.onEOLcommandParser = main_menu_onEOLcommandParser; |
whismanoid | 0:3edb3708c8c5 | 7743 | /// @todo CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21); |
whismanoid | 0:3edb3708c8c5 | 7744 | cmdLine_microUSBserial.on_immediate_0x21 = on_immediate_0x21; |
whismanoid | 0:3edb3708c8c5 | 7745 | cmdLine_microUSBserial.on_immediate_0x7b = on_immediate_0x7b; |
whismanoid | 0:3edb3708c8c5 | 7746 | cmdLine_microUSBserial.on_immediate_0x7d = on_immediate_0x7d; |
whismanoid | 0:3edb3708c8c5 | 7747 | # endif |
whismanoid | 0:3edb3708c8c5 | 7748 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7749 | cmdLine_DAPLINKserial.clear(); |
whismanoid | 0:3edb3708c8c5 | 7750 | //~ cmdLine_DAPLINKserial.serial().printf("\r\n cmdLine_DAPLINKserial.serial().printf test\r\n"); |
whismanoid | 0:3edb3708c8c5 | 7751 | cmdLine_DAPLINKserial.onEOLcommandParser = main_menu_onEOLcommandParser; |
whismanoid | 0:3edb3708c8c5 | 7752 | /// @todo CmdLine::set_immediate_handler(char, functionPointer_void_void_on_immediate_0x21); |
whismanoid | 0:3edb3708c8c5 | 7753 | cmdLine_DAPLINKserial.on_immediate_0x21 = on_immediate_0x21; |
whismanoid | 0:3edb3708c8c5 | 7754 | cmdLine_DAPLINKserial.on_immediate_0x7b = on_immediate_0x7b; |
whismanoid | 0:3edb3708c8c5 | 7755 | cmdLine_DAPLINKserial.on_immediate_0x7d = on_immediate_0x7d; |
whismanoid | 0:3edb3708c8c5 | 7756 | # endif |
whismanoid | 0:3edb3708c8c5 | 7757 | #endif |
whismanoid | 0:3edb3708c8c5 | 7758 | |
whismanoid | 0:3edb3708c8c5 | 7759 | |
whismanoid | 0:3edb3708c8c5 | 7760 | print_banner(); |
whismanoid | 0:3edb3708c8c5 | 7761 | |
whismanoid | 0:3edb3708c8c5 | 7762 | //#ifdef SCOPE_TRIG_PIN |
whismanoid | 0:3edb3708c8c5 | 7763 | // scopePinP12 = 0; |
whismanoid | 0:3edb3708c8c5 | 7764 | // scopePinP12 = 1; |
whismanoid | 0:3edb3708c8c5 | 7765 | //#endif // SCOPE_TRIG_PIN |
whismanoid | 0:3edb3708c8c5 | 7766 | |
whismanoid | 0:3edb3708c8c5 | 7767 | #if HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7768 | # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING |
whismanoid | 0:3edb3708c8c5 | 7769 | # else |
whismanoid | 0:3edb3708c8c5 | 7770 | button1.fall(&onButton1FallingEdge); |
whismanoid | 0:3edb3708c8c5 | 7771 | # endif |
whismanoid | 0:3edb3708c8c5 | 7772 | #endif // HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7773 | #if HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7774 | # if HAS_BUTTON1_DEMO_INTERRUPT_POLLING |
whismanoid | 0:3edb3708c8c5 | 7775 | # else |
whismanoid | 0:3edb3708c8c5 | 7776 | button2.fall(&onButton2FallingEdge); |
whismanoid | 0:3edb3708c8c5 | 7777 | # endif |
whismanoid | 0:3edb3708c8c5 | 7778 | #endif // HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7779 | |
whismanoid | 0:3edb3708c8c5 | 7780 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 7781 | // TODO1: timer tick needs to be the highest priority (priority 0, the default). |
whismanoid | 0:3edb3708c8c5 | 7782 | // TODO1: DAPLINKserial interferes with the timer tick interrupt. |
whismanoid | 0:3edb3708c8c5 | 7783 | // Lower the priority of the serial port interrupts to avoid disrupting motor operation. |
whismanoid | 0:3edb3708c8c5 | 7784 | NVIC_SetPriority(UART0_IRQn, 2); // reservedBlueToothSerial(P0_1, P0_0) // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7785 | NVIC_SetPriority(UART1_IRQn, 2); // DAPLINKserial(P2_1, P2_0) // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7786 | NVIC_SetPriority(UART2_IRQn, 2); // reservedSerial(P3_1, P3_0) // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7787 | NVIC_SetPriority(UART3_IRQn, 2); // reservedSerial(P5_4, P5_3) // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7788 | NVIC_SetPriority(GPIO_P0_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7789 | NVIC_SetPriority(GPIO_P1_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7790 | NVIC_SetPriority(GPIO_P2_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7791 | NVIC_SetPriority(GPIO_P3_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7792 | NVIC_SetPriority(GPIO_P4_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7793 | NVIC_SetPriority(GPIO_P5_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7794 | NVIC_SetPriority(GPIO_P6_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7795 | NVIC_SetPriority(GPIO_P7_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7796 | NVIC_SetPriority(GPIO_P8_IRQn, 2); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7797 | //~ NVIC_SetPriority(RTC0_IRQn, 0); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7798 | //~ NVIC_SetPriority(RTC3_IRQn, 0); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7799 | //~ NVIC_SetPriority(US_TIMER_IRQn, 0); // 0=highest priority; 1=lower |
whismanoid | 0:3edb3708c8c5 | 7800 | #endif |
whismanoid | 0:3edb3708c8c5 | 7801 | |
whismanoid | 0:3edb3708c8c5 | 7802 | #if HAS_SPI |
whismanoid | 0:3edb3708c8c5 | 7803 | // spi init |
whismanoid | 0:3edb3708c8c5 | 7804 | // mode | POL PHA |
whismanoid | 0:3edb3708c8c5 | 7805 | // -----+-------- |
whismanoid | 0:3edb3708c8c5 | 7806 | // 0 | 0 0 |
whismanoid | 0:3edb3708c8c5 | 7807 | // 1 | 0 1 |
whismanoid | 0:3edb3708c8c5 | 7808 | // 2 | 1 0 |
whismanoid | 0:3edb3708c8c5 | 7809 | // 3 | 1 1 |
whismanoid | 0:3edb3708c8c5 | 7810 | //~ spi.format(8,0); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 rising edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 7811 | //~ spi.format(8,1); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=1 falling edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 7812 | //~ spi.format(8,2); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=0 falling edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 7813 | //~ spi.format(8,3); // int bits_must_be_8, int mode=0_3 CPOL=1,CPHA=1 rising edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 7814 | // |
whismanoid | 0:3edb3708c8c5 | 7815 | //~ spi.frequency(1000000); // int SCLK_Hz=1000000 = 1MHz (initial default) |
whismanoid | 0:3edb3708c8c5 | 7816 | //~ spi.frequency(9600000); // int SCLK_Hz=9600000 = 9.6MHz = 96MHz/10 |
whismanoid | 0:3edb3708c8c5 | 7817 | //~ spi.frequency(10666666); // int SCLK_Hz=10666666 = 10.6MHz = 96MHz/9 |
whismanoid | 0:3edb3708c8c5 | 7818 | //~ spi.frequency(12000000); // int SCLK_Hz=12000000 = 12MHz = 96MHz/8 |
whismanoid | 0:3edb3708c8c5 | 7819 | //~ spi.frequency(13714286); // int SCLK_Hz=13714286 = 13.7MHz = 96MHz/7 |
whismanoid | 0:3edb3708c8c5 | 7820 | //~ spi.frequency(16000000); // int SCLK_Hz=16000000 = 16MHz = 96MHz/6 |
whismanoid | 0:3edb3708c8c5 | 7821 | //~ spi.frequency(19200000); // int SCLK_Hz=19200000 = 19.2MHz = 96MHz/5 |
whismanoid | 0:3edb3708c8c5 | 7822 | //~ spi.frequency(24000000); // int SCLK_Hz=24000000 = 24MHz = 96MHz/4 |
whismanoid | 0:3edb3708c8c5 | 7823 | //~ spi.frequency(32000000); // int SCLK_Hz=32000000 = 32MHz = 96MHz/3 |
whismanoid | 0:3edb3708c8c5 | 7824 | //~ spi.frequency(48000000); // int SCLK_Hz=48000000 = 48MHz = 96MHz/2 |
whismanoid | 0:3edb3708c8c5 | 7825 | // unspecified SPI device |
whismanoid | 0:3edb3708c8c5 | 7826 | spi.format(8,g_SPI_dataMode); // int bits_must_be_8, int mode=0_3 CPOL=0,CPHA=0 rising edge (initial default) |
whismanoid | 0:3edb3708c8c5 | 7827 | spi.frequency(g_SPI_SCLK_Hz); // int SCLK_Hz=1000000 = 1MHz (initial default) |
whismanoid | 0:3edb3708c8c5 | 7828 | spi_cs = 1; |
whismanoid | 0:3edb3708c8c5 | 7829 | #endif |
whismanoid | 0:3edb3708c8c5 | 7830 | |
whismanoid | 0:3edb3708c8c5 | 7831 | #if HAS_I2C |
whismanoid | 0:3edb3708c8c5 | 7832 | // i2c init |
whismanoid | 0:3edb3708c8c5 | 7833 | // declare in narrower scope: MAX32625MBED I2C i2cMaster(...) |
whismanoid | 0:3edb3708c8c5 | 7834 | // i2cMaster.frequency(g_I2C_SCL_Hz); |
whismanoid | 0:3edb3708c8c5 | 7835 | #else |
whismanoid | 0:3edb3708c8c5 | 7836 | // Ensure that the unused I2C pins do not interfere with analog inputs A4 and A5 |
whismanoid | 0:3edb3708c8c5 | 7837 | #if HAS_digitalInOut14 |
whismanoid | 0:3edb3708c8c5 | 7838 | // DigitalInOut digitalInOut14(P1_6, PIN_INPUT, PullUp, 1); // P1_6 TARGET_MAX32635MBED A4/SDA (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 7839 | digitalInOut14.input(); |
whismanoid | 0:3edb3708c8c5 | 7840 | #endif |
whismanoid | 0:3edb3708c8c5 | 7841 | #if HAS_digitalInOut15 |
whismanoid | 0:3edb3708c8c5 | 7842 | // DigitalInOut digitalInOut15(P1_7, PIN_INPUT, PullUp, 1); // P1_7 TARGET_MAX32635MBED A5/SCL (10pin digital connector) |
whismanoid | 0:3edb3708c8c5 | 7843 | digitalInOut15.input(); |
whismanoid | 0:3edb3708c8c5 | 7844 | #endif |
whismanoid | 0:3edb3708c8c5 | 7845 | #if HAS_digitalInOut16 |
whismanoid | 0:3edb3708c8c5 | 7846 | // DigitalInOut mode can be one of PullUp, PullDown, PullNone, OpenDrain |
whismanoid | 0:3edb3708c8c5 | 7847 | // PullUp-->3.4V, PullDown-->1.7V, PullNone-->3.5V, OpenDrain-->0.00V |
whismanoid | 0:3edb3708c8c5 | 7848 | //DigitalInOut digitalInOut16(P3_4, PIN_INPUT, OpenDrain, 0); // P3_4 TARGET_MAX32635MBED A4/SDA (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 7849 | digitalInOut16.input(); |
whismanoid | 0:3edb3708c8c5 | 7850 | #endif |
whismanoid | 0:3edb3708c8c5 | 7851 | #if HAS_digitalInOut17 |
whismanoid | 0:3edb3708c8c5 | 7852 | //DigitalInOut digitalInOut17(P3_5, PIN_INPUT, OpenDrain, 0); // P3_5 TARGET_MAX32635MBED A5/SCL (6pin analog connector) |
whismanoid | 0:3edb3708c8c5 | 7853 | digitalInOut17.input(); |
whismanoid | 0:3edb3708c8c5 | 7854 | #endif |
whismanoid | 0:3edb3708c8c5 | 7855 | #endif |
whismanoid | 0:3edb3708c8c5 | 7856 | |
whismanoid | 0:3edb3708c8c5 | 7857 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7858 | #if defined(TARGET_MAX32630) |
whismanoid | 0:3edb3708c8c5 | 7859 | led1 = LED_ON; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 7860 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7861 | led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7862 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7863 | led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 7864 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7865 | led1 = LED_ON; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 7866 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7867 | led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 7868 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7869 | led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 7870 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7871 | led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 7872 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7873 | led1 = LED_OFF; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 7874 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7875 | #elif defined(TARGET_MAX32625MBED) |
whismanoid | 0:3edb3708c8c5 | 7876 | led1 = LED_ON; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 7877 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7878 | led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7879 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7880 | led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 7881 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7882 | led1 = LED_ON; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 7883 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7884 | led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 7885 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7886 | led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 7887 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7888 | led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 7889 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7890 | led1 = LED_OFF; led2 = LED_OFF; led3 = LED_OFF; // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 7891 | ThisThread::sleep_for(125); // [since mbed-os-5.10] vs Thread::wait(125); |
whismanoid | 0:3edb3708c8c5 | 7892 | #else // not defined(TARGET_LPC1768 etc.) |
whismanoid | 0:3edb3708c8c5 | 7893 | led1 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7894 | led2 = LED_OFF; |
whismanoid | 0:3edb3708c8c5 | 7895 | led3 = LED_OFF; |
whismanoid | 0:3edb3708c8c5 | 7896 | led4 = LED_OFF; |
whismanoid | 0:3edb3708c8c5 | 7897 | ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75); |
whismanoid | 0:3edb3708c8c5 | 7898 | //led1 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7899 | led2 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7900 | ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75); |
whismanoid | 0:3edb3708c8c5 | 7901 | led1 = LED_OFF; |
whismanoid | 0:3edb3708c8c5 | 7902 | //led2 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7903 | led3 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7904 | ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75); |
whismanoid | 0:3edb3708c8c5 | 7905 | led2 = LED_OFF; |
whismanoid | 0:3edb3708c8c5 | 7906 | //led3 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7907 | led4 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7908 | ThisThread::sleep_for(75); // [since mbed-os-5.10] vs Thread::wait(75); |
whismanoid | 0:3edb3708c8c5 | 7909 | led3 = LED_OFF; |
whismanoid | 0:3edb3708c8c5 | 7910 | led4 = LED_ON; |
whismanoid | 0:3edb3708c8c5 | 7911 | // |
whismanoid | 0:3edb3708c8c5 | 7912 | #endif // target definition |
whismanoid | 0:3edb3708c8c5 | 7913 | #endif |
whismanoid | 0:3edb3708c8c5 | 7914 | |
whismanoid | 0:3edb3708c8c5 | 7915 | // cmd_TE(); |
whismanoid | 0:3edb3708c8c5 | 7916 | |
whismanoid | 0:3edb3708c8c5 | 7917 | #if USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7918 | rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 7919 | #endif // USE_LEDS |
whismanoid | 0:3edb3708c8c5 | 7920 | InitializeConfiguration(); |
whismanoid | 0:3edb3708c8c5 | 7921 | |
whismanoid | 0:3edb3708c8c5 | 7922 | while (1) { |
whismanoid | 0:3edb3708c8c5 | 7923 | #if HAS_BUTTON1_DEMO_INTERRUPT_POLLING |
whismanoid | 0:3edb3708c8c5 | 7924 | // avoid runtime error on button1 press [mbed-os-5.11] |
whismanoid | 0:3edb3708c8c5 | 7925 | // instead of using InterruptIn, use DigitalIn and poll in main while(1) |
whismanoid | 0:3edb3708c8c5 | 7926 | # if HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7927 | static int button1_value_prev = 1; |
whismanoid | 0:3edb3708c8c5 | 7928 | static int button1_value_now = 1; |
whismanoid | 0:3edb3708c8c5 | 7929 | button1_value_prev = button1_value_now; |
whismanoid | 0:3edb3708c8c5 | 7930 | button1_value_now = button1.read(); |
whismanoid | 0:3edb3708c8c5 | 7931 | if ((button1_value_prev - button1_value_now) == 1) |
whismanoid | 0:3edb3708c8c5 | 7932 | { |
whismanoid | 0:3edb3708c8c5 | 7933 | // on button1 falling edge (button1 press) |
whismanoid | 0:3edb3708c8c5 | 7934 | onButton1FallingEdge(); |
whismanoid | 0:3edb3708c8c5 | 7935 | } |
whismanoid | 0:3edb3708c8c5 | 7936 | # endif // HAS_BUTTON1_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7937 | # if HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7938 | static int button2_value_prev = 1; |
whismanoid | 0:3edb3708c8c5 | 7939 | static int button2_value_now = 1; |
whismanoid | 0:3edb3708c8c5 | 7940 | button2_value_prev = button2_value_now; |
whismanoid | 0:3edb3708c8c5 | 7941 | button2_value_now = button2.read(); |
whismanoid | 0:3edb3708c8c5 | 7942 | if ((button2_value_prev - button2_value_now) == 1) |
whismanoid | 0:3edb3708c8c5 | 7943 | { |
whismanoid | 0:3edb3708c8c5 | 7944 | // on button2 falling edge (button2 press) |
whismanoid | 0:3edb3708c8c5 | 7945 | onButton2FallingEdge(); |
whismanoid | 0:3edb3708c8c5 | 7946 | } |
whismanoid | 0:3edb3708c8c5 | 7947 | # endif // HAS_BUTTON2_DEMO_INTERRUPT |
whismanoid | 0:3edb3708c8c5 | 7948 | #endif |
whismanoid | 0:3edb3708c8c5 | 7949 | #if USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 7950 | //cmdLine_update(); |
whismanoid | 0:3edb3708c8c5 | 7951 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7952 | // GREEN = DAPLINKserial |
whismanoid | 0:3edb3708c8c5 | 7953 | //~ led1 = LED_OFF; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7954 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7955 | if (DAPLINKserial.readable()) { |
whismanoid | 0:3edb3708c8c5 | 7956 | cmdLine_DAPLINKserial.append(DAPLINKserial.getc()); |
whismanoid | 0:3edb3708c8c5 | 7957 | } |
whismanoid | 0:3edb3708c8c5 | 7958 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7959 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7960 | // BLUE = reading ADC |
whismanoid | 0:3edb3708c8c5 | 7961 | //~ led1 = LED_OFF; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 7962 | // CS=%d) set comTickLimit %d..%d CSA) comTickLimit is set by AIN0 |
whismanoid | 0:3edb3708c8c5 | 7963 | //~ if (is_comTickLimit_from_AIN0) { |
whismanoid | 0:3edb3708c8c5 | 7964 | //~ update_comTickLimit_from_AIN0_AIN4(); |
whismanoid | 0:3edb3708c8c5 | 7965 | //~ } |
whismanoid | 0:3edb3708c8c5 | 7966 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7967 | // YELLOW = microUSBserial |
whismanoid | 0:3edb3708c8c5 | 7968 | //~ led1 = LED_ON; led2 = LED_ON; led3 = LED_OFF; // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 7969 | # if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7970 | if (microUSBserial.readable()) { |
whismanoid | 0:3edb3708c8c5 | 7971 | int c = microUSBserial.getc(); |
whismanoid | 0:3edb3708c8c5 | 7972 | cmdLine_microUSBserial.append(c); |
whismanoid | 0:3edb3708c8c5 | 7973 | #if IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7974 | # if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7975 | cmdLine_DAPLINKserial.serial().printf("%c", c); |
whismanoid | 0:3edb3708c8c5 | 7976 | # endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 7977 | #endif // IGNORE_AT_COMMANDS |
whismanoid | 0:3edb3708c8c5 | 7978 | // |
whismanoid | 0:3edb3708c8c5 | 7979 | } |
whismanoid | 0:3edb3708c8c5 | 7980 | # endif // HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 7981 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7982 | // MAGENTA = reading ADC |
whismanoid | 0:3edb3708c8c5 | 7983 | //~ led1 = LED_ON; led2 = LED_OFF; led3 = LED_ON; // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 7984 | // CP=%d) set pwmCompare %d..%d CPA) PWM is set by AIN1 |
whismanoid | 0:3edb3708c8c5 | 7985 | //~ if (is_pwmCompare_from_AIN1) { |
whismanoid | 0:3edb3708c8c5 | 7986 | //~ update_pwmCompare_from_AIN1_AIN5(); |
whismanoid | 0:3edb3708c8c5 | 7987 | //~ } |
whismanoid | 0:3edb3708c8c5 | 7988 | //-------------------------------------------------- |
whismanoid | 0:3edb3708c8c5 | 7989 | // CYAN = other while loop stuff? |
whismanoid | 0:3edb3708c8c5 | 7990 | //~ led1 = LED_OFF; led2 = LED_ON; led3 = LED_ON; // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 7991 | //~ rgb_led.red(); // diagnostic rbg led RED |
whismanoid | 0:3edb3708c8c5 | 7992 | //~ rgb_led.green(); // diagnostic rbg led GREEN |
whismanoid | 0:3edb3708c8c5 | 7993 | //~ rgb_led.blue(); // diagnostic rbg led BLUE |
whismanoid | 0:3edb3708c8c5 | 7994 | //~ rgb_led.white(); // diagnostic rbg led RED+GREEN+BLUE=WHITE |
whismanoid | 0:3edb3708c8c5 | 7995 | //~ rgb_led.cyan(); // diagnostic rbg led GREEN+BLUE=CYAN |
whismanoid | 0:3edb3708c8c5 | 7996 | //~ rgb_led.magenta(); // diagnostic rbg led RED+BLUE=MAGENTA |
whismanoid | 0:3edb3708c8c5 | 7997 | //~ rgb_led.yellow(); // diagnostic rbg led RED+GREEN=YELLOW |
whismanoid | 0:3edb3708c8c5 | 7998 | //~ rgb_led.black(); // diagnostic rbg led BLACK |
whismanoid | 0:3edb3708c8c5 | 7999 | #else // USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 8000 | // |
whismanoid | 0:3edb3708c8c5 | 8001 | // character echo demo stuff; sandbox |
whismanoid | 0:3edb3708c8c5 | 8002 | // |
whismanoid | 0:3edb3708c8c5 | 8003 | // char* gets(char* buf, int size); // equivalent to char *gets_s( char *str, rsize_t n ) |
whismanoid | 0:3edb3708c8c5 | 8004 | // Reads characters from stdin until a newline is found or end-of-file occurs. |
whismanoid | 0:3edb3708c8c5 | 8005 | // Writes only at most n-1 characters into the array pointed to by str, |
whismanoid | 0:3edb3708c8c5 | 8006 | // and always writes the terminating null character (unless str is a null pointer). |
whismanoid | 0:3edb3708c8c5 | 8007 | // The newline character, is discarded and not written to the buffer. |
whismanoid | 0:3edb3708c8c5 | 8008 | if (gets(line_buffer, sizeof(line_buffer))) |
whismanoid | 0:3edb3708c8c5 | 8009 | { |
whismanoid | 0:3edb3708c8c5 | 8010 | puts(line_buffer); |
whismanoid | 0:3edb3708c8c5 | 8011 | } |
whismanoid | 0:3edb3708c8c5 | 8012 | |
whismanoid | 0:3edb3708c8c5 | 8013 | // serial port demo -- echo from DAPLINKserial to microUSBserial |
whismanoid | 0:3edb3708c8c5 | 8014 | #if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 8015 | if (DAPLINKserial.readable()) { |
whismanoid | 0:3edb3708c8c5 | 8016 | int c = DAPLINKserial.getc(); |
whismanoid | 0:3edb3708c8c5 | 8017 | led2 = (c & 1); |
whismanoid | 0:3edb3708c8c5 | 8018 | #if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 8019 | DAPLINKserial.putc(c); |
whismanoid | 0:3edb3708c8c5 | 8020 | #endif |
whismanoid | 0:3edb3708c8c5 | 8021 | #if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 8022 | microUSBserial.putc(c); |
whismanoid | 0:3edb3708c8c5 | 8023 | #endif |
whismanoid | 0:3edb3708c8c5 | 8024 | // command processing |
whismanoid | 0:3edb3708c8c5 | 8025 | if (c == '?') { |
whismanoid | 0:3edb3708c8c5 | 8026 | print_banner(); |
whismanoid | 0:3edb3708c8c5 | 8027 | } |
whismanoid | 0:3edb3708c8c5 | 8028 | } |
whismanoid | 0:3edb3708c8c5 | 8029 | #endif // HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 8030 | // serial port demo -- echo from microUSBserial to DAPLINKserial |
whismanoid | 0:3edb3708c8c5 | 8031 | #if HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 8032 | if (microUSBserial.readable()) { |
whismanoid | 0:3edb3708c8c5 | 8033 | int c = microUSBserial.getc(); |
whismanoid | 0:3edb3708c8c5 | 8034 | led1 = (c & 1); |
whismanoid | 0:3edb3708c8c5 | 8035 | #if HAS_DAPLINK_SERIAL |
whismanoid | 0:3edb3708c8c5 | 8036 | DAPLINKserial.putc(c); |
whismanoid | 0:3edb3708c8c5 | 8037 | #endif |
whismanoid | 0:3edb3708c8c5 | 8038 | microUSBserial.putc(c); |
whismanoid | 0:3edb3708c8c5 | 8039 | // command processing |
whismanoid | 0:3edb3708c8c5 | 8040 | if (c == '?') { |
whismanoid | 0:3edb3708c8c5 | 8041 | print_banner(); |
whismanoid | 0:3edb3708c8c5 | 8042 | } |
whismanoid | 0:3edb3708c8c5 | 8043 | } |
whismanoid | 0:3edb3708c8c5 | 8044 | #endif // HAS_MICROUSBSERIAL |
whismanoid | 0:3edb3708c8c5 | 8045 | #endif // USE_COMMAND_BUFFER |
whismanoid | 0:3edb3708c8c5 | 8046 | } // while(1) |
whismanoid | 0:3edb3708c8c5 | 8047 | } |