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

Dependencies:   MaximTinyTester MAX11131 CmdLine MAX541 USBDevice

Committer:
whismanoid
Date:
Tue Apr 13 21:27:18 2021 -0700
Revision:
28:298907617848
Parent:
11:38b95a59de02
Child:
29:c4975953cb65
update libs, replace main with Test_Main_MAX11131 (broke SelfTest, WIP)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
whismanoid 11:38b95a59de02 1 // /*******************************************************************************
whismanoid 28:298907617848 2 // * Copyright (C) 2021 Maxim Integrated Products, Inc., All Rights Reserved.
whismanoid 11:38b95a59de02 3 // *
whismanoid 11:38b95a59de02 4 // * Permission is hereby granted, free of charge, to any person obtaining a
whismanoid 11:38b95a59de02 5 // * copy of this software and associated documentation files (the "Software"),
whismanoid 11:38b95a59de02 6 // * to deal in the Software without restriction, including without limitation
whismanoid 11:38b95a59de02 7 // * the rights to use, copy, modify, merge, publish, distribute, sublicense,
whismanoid 11:38b95a59de02 8 // * and/or sell copies of the Software, and to permit persons to whom the
whismanoid 11:38b95a59de02 9 // * Software is furnished to do so, subject to the following conditions:
whismanoid 11:38b95a59de02 10 // *
whismanoid 11:38b95a59de02 11 // * The above copyright notice and this permission notice shall be included
whismanoid 11:38b95a59de02 12 // * in all copies or substantial portions of the Software.
whismanoid 11:38b95a59de02 13 // *
whismanoid 11:38b95a59de02 14 // * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
whismanoid 11:38b95a59de02 15 // * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
whismanoid 11:38b95a59de02 16 // * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
whismanoid 11:38b95a59de02 17 // * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
whismanoid 11:38b95a59de02 18 // * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
whismanoid 11:38b95a59de02 19 // * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
whismanoid 11:38b95a59de02 20 // * OTHER DEALINGS IN THE SOFTWARE.
whismanoid 11:38b95a59de02 21 // *
whismanoid 11:38b95a59de02 22 // * Except as contained in this notice, the name of Maxim Integrated
whismanoid 11:38b95a59de02 23 // * Products, Inc. shall not be used except as stated in the Maxim Integrated
whismanoid 11:38b95a59de02 24 // * Products, Inc. Branding Policy.
whismanoid 11:38b95a59de02 25 // *
whismanoid 11:38b95a59de02 26 // * The mere transfer of this software does not imply any licenses
whismanoid 11:38b95a59de02 27 // * of trade secrets, proprietary technology, copyrights, patents,
whismanoid 11:38b95a59de02 28 // * trademarks, maskwork rights, or any other form of intellectual
whismanoid 11:38b95a59de02 29 // * property whatsoever. Maxim Integrated Products, Inc. retains all
whismanoid 11:38b95a59de02 30 // * ownership rights.
whismanoid 11:38b95a59de02 31 // *******************************************************************************
whismanoid 11:38b95a59de02 32 // */
whismanoid 28:298907617848 33 // example code includes
whismanoid 28:298907617848 34 // standard include for target platform -- Platform_Include_Boilerplate
whismanoid 11:38b95a59de02 35 #include "mbed.h"
whismanoid 28:298907617848 36 // Platforms:
whismanoid 28:298907617848 37 // - MAX32625MBED
whismanoid 28:298907617848 38 // - supports mbed-os-5.11, requires USBDevice library
whismanoid 28:298907617848 39 // - add https://developer.mbed.org/teams/MaximIntegrated/code/USBDevice/
whismanoid 28:298907617848 40 // - remove max32630fthr library (if present)
whismanoid 28:298907617848 41 // - remove MAX32620FTHR library (if present)
whismanoid 28:298907617848 42 // - MAX32600MBED
whismanoid 28:298907617848 43 // - Please note the last supported version is Mbed OS 6.3.
whismanoid 28:298907617848 44 // - remove max32630fthr library (if present)
whismanoid 28:298907617848 45 // - remove MAX32620FTHR library (if present)
whismanoid 28:298907617848 46 // - Windows 10 note: Don't connect HDK until you are ready to load new firmware into the board.
whismanoid 28:298907617848 47 // - NUCLEO_F446RE
whismanoid 28:298907617848 48 // - remove USBDevice library
whismanoid 28:298907617848 49 // - remove max32630fthr library (if present)
whismanoid 28:298907617848 50 // - remove MAX32620FTHR library (if present)
whismanoid 28:298907617848 51 // - NUCLEO_F401RE
whismanoid 28:298907617848 52 // - remove USBDevice library
whismanoid 28:298907617848 53 // - remove max32630fthr library (if present)
whismanoid 28:298907617848 54 // - remove MAX32620FTHR library (if present)
whismanoid 28:298907617848 55 // - MAX32630FTHR
whismanoid 28:298907617848 56 // - #include "max32630fthr.h"
whismanoid 28:298907617848 57 // - add http://developer.mbed.org/teams/MaximIntegrated/code/max32630fthr/
whismanoid 28:298907617848 58 // - remove MAX32620FTHR library (if present)
whismanoid 28:298907617848 59 // - MAX32620FTHR
whismanoid 28:298907617848 60 // - #include "MAX32620FTHR.h"
whismanoid 28:298907617848 61 // - remove max32630fthr library (if present)
whismanoid 28:298907617848 62 // - add https://os.mbed.com/teams/MaximIntegrated/code/MAX32620FTHR/
whismanoid 28:298907617848 63 // - not tested yet
whismanoid 28:298907617848 64 // - MAX32625PICO
whismanoid 28:298907617848 65 // - #include "max32625pico.h"
whismanoid 28:298907617848 66 // - add https://os.mbed.com/users/switches/code/max32625pico/
whismanoid 28:298907617848 67 // - remove max32630fthr library (if present)
whismanoid 28:298907617848 68 // - remove MAX32620FTHR library (if present)
whismanoid 28:298907617848 69 // - not tested yet
whismanoid 28:298907617848 70 // - see https://os.mbed.com/users/switches/code/max32625pico/
whismanoid 28:298907617848 71 // - see https://os.mbed.com/users/switches/code/PICO_board_demo/
whismanoid 28:298907617848 72 // - see https://os.mbed.com/users/switches/code/PICO_USB_I2C_SPI/
whismanoid 28:298907617848 73 // - see https://os.mbed.com/users/switches/code/SerialInterface/
whismanoid 28:298907617848 74 // - Note: To load the MAX32625PICO firmware, hold the button while
whismanoid 28:298907617848 75 // connecting the USB cable, then copy firmware bin file
whismanoid 28:298907617848 76 // to the MAINTENANCE drive.
whismanoid 28:298907617848 77 // - see https://os.mbed.com/platforms/MAX32625PICO/
whismanoid 28:298907617848 78 // - see https://os.mbed.com/teams/MaximIntegrated/wiki/MAX32625PICO-Firmware-Updates
whismanoid 28:298907617848 79 //
whismanoid 28:298907617848 80 // end Platform_Include_Boilerplate
whismanoid 11:38b95a59de02 81 #include "MAX11131.h"
whismanoid 11:38b95a59de02 82 #include "CmdLine.h"
whismanoid 28:298907617848 83 #include "MaximTinyTester.h"
whismanoid 11:38b95a59de02 84
whismanoid 28:298907617848 85 #include "MAX11131.h"
whismanoid 28:298907617848 86 extern MAX11131 g_MAX11131_device; // defined in main.cpp
whismanoid 28:298907617848 87
whismanoid 28:298907617848 88
whismanoid 28:298907617848 89
whismanoid 28:298907617848 90 // CODE GENERATOR: MAX11131 needs print_value(CmdLine& cmdLine, int16_t value_u12, int channelId)
whismanoid 28:298907617848 91 //----------------------------------------
whismanoid 28:298907617848 92 void print_value(CmdLine& cmdLine, int16_t value_u12, int channelId)
whismanoid 28:298907617848 93 {
whismanoid 28:298907617848 94 int channelPairIndex = channelId / 2;
whismanoid 28:298907617848 95 // 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 28:298907617848 96 // unused variable: int UCHn = (g_MAX11131_device.UNIPOLAR >> (10 - channelPairIndex)) & 0x01;
whismanoid 28:298907617848 97 int BCHn = (g_MAX11131_device.BIPOLAR >> (10 - channelPairIndex)) & 0x01;
whismanoid 28:298907617848 98 // unused variable: int RANGEn = (g_MAX11131_device.RANGE >> (10 - channelPairIndex)) & 0x01;
whismanoid 28:298907617848 99 //
whismanoid 28:298907617848 100 cmdLine.serial().printf(" ch=");
whismanoid 28:298907617848 101 // TODO1: if CHANID=0 don't print ch=channelId
whismanoid 28:298907617848 102 if ((g_MAX11131_device.isExternalClock == 0) || (g_MAX11131_device.chan_id_0_1 == 1))
whismanoid 28:298907617848 103 {
whismanoid 28:298907617848 104 // Internal clock modes always use channel ID.
whismanoid 28:298907617848 105 // External clock modes use channel ID if ADC_MODE_CONTROL.CHAN_ID is 1.
whismanoid 28:298907617848 106 cmdLine.serial().printf("%d", channelId);
whismanoid 28:298907617848 107 } else {
whismanoid 28:298907617848 108 cmdLine.serial().printf("?");
whismanoid 28:298907617848 109 }
whismanoid 28:298907617848 110 if (BCHn)
whismanoid 28:298907617848 111 {
whismanoid 28:298907617848 112 cmdLine.serial().printf(" xb=");
whismanoid 28:298907617848 113 cmdLine.serial().printf("%d", g_MAX11131_device.TwosComplementValue(value_u12));
whismanoid 28:298907617848 114 }
whismanoid 28:298907617848 115 else
whismanoid 28:298907617848 116 {
whismanoid 28:298907617848 117 cmdLine.serial().printf(" xu=");
whismanoid 28:298907617848 118 cmdLine.serial().printf("%d", value_u12);
whismanoid 28:298907617848 119 }
whismanoid 28:298907617848 120 // dtostrf width and precision: 2.5v / 4096 LSB = 0.0006103515625 volts per LSB
whismanoid 28:298907617848 121 cmdLine.serial().printf(" = 0x%4.4x = %6.4fV", (value_u12 & 0xFFFF), g_MAX11131_device.VoltageOfCode(value_u12, channelId));
whismanoid 28:298907617848 122 }
whismanoid 28:298907617848 123
whismanoid 28:298907617848 124 // CODE GENERATOR: MAX11131 needs AINcode_print_value_chanID(CmdLine& cmdLine, int nWords)
whismanoid 28:298907617848 125 //----------------------------------------
whismanoid 28:298907617848 126 // read data words
whismanoid 28:298907617848 127 // @pre RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 128 // @pre AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 129 // For internal clock modes, the data format always includes the channel address.
whismanoid 28:298907617848 130 // misoData16 = CH[3:0] DATA[11:0]
whismanoid 28:298907617848 131 void AINcode_print_value_chanID(CmdLine& cmdLine, int nWords)
whismanoid 28:298907617848 132 {
whismanoid 28:298907617848 133 cmdLine.serial().printf("\r\nScanRead_nWords_chanID nWords=");
whismanoid 28:298907617848 134 cmdLine.serial().printf("%d\r\n", nWords);
whismanoid 28:298907617848 135 for (int index = 0; index < nWords; index++) {
whismanoid 28:298907617848 136 //~ int16_t misoData16 = MAX11131_ScanRead();
whismanoid 28:298907617848 137 // For internal clock modes, the data format always includes the channel address.
whismanoid 28:298907617848 138 // misoData16 = CH[3:0] DATA[11:0]
whismanoid 28:298907617848 139 int16_t value_u12 = (g_MAX11131_device.RAW_misoData16[index] & 0x0FFF);
whismanoid 28:298907617848 140 int channelId = ((g_MAX11131_device.RAW_misoData16[index] >> 12) & 0x000F);
whismanoid 28:298907617848 141 // diagnostic: print raw MISO data
whismanoid 28:298907617848 142 cmdLine.serial().printf(" MAX11131.MISO[");
whismanoid 28:298907617848 143 cmdLine.serial().printf("%d", index);
whismanoid 28:298907617848 144 cmdLine.serial().printf("]=0x");
whismanoid 28:298907617848 145 cmdLine.serial().printf("%0x4.4x", (g_MAX11131_device.RAW_misoData16[index] & 0xFFFF));
whismanoid 28:298907617848 146 cmdLine.serial().printf(":");
whismanoid 28:298907617848 147 print_value(cmdLine, value_u12, channelId);
whismanoid 28:298907617848 148 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 149 }
whismanoid 28:298907617848 150 }
whismanoid 11:38b95a59de02 151
whismanoid 28:298907617848 152 // CODE GENERATOR: MAX11131 needs AINcode_print_value_externalClock(CmdLine& cmdLine, int nWords)
whismanoid 28:298907617848 153 //----------------------------------------
whismanoid 28:298907617848 154 // read data words
whismanoid 28:298907617848 155 // @pre RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 156 // @pre AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 157 // For external clock modes, the data format returned depends on the CHAN_ID bit.
whismanoid 28:298907617848 158 // when CHAN_ID = 0: misoData16 = 0 DATA[11:0] x x x
whismanoid 28:298907617848 159 // when CHAN_ID = 1: misoData16 = CH[3:0] DATA[11:0]
whismanoid 28:298907617848 160 void AINcode_print_value_externalClock(CmdLine& cmdLine, int nWords)
whismanoid 28:298907617848 161 {
whismanoid 28:298907617848 162 // For external clock modes, the data format returned depends on the CHAN_ID bit.
whismanoid 28:298907617848 163 // when CHAN_ID = 0: misoData16 = 0 DATA[11:0] x x x
whismanoid 28:298907617848 164 // when CHAN_ID = 1: misoData16 = CH[3:0] DATA[11:0]
whismanoid 28:298907617848 165 // For internal clock modes, the data format always includes the channel address.
whismanoid 28:298907617848 166 // misoData16 = CH[3:0] DATA[11:0]
whismanoid 28:298907617848 167 if (g_MAX11131_device.chan_id_0_1 != 0) {
whismanoid 28:298907617848 168 AINcode_print_value_chanID(cmdLine, nWords);
whismanoid 28:298907617848 169 return;
whismanoid 28:298907617848 170 }
whismanoid 28:298907617848 171 cmdLine.serial().printf("\r\nScanRead_nWords_externalClock nWords=");
whismanoid 28:298907617848 172 cmdLine.serial().printf("%d\r\n", nWords);
whismanoid 28:298907617848 173 for (int index = 0; index < nWords; index++) {
whismanoid 28:298907617848 174 // int16_t misoData16 = MAX11131_ScanRead();
whismanoid 28:298907617848 175 int16_t value_u12 = ((g_MAX11131_device.RAW_misoData16[index] >> 3) & 0x0FFF);
whismanoid 28:298907617848 176 int channelId = g_MAX11131_device.channelNumber_0_15;
whismanoid 28:298907617848 177 // diagnostic: print raw MISO data
whismanoid 28:298907617848 178 cmdLine.serial().printf(" MAX11131.MISO[");
whismanoid 28:298907617848 179 cmdLine.serial().printf("%d", index);
whismanoid 28:298907617848 180 cmdLine.serial().printf("]=0x");
whismanoid 28:298907617848 181 cmdLine.serial().printf("0x%4.4x", (g_MAX11131_device.RAW_misoData16[index] & 0xFFFF));
whismanoid 28:298907617848 182 cmdLine.serial().printf(":");
whismanoid 28:298907617848 183 print_value(cmdLine, value_u12, channelId);
whismanoid 28:298907617848 184 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 185 }
whismanoid 28:298907617848 186 }
whismanoid 28:298907617848 187
whismanoid 28:298907617848 188 // CODE GENERATOR: MAX11131 needs AINcode_print_value_chanID_mean(CmdLine& cmdLine, int nWords)
whismanoid 28:298907617848 189 //----------------------------------------
whismanoid 28:298907617848 190 // read data words and calculate mean, stddev
whismanoid 28:298907617848 191 // @pre RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 192 // @pre AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 193 void AINcode_print_value_chanID_mean(CmdLine& cmdLine, int nWords)
whismanoid 28:298907617848 194 {
whismanoid 28:298907617848 195 cmdLine.serial().printf("\r\nScanRead_nWords_chanID_mean nWords=");
whismanoid 28:298907617848 196 cmdLine.serial().printf("%d\r\n", nWords);
whismanoid 28:298907617848 197 double Sx = 0;
whismanoid 28:298907617848 198 double Sxx = 0;
whismanoid 28:298907617848 199 for (int index = 0; index < nWords; index++) {
whismanoid 28:298907617848 200 //~ int16_t misoData16 = MAX11131_ScanRead();
whismanoid 28:298907617848 201 // For internal clock modes, the data format always includes the channel address.
whismanoid 28:298907617848 202 // misoData16 = CH[3:0] DATA[11:0]
whismanoid 28:298907617848 203 int16_t value_u12 = (g_MAX11131_device.RAW_misoData16[index] & 0x0FFF);
whismanoid 28:298907617848 204 int channelId = ((g_MAX11131_device.RAW_misoData16[index] >> 12) & 0x000F);
whismanoid 28:298907617848 205 // TODO: sign-extend value_s12 from value_u12
whismanoid 28:298907617848 206 //
whismanoid 28:298907617848 207 cmdLine.serial().printf("n=");
whismanoid 28:298907617848 208 cmdLine.serial().printf("%d", index);
whismanoid 28:298907617848 209 print_value(cmdLine, value_u12, channelId);
whismanoid 28:298907617848 210 //
whismanoid 28:298907617848 211 Sx = Sx + value_u12;
whismanoid 28:298907617848 212 Sxx = Sxx + ((double)value_u12 * value_u12);
whismanoid 28:298907617848 213 cmdLine.serial().printf(" Sx=%f", Sx);
whismanoid 28:298907617848 214 cmdLine.serial().printf(" Sxx=%f", Sxx);
whismanoid 28:298907617848 215 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 216 }
whismanoid 28:298907617848 217 double mean = Sx / nWords;
whismanoid 28:298907617848 218 cmdLine.serial().printf(" mean=%f", mean);
whismanoid 28:298907617848 219 cmdLine.serial().printf("=0x%4.4x", (int)mean);
whismanoid 28:298907617848 220 // calculate standard deviation from N, Sx, Sxx
whismanoid 28:298907617848 221 if (nWords >= 2)
whismanoid 28:298907617848 222 {
whismanoid 28:298907617848 223 double variance = (Sxx - ( Sx * Sx / nWords) ) / (nWords - 1);
whismanoid 28:298907617848 224 cmdLine.serial().printf(" variance=%f", variance);
whismanoid 28:298907617848 225 // stddev = square root of variance
whismanoid 28:298907617848 226 double stddev = sqrt(variance);
whismanoid 28:298907617848 227 cmdLine.serial().printf(" stddev=%f", stddev);
whismanoid 28:298907617848 228 }
whismanoid 28:298907617848 229 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 230 }
whismanoid 28:298907617848 231
whismanoid 28:298907617848 232 void MAX11131_menu_help(CmdLine & cmdLine)
whismanoid 28:298907617848 233 {
whismanoid 28:298907617848 234 cmdLine.serial().printf("\r\n ! -- Init");
whismanoid 28:298907617848 235 cmdLine.serial().printf("\r\n 0 NumWords=? -- ReadAINcode");
whismanoid 28:298907617848 236 cmdLine.serial().printf("\r\n 1 ch=? pm=? id=? -- ScanManual");
whismanoid 28:298907617848 237 cmdLine.serial().printf("\r\n 2 ch=? av=? n=? swcnv=? pm=? -- ScanRepeat");
whismanoid 28:298907617848 238 cmdLine.serial().printf("\r\n 3 ch=? av=? pm=? swcnv=? -- ScanStandardInternalClock");
whismanoid 28:298907617848 239 cmdLine.serial().printf("\r\n 4 ch=? pm=? id=? -- ScanStandardExternalClock");
whismanoid 28:298907617848 240 cmdLine.serial().printf("\r\n 5 ch=? av=? pm=? swcnv=? -- ScanUpperInternalClock");
whismanoid 28:298907617848 241 cmdLine.serial().printf("\r\n 6 ch=? pm=? id=? -- ScanUpperExternalClock");
whismanoid 28:298907617848 242 cmdLine.serial().printf("\r\n 7 enableMask=? av=? pm=? swcnv=? -- ScanCustomInternalClock");
whismanoid 28:298907617848 243 cmdLine.serial().printf("\r\n 8 enableMask=? pm=? id=? -- ScanCustomExternalClock");
whismanoid 28:298907617848 244 cmdLine.serial().printf("\r\n 9 channelsPattern...=? pm=? id=? -- ScanSampleSetExternalClock");
whismanoid 28:298907617848 245 cmdLine.serial().printf("\r\n IB ch=? -- Reconfigure_DifferentialBipolarFSVref");
whismanoid 28:298907617848 246 cmdLine.serial().printf("\r\n IR ch=? -- Reconfigure_DifferentialBipolarFS2Vref");
whismanoid 28:298907617848 247 cmdLine.serial().printf("\r\n IS ch=? -- Reconfigure_SingleEnded");
whismanoid 28:298907617848 248 cmdLine.serial().printf("\r\n IU ch=? -- Reconfigure_DifferentialUnipolar");
whismanoid 28:298907617848 249 //
whismanoid 28:298907617848 250 cmdLine.serial().printf("\r\n @ -- print MAX11131 configuration");
whismanoid 28:298907617848 251
whismanoid 28:298907617848 252 //
whismanoid 28:298907617848 253 // case 'G'..'Z','g'..'z' are reserved for GPIO commands
whismanoid 28:298907617848 254 // case 'A'..'F','a'..'f' may be available if not claimed by bitstream commands
whismanoid 28:298907617848 255 cmdLine.serial().printf("\r\n C -- CNVST output PulseLow"); // TODO: ExternFunctionGPIOPinCommand testMenuGPIOItemsDict
whismanoid 28:298907617848 256 cmdLine.serial().printf("\r\n E -- EOC input value"); // TODO: ExternFunctionGPIOPinCommand testMenuGPIOItemsDict
whismanoid 28:298907617848 257
whismanoid 28:298907617848 258 //
whismanoid 28:298907617848 259 }
whismanoid 11:38b95a59de02 260
whismanoid 11:38b95a59de02 261 bool MAX11131_menu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 11:38b95a59de02 262 {
whismanoid 28:298907617848 263
whismanoid 28:298907617848 264
whismanoid 28:298907617848 265 // parse argument int16_t ADC_CONFIGURATION
whismanoid 28:298907617848 266 int16_t ADC_CONFIGURATION = g_MAX11131_device.ADC_CONFIGURATION; // default to global property value
whismanoid 28:298907617848 267 if (cmdLine.parse_int16_dec("ADC_CONFIGURATION", ADC_CONFIGURATION))
whismanoid 28:298907617848 268 {
whismanoid 28:298907617848 269 g_MAX11131_device.ADC_CONFIGURATION = ADC_CONFIGURATION; // update global property value
whismanoid 28:298907617848 270 }
whismanoid 28:298907617848 271
whismanoid 28:298907617848 272 // parse argument int16_t ADC_MODE_CONTROL
whismanoid 28:298907617848 273 int16_t ADC_MODE_CONTROL = g_MAX11131_device.ADC_MODE_CONTROL; // default to global property value
whismanoid 28:298907617848 274 if (cmdLine.parse_int16_dec("ADC_MODE_CONTROL", ADC_MODE_CONTROL))
whismanoid 28:298907617848 275 {
whismanoid 28:298907617848 276 g_MAX11131_device.ADC_MODE_CONTROL = ADC_MODE_CONTROL; // update global property value
whismanoid 28:298907617848 277 }
whismanoid 28:298907617848 278
whismanoid 28:298907617848 279 // parse argument int16_t BIPOLAR
whismanoid 28:298907617848 280 int16_t BIPOLAR = g_MAX11131_device.BIPOLAR; // default to global property value
whismanoid 28:298907617848 281 if (cmdLine.parse_int16_dec("BIPOLAR", BIPOLAR))
whismanoid 28:298907617848 282 {
whismanoid 28:298907617848 283 g_MAX11131_device.BIPOLAR = BIPOLAR; // update global property value
whismanoid 28:298907617848 284 }
whismanoid 28:298907617848 285
whismanoid 28:298907617848 286 // parse argument int16_t CSCAN0
whismanoid 28:298907617848 287 int16_t CSCAN0 = g_MAX11131_device.CSCAN0; // default to global property value
whismanoid 28:298907617848 288 if (cmdLine.parse_int16_dec("CSCAN0", CSCAN0))
whismanoid 28:298907617848 289 {
whismanoid 28:298907617848 290 g_MAX11131_device.CSCAN0 = CSCAN0; // update global property value
whismanoid 28:298907617848 291 }
whismanoid 28:298907617848 292
whismanoid 28:298907617848 293 // parse argument int16_t CSCAN1
whismanoid 28:298907617848 294 int16_t CSCAN1 = g_MAX11131_device.CSCAN1; // default to global property value
whismanoid 28:298907617848 295 if (cmdLine.parse_int16_dec("CSCAN1", CSCAN1))
whismanoid 28:298907617848 296 {
whismanoid 28:298907617848 297 g_MAX11131_device.CSCAN1 = CSCAN1; // update global property value
whismanoid 28:298907617848 298 }
whismanoid 28:298907617848 299
whismanoid 28:298907617848 300 // parse argument uint16_t NumWords
whismanoid 28:298907617848 301 uint16_t NumWords = g_MAX11131_device.NumWords; // default to global property value
whismanoid 28:298907617848 302 if (cmdLine.parse_uint16_dec("NumWords", NumWords))
whismanoid 28:298907617848 303 {
whismanoid 28:298907617848 304 g_MAX11131_device.NumWords = NumWords; // update global property value
whismanoid 28:298907617848 305 }
whismanoid 28:298907617848 306
whismanoid 28:298907617848 307 // parse argument uint8_t PowerManagement_0_2
whismanoid 28:298907617848 308 uint8_t PowerManagement_0_2 = g_MAX11131_device.PowerManagement_0_2; // default to global property value
whismanoid 28:298907617848 309 if (cmdLine.parse_uint8_dec("PowerManagement_0_2", PowerManagement_0_2))
whismanoid 28:298907617848 310 {
whismanoid 28:298907617848 311 g_MAX11131_device.PowerManagement_0_2 = PowerManagement_0_2; // update global property value
whismanoid 28:298907617848 312 }
whismanoid 28:298907617848 313 // "pm" is an alias for argument "PowerManagement_0_2"
whismanoid 28:298907617848 314 if (cmdLine.parse_uint8_dec("pm", PowerManagement_0_2))
whismanoid 28:298907617848 315 {
whismanoid 28:298907617848 316 g_MAX11131_device.PowerManagement_0_2 = PowerManagement_0_2; // update global property value
whismanoid 28:298907617848 317 }
whismanoid 28:298907617848 318
whismanoid 28:298907617848 319 // parse argument int16_t RANGE
whismanoid 28:298907617848 320 int16_t RANGE = g_MAX11131_device.RANGE; // default to global property value
whismanoid 28:298907617848 321 if (cmdLine.parse_int16_dec("RANGE", RANGE))
whismanoid 28:298907617848 322 {
whismanoid 28:298907617848 323 g_MAX11131_device.RANGE = RANGE; // update global property value
whismanoid 28:298907617848 324 }
whismanoid 28:298907617848 325
whismanoid 28:298907617848 326 // parse argument int16_t SAMPLESET
whismanoid 28:298907617848 327 int16_t SAMPLESET = g_MAX11131_device.SAMPLESET; // default to global property value
whismanoid 28:298907617848 328 if (cmdLine.parse_int16_dec("SAMPLESET", SAMPLESET))
whismanoid 28:298907617848 329 {
whismanoid 28:298907617848 330 g_MAX11131_device.SAMPLESET = SAMPLESET; // update global property value
whismanoid 28:298907617848 331 }
whismanoid 28:298907617848 332
whismanoid 28:298907617848 333 // parse argument uint8_t SPI_MOSI_Semantic
whismanoid 28:298907617848 334 uint8_t SPI_MOSI_Semantic = g_MAX11131_device.SPI_MOSI_Semantic; // default to global property value
whismanoid 28:298907617848 335 if (cmdLine.parse_uint8_dec("SPI_MOSI_Semantic", SPI_MOSI_Semantic))
whismanoid 28:298907617848 336 {
whismanoid 28:298907617848 337 g_MAX11131_device.SPI_MOSI_Semantic = SPI_MOSI_Semantic; // update global property value
whismanoid 28:298907617848 338 }
whismanoid 28:298907617848 339
whismanoid 28:298907617848 340 // parse argument uint8_t ScanMode
whismanoid 28:298907617848 341 uint8_t ScanMode = g_MAX11131_device.ScanMode; // default to global property value
whismanoid 28:298907617848 342 if (cmdLine.parse_uint8_dec("ScanMode", ScanMode))
whismanoid 28:298907617848 343 {
whismanoid 28:298907617848 344 g_MAX11131_device.ScanMode = ScanMode; // update global property value
whismanoid 28:298907617848 345 }
whismanoid 28:298907617848 346
whismanoid 28:298907617848 347 // parse argument int16_t UNIPOLAR
whismanoid 28:298907617848 348 int16_t UNIPOLAR = g_MAX11131_device.UNIPOLAR; // default to global property value
whismanoid 28:298907617848 349 if (cmdLine.parse_int16_dec("UNIPOLAR", UNIPOLAR))
whismanoid 28:298907617848 350 {
whismanoid 28:298907617848 351 g_MAX11131_device.UNIPOLAR = UNIPOLAR; // update global property value
whismanoid 28:298907617848 352 }
whismanoid 28:298907617848 353
whismanoid 28:298907617848 354 // parse argument double VRef
whismanoid 28:298907617848 355 double VRef = g_MAX11131_device.VRef; // default to global property value
whismanoid 28:298907617848 356 if (cmdLine.parse_double("VRef", VRef))
whismanoid 28:298907617848 357 {
whismanoid 28:298907617848 358 g_MAX11131_device.VRef = VRef; // update global property value
whismanoid 28:298907617848 359 }
whismanoid 28:298907617848 360
whismanoid 28:298907617848 361 // parse argument uint8_t average_0_4_8_16_32
whismanoid 28:298907617848 362 uint8_t average_0_4_8_16_32 = g_MAX11131_device.average_0_4_8_16_32; // default to global property value
whismanoid 28:298907617848 363 if (cmdLine.parse_uint8_dec("average_0_4_8_16_32", average_0_4_8_16_32))
whismanoid 28:298907617848 364 {
whismanoid 28:298907617848 365 g_MAX11131_device.average_0_4_8_16_32 = average_0_4_8_16_32; // update global property value
whismanoid 28:298907617848 366 }
whismanoid 28:298907617848 367 // "av" is an alias for argument "average_0_4_8_16_32"
whismanoid 28:298907617848 368 if (cmdLine.parse_uint8_dec("av", average_0_4_8_16_32))
whismanoid 28:298907617848 369 {
whismanoid 28:298907617848 370 g_MAX11131_device.average_0_4_8_16_32 = average_0_4_8_16_32; // update global property value
whismanoid 28:298907617848 371 }
whismanoid 28:298907617848 372
whismanoid 28:298907617848 373 // parse argument uint8_t chan_id_0_1
whismanoid 28:298907617848 374 uint8_t chan_id_0_1 = g_MAX11131_device.chan_id_0_1; // default to global property value
whismanoid 28:298907617848 375 if (cmdLine.parse_uint8_dec("chan_id_0_1", chan_id_0_1))
whismanoid 28:298907617848 376 {
whismanoid 28:298907617848 377 g_MAX11131_device.chan_id_0_1 = chan_id_0_1; // update global property value
whismanoid 28:298907617848 378 }
whismanoid 28:298907617848 379 // "id" is an alias for argument "chan_id_0_1"
whismanoid 28:298907617848 380 if (cmdLine.parse_uint8_dec("id", chan_id_0_1))
whismanoid 28:298907617848 381 {
whismanoid 28:298907617848 382 g_MAX11131_device.chan_id_0_1 = chan_id_0_1; // update global property value
whismanoid 28:298907617848 383 }
whismanoid 28:298907617848 384
whismanoid 28:298907617848 385 // parse argument uint8_t channelNumber_0_15
whismanoid 28:298907617848 386 uint8_t channelNumber_0_15 = g_MAX11131_device.channelNumber_0_15; // default to global property value
whismanoid 28:298907617848 387 if (cmdLine.parse_uint8_dec("channelNumber_0_15", channelNumber_0_15))
whismanoid 28:298907617848 388 {
whismanoid 28:298907617848 389 g_MAX11131_device.channelNumber_0_15 = channelNumber_0_15; // update global property value
whismanoid 28:298907617848 390 }
whismanoid 28:298907617848 391 // "ch" is an alias for argument "channelNumber_0_15"
whismanoid 28:298907617848 392 if (cmdLine.parse_uint8_dec("ch", channelNumber_0_15))
whismanoid 28:298907617848 393 {
whismanoid 28:298907617848 394 g_MAX11131_device.channelNumber_0_15 = channelNumber_0_15; // update global property value
whismanoid 28:298907617848 395 }
whismanoid 28:298907617848 396
whismanoid 28:298907617848 397 // parse argument int16_t enabledChannelsMask
whismanoid 28:298907617848 398 int16_t enabledChannelsMask = g_MAX11131_device.enabledChannelsMask; // default to global property value
whismanoid 28:298907617848 399 if (cmdLine.parse_int16_dec("enabledChannelsMask", enabledChannelsMask))
whismanoid 28:298907617848 400 {
whismanoid 28:298907617848 401 g_MAX11131_device.enabledChannelsMask = enabledChannelsMask; // update global property value
whismanoid 28:298907617848 402 }
whismanoid 28:298907617848 403 // "enableMask" is an alias for argument "enabledChannelsMask"
whismanoid 28:298907617848 404 if (cmdLine.parse_int16_dec("enableMask", enabledChannelsMask))
whismanoid 28:298907617848 405 {
whismanoid 28:298907617848 406 g_MAX11131_device.enabledChannelsMask = enabledChannelsMask; // update global property value
whismanoid 28:298907617848 407 }
whismanoid 28:298907617848 408
whismanoid 28:298907617848 409 // parse argument uint8_t enabledChannelsPatternLength_1_256
whismanoid 28:298907617848 410 uint8_t enabledChannelsPatternLength_1_256 = g_MAX11131_device.enabledChannelsPatternLength_1_256; // default to global property value
whismanoid 28:298907617848 411 if (cmdLine.parse_uint8_dec("enabledChannelsPatternLength_1_256", enabledChannelsPatternLength_1_256))
whismanoid 28:298907617848 412 {
whismanoid 28:298907617848 413 g_MAX11131_device.enabledChannelsPatternLength_1_256 = enabledChannelsPatternLength_1_256; // update global property value
whismanoid 28:298907617848 414 }
whismanoid 28:298907617848 415
whismanoid 28:298907617848 416 // parse argument uint8_t isExternalClock
whismanoid 28:298907617848 417 uint8_t isExternalClock = g_MAX11131_device.isExternalClock; // default to global property value
whismanoid 28:298907617848 418 if (cmdLine.parse_uint8_dec("isExternalClock", isExternalClock))
whismanoid 28:298907617848 419 {
whismanoid 28:298907617848 420 g_MAX11131_device.isExternalClock = isExternalClock; // update global property value
whismanoid 28:298907617848 421 }
whismanoid 28:298907617848 422
whismanoid 28:298907617848 423 // parse argument uint8_t nscan_4_8_12_16
whismanoid 28:298907617848 424 uint8_t nscan_4_8_12_16 = g_MAX11131_device.nscan_4_8_12_16; // default to global property value
whismanoid 28:298907617848 425 if (cmdLine.parse_uint8_dec("nscan_4_8_12_16", nscan_4_8_12_16))
whismanoid 28:298907617848 426 {
whismanoid 28:298907617848 427 g_MAX11131_device.nscan_4_8_12_16 = nscan_4_8_12_16; // update global property value
whismanoid 28:298907617848 428 }
whismanoid 28:298907617848 429 // "n" is an alias for argument "nscan_4_8_12_16"
whismanoid 28:298907617848 430 if (cmdLine.parse_uint8_dec("n", nscan_4_8_12_16))
whismanoid 28:298907617848 431 {
whismanoid 28:298907617848 432 g_MAX11131_device.nscan_4_8_12_16 = nscan_4_8_12_16; // update global property value
whismanoid 28:298907617848 433 }
whismanoid 28:298907617848 434
whismanoid 28:298907617848 435 // parse argument uint8_t swcnv_0_1
whismanoid 28:298907617848 436 uint8_t swcnv_0_1 = g_MAX11131_device.swcnv_0_1; // default to global property value
whismanoid 28:298907617848 437 if (cmdLine.parse_uint8_dec("swcnv_0_1", swcnv_0_1))
whismanoid 28:298907617848 438 {
whismanoid 28:298907617848 439 g_MAX11131_device.swcnv_0_1 = swcnv_0_1; // update global property value
whismanoid 28:298907617848 440 }
whismanoid 28:298907617848 441 // "swcnv" is an alias for argument "swcnv_0_1"
whismanoid 28:298907617848 442 if (cmdLine.parse_uint8_dec("swcnv", swcnv_0_1))
whismanoid 28:298907617848 443 {
whismanoid 28:298907617848 444 g_MAX11131_device.swcnv_0_1 = swcnv_0_1; // update global property value
whismanoid 28:298907617848 445 }
whismanoid 28:298907617848 446
whismanoid 11:38b95a59de02 447 switch (cmdLine[0])
whismanoid 11:38b95a59de02 448 {
whismanoid 28:298907617848 449 case '@':
whismanoid 28:298907617848 450 {
whismanoid 28:298907617848 451 cmdLine.serial().printf("ADC_MODE_CONTROL = ");
whismanoid 28:298907617848 452 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.ADC_MODE_CONTROL, g_MAX11131_device.ADC_MODE_CONTROL);
whismanoid 28:298907617848 453 cmdLine.serial().printf("ADC_CONFIGURATION = ");
whismanoid 28:298907617848 454 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.ADC_CONFIGURATION, g_MAX11131_device.ADC_CONFIGURATION);
whismanoid 28:298907617848 455 cmdLine.serial().printf("UNIPOLAR = ");
whismanoid 28:298907617848 456 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.UNIPOLAR, g_MAX11131_device.UNIPOLAR);
whismanoid 28:298907617848 457 cmdLine.serial().printf("BIPOLAR = ");
whismanoid 28:298907617848 458 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.BIPOLAR, g_MAX11131_device.BIPOLAR);
whismanoid 28:298907617848 459 cmdLine.serial().printf("RANGE = ");
whismanoid 28:298907617848 460 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.RANGE, g_MAX11131_device.RANGE);
whismanoid 28:298907617848 461 cmdLine.serial().printf("CSCAN0 = ");
whismanoid 28:298907617848 462 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.CSCAN0, g_MAX11131_device.CSCAN0);
whismanoid 28:298907617848 463 cmdLine.serial().printf("CSCAN1 = ");
whismanoid 28:298907617848 464 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.CSCAN1, g_MAX11131_device.CSCAN1);
whismanoid 28:298907617848 465 cmdLine.serial().printf("SAMPLESET = ");
whismanoid 28:298907617848 466 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.SAMPLESET, g_MAX11131_device.SAMPLESET);
whismanoid 28:298907617848 467 cmdLine.serial().printf("enabledChannelsPatternLength_1_256 = ");
whismanoid 28:298907617848 468 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.enabledChannelsPatternLength_1_256, g_MAX11131_device.enabledChannelsPatternLength_1_256);
whismanoid 28:298907617848 469 for(int index = 0; (index < g_MAX11131_device.enabledChannelsPatternLength_1_256) && (index < 16); index++) {
whismanoid 28:298907617848 470 cmdLine.serial().printf("enabledChannelsPattern[%d] = ", index);
whismanoid 28:298907617848 471 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.enabledChannelsPattern[index], g_MAX11131_device.enabledChannelsPattern[index]);
whismanoid 28:298907617848 472 }
whismanoid 28:298907617848 473 cmdLine.serial().printf("SPI_MOSI_Semantic = ");
whismanoid 28:298907617848 474 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.SPI_MOSI_Semantic, g_MAX11131_device.SPI_MOSI_Semantic);
whismanoid 28:298907617848 475 cmdLine.serial().printf("NumWords = ");
whismanoid 28:298907617848 476 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.NumWords, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 477 cmdLine.serial().printf("isExternalClock = ");
whismanoid 28:298907617848 478 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.isExternalClock, g_MAX11131_device.isExternalClock);
whismanoid 28:298907617848 479 cmdLine.serial().printf("ScanMode = ");
whismanoid 28:298907617848 480 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.ScanMode, g_MAX11131_device.ScanMode);
whismanoid 28:298907617848 481 cmdLine.serial().printf("channelNumber_0_15 = ");
whismanoid 28:298907617848 482 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.channelNumber_0_15, g_MAX11131_device.channelNumber_0_15);
whismanoid 28:298907617848 483 cmdLine.serial().printf("PowerManagement_0_2 = ");
whismanoid 28:298907617848 484 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.PowerManagement_0_2, g_MAX11131_device.PowerManagement_0_2);
whismanoid 28:298907617848 485 cmdLine.serial().printf("chan_id_0_1 = ");
whismanoid 28:298907617848 486 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.chan_id_0_1, g_MAX11131_device.chan_id_0_1);
whismanoid 28:298907617848 487 cmdLine.serial().printf("average_0_4_8_16_32 = ");
whismanoid 28:298907617848 488 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.average_0_4_8_16_32, g_MAX11131_device.average_0_4_8_16_32);
whismanoid 28:298907617848 489 cmdLine.serial().printf("nscan_4_8_12_16 = ");
whismanoid 28:298907617848 490 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.nscan_4_8_12_16, g_MAX11131_device.nscan_4_8_12_16);
whismanoid 28:298907617848 491 cmdLine.serial().printf("swcnv_0_1 = ");
whismanoid 28:298907617848 492 cmdLine.serial().printf("%d = 0x%2.2x\r\n", g_MAX11131_device.swcnv_0_1, g_MAX11131_device.swcnv_0_1);
whismanoid 28:298907617848 493 cmdLine.serial().printf("enabledChannelsMask = ");
whismanoid 28:298907617848 494 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.enabledChannelsMask, g_MAX11131_device.enabledChannelsMask);
whismanoid 28:298907617848 495 for(int index = 0; (index < 16) && (index < 16); index++) {
whismanoid 28:298907617848 496 cmdLine.serial().printf("AINcode[%d] = ", index);
whismanoid 28:298907617848 497 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.AINcode[index], g_MAX11131_device.AINcode[index]);
whismanoid 28:298907617848 498 }
whismanoid 28:298907617848 499 for(int index = 0; (index < 256) && (index < 16); index++) {
whismanoid 28:298907617848 500 cmdLine.serial().printf("RAW_misoData16[%d] = ", index);
whismanoid 28:298907617848 501 cmdLine.serial().printf("%d = 0x%4.4x\r\n", g_MAX11131_device.RAW_misoData16[index], g_MAX11131_device.RAW_misoData16[index]);
whismanoid 28:298907617848 502 }
whismanoid 28:298907617848 503 cmdLine.serial().printf("VRef = ");
whismanoid 28:298907617848 504 cmdLine.serial().printf("%1.6f\r\n", g_MAX11131_device.VRef);
whismanoid 28:298907617848 505 return true; // command handled by MAX11131
whismanoid 28:298907617848 506 break;
whismanoid 28:298907617848 507 }
whismanoid 28:298907617848 508 // case 'G'..'Z','g'..'z' are reserved for GPIO commands
whismanoid 28:298907617848 509 // case 'A'..'F','a'..'f' may be available if not claimed by bitstream commands
whismanoid 28:298907617848 510 case 'C':
whismanoid 28:298907617848 511 {
whismanoid 28:298907617848 512 // TODO output PulseLow
whismanoid 28:298907617848 513 g_MAX11131_device.CNVSToutputPulseLow();
whismanoid 28:298907617848 514 return true; // command handled by MAX11131
whismanoid 28:298907617848 515 break;
whismanoid 28:298907617848 516 }
whismanoid 28:298907617848 517 case 'E':
whismanoid 28:298907617848 518 {
whismanoid 28:298907617848 519 // TODO capture and print input Value
whismanoid 28:298907617848 520 cmdLine.serial().printf("%d", g_MAX11131_device.EOCinputValue());
whismanoid 28:298907617848 521 return true; // command handled by MAX11131
whismanoid 28:298907617848 522 break;
whismanoid 28:298907617848 523 }
whismanoid 28:298907617848 524 // case '0'..'9','A'..'F','a'..'f' letters are reserved for bitstream commands
whismanoid 28:298907617848 525 case '!':
whismanoid 28:298907617848 526 {
whismanoid 28:298907617848 527 // test menu command '!' handler:
whismanoid 28:298907617848 528 // helpString='! -- Init'
whismanoid 28:298907617848 529 // CMD_='None'
whismanoid 28:298907617848 530 // CommandName='Init'
whismanoid 28:298907617848 531 // CommandParamIn='void'
whismanoid 28:298907617848 532 // CommandReturnType='void'
whismanoid 28:298907617848 533 // @Pre=' // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords'
whismanoid 28:298907617848 534 // @Pre=' // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords'
whismanoid 28:298907617848 535 // @Pre=' // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords'
whismanoid 28:298907617848 536 // @Param[in]=''
whismanoid 28:298907617848 537 // @Param[out]=''
whismanoid 28:298907617848 538 // @Post=' // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data'
whismanoid 28:298907617848 539 // @Post=' // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs'
whismanoid 28:298907617848 540 // displayPost=''
whismanoid 28:298907617848 541 // @Return=''
whismanoid 28:298907617848 542 // @Test='@test tinyTester.blink_time_msec = 75 // default 75 resume hardware self test'
whismanoid 28:298907617848 543 // @Test='@test tinyTester.print("1.0: Test Scan_0100_StandardExt -- verify SPI (VDD, GND, SCLK, MOSI, MISO, CS)")'
whismanoid 28:298907617848 544 // @Test='@test SPIoutputCS(0)'
whismanoid 28:298907617848 545 // @Test='@test SPIwrite16bits(0x8000)'
whismanoid 28:298907617848 546 // @Test='@test SPIoutputCS(1)'
whismanoid 28:298907617848 547 cmdLine.serial().printf("Init");
whismanoid 28:298907617848 548 // call function Init
whismanoid 28:298907617848 549 g_MAX11131_device.Init();
whismanoid 28:298907617848 550 return true; // command handled by MAX11131
whismanoid 28:298907617848 551 } // end case '!'
whismanoid 28:298907617848 552 break;
whismanoid 11:38b95a59de02 553 case '0':
whismanoid 11:38b95a59de02 554 {
whismanoid 28:298907617848 555 // test menu command '0' handler:
whismanoid 28:298907617848 556 // helpString='0 NumWords=? -- ReadAINcode'
whismanoid 28:298907617848 557 // CMD_='SCAN_0000_NOP'
whismanoid 28:298907617848 558 // CommandName='ReadAINcode'
whismanoid 28:298907617848 559 // CommandParamIn='void'
whismanoid 28:298907617848 560 // CommandReturnType='void'
whismanoid 28:298907617848 561 // @Pre='@pre one of the Scan functions was called, setting g_MAX11131_device.NumWords'
whismanoid 28:298907617848 562 // @Param[in]='@param[in] g_MAX11131_device.NumWords: number of words to be read from the FIFO'
whismanoid 28:298907617848 563 // @Param[out]=''
whismanoid 28:298907617848 564 // @Post='@post g_MAX11131_device.RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data'
whismanoid 28:298907617848 565 // @Post='@post g_MAX11131_device.AINcode[NUM_CHANNELS] contains the latest readings in LSBs'
whismanoid 28:298907617848 566 // @Return=''
whismanoid 28:298907617848 567 // exception MAX11131 Menu item '0' ReadAINcode logic flow -- omit ReadAINcode call here, will be handled in postprocessing
whismanoid 28:298907617848 568 cmdLine.serial().printf("ReadAINcode");
whismanoid 28:298907617848 569 //
whismanoid 28:298907617848 570 // CODE GENERATOR: MAX11131 ReadAINCode and print data
whismanoid 28:298907617848 571 if (g_MAX11131_device.isExternalClock)
whismanoid 28:298907617848 572 {
whismanoid 28:298907617848 573 cmdLine.serial().printf(" External Clock");
whismanoid 28:298907617848 574 //
whismanoid 28:298907617848 575 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 576 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 577 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 578 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 579 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 580 //
whismanoid 28:298907617848 581 AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 582 }
whismanoid 28:298907617848 583 else
whismanoid 28:298907617848 584 {
whismanoid 28:298907617848 585 cmdLine.serial().printf(" Internal Clock");
whismanoid 28:298907617848 586 //
whismanoid 28:298907617848 587 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 588 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 589 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 590 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 591 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 592 //
whismanoid 28:298907617848 593 AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 594 }
whismanoid 28:298907617848 595 return true; // command handled by MAX11131
whismanoid 28:298907617848 596 } // end case '0'
whismanoid 11:38b95a59de02 597 break;
whismanoid 11:38b95a59de02 598 case '1':
whismanoid 11:38b95a59de02 599 {
whismanoid 28:298907617848 600 // test menu command '1' handler:
whismanoid 28:298907617848 601 // helpString='1 ch=? pm=? id=? -- ScanManual'
whismanoid 28:298907617848 602 // CMD_='SCAN_0001_Manual'
whismanoid 28:298907617848 603 // CommandName='ScanManual'
whismanoid 28:298907617848 604 // CommandParamIn='void'
whismanoid 28:298907617848 605 // CommandReturnType='int'
whismanoid 28:298907617848 606 // @Pre=''
whismanoid 28:298907617848 607 // @Param[in]='@param[in] g_MAX11131_device.channelNumber_0_15: AIN Channel Number'
whismanoid 28:298907617848 608 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 609 // @Param[in]='@param[in] g_MAX11131_device.chan_id_0_1: ADC_MODE_CONTROL.CHAN_ID'
whismanoid 28:298907617848 610 // @Param[out]=''
whismanoid 28:298907617848 611 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 612 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 613 cmdLine.serial().printf("ScanManual");
whismanoid 28:298907617848 614 // call function ScanManual
whismanoid 28:298907617848 615 int result = g_MAX11131_device.ScanManual();
whismanoid 28:298907617848 616 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 617 //
whismanoid 28:298907617848 618 // CODE GENERATOR: MAX11131 post-ScanManual ReadAINCode and print data
whismanoid 28:298907617848 619 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 620 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 621 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 622 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 623 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 624 //
whismanoid 28:298907617848 625 AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 626 return true; // command handled by MAX11131
whismanoid 28:298907617848 627 } // end case '1'
whismanoid 11:38b95a59de02 628 break;
whismanoid 11:38b95a59de02 629 case '2':
whismanoid 11:38b95a59de02 630 {
whismanoid 28:298907617848 631 // test menu command '2' handler:
whismanoid 28:298907617848 632 // helpString='2 ch=? av=? n=? swcnv=? pm=? -- ScanRepeat'
whismanoid 28:298907617848 633 // CMD_='SCAN_0010_Repeat'
whismanoid 28:298907617848 634 // CommandName='ScanRepeat'
whismanoid 28:298907617848 635 // CommandParamIn='void'
whismanoid 28:298907617848 636 // CommandReturnType='int'
whismanoid 28:298907617848 637 // @Pre=''
whismanoid 28:298907617848 638 // @Param[in]='@param[in] g_MAX11131_device.channelNumber_0_15: AIN Channel Number'
whismanoid 28:298907617848 639 // @Param[in]='@param[in] g_MAX11131_device.average_0_4_8_16_32: Number of samples averaged per ScanRead() word.'
whismanoid 28:298907617848 640 // @Param[in]='@param[in] g_MAX11131_device.nscan_4_8_12_16: Number of ScanRead() words to report.'
whismanoid 28:298907617848 641 // @Param[in]='@param[in] g_MAX11131_device.swcnv_0_1: ADC_MODE_CONTROL.SWCNV'
whismanoid 28:298907617848 642 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 643 // @Param[out]=''
whismanoid 28:298907617848 644 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 645 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 646 cmdLine.serial().printf("ScanRepeat");
whismanoid 28:298907617848 647 // call function ScanRepeat
whismanoid 28:298907617848 648 int result = g_MAX11131_device.ScanRepeat();
whismanoid 28:298907617848 649 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 650 //
whismanoid 28:298907617848 651 // CODE GENERATOR: MAX11131 post-ScanRepeat ReadAINCode and print data
whismanoid 28:298907617848 652 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 653 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 654 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 655 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 656 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 657 //
whismanoid 28:298907617848 658 AINcode_print_value_chanID_mean(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 659 return true; // command handled by MAX11131
whismanoid 28:298907617848 660 } // end case '2'
whismanoid 11:38b95a59de02 661 break;
whismanoid 11:38b95a59de02 662 case '3':
whismanoid 11:38b95a59de02 663 {
whismanoid 28:298907617848 664 // test menu command '3' handler:
whismanoid 28:298907617848 665 // helpString='3 ch=? av=? pm=? swcnv=? -- ScanStandardInternalClock'
whismanoid 28:298907617848 666 // CMD_='SCAN_0011_StandardInternalClock'
whismanoid 28:298907617848 667 // CommandName='ScanStandardInternalClock'
whismanoid 28:298907617848 668 // CommandParamIn='void'
whismanoid 28:298907617848 669 // CommandReturnType='int'
whismanoid 28:298907617848 670 // @Pre=''
whismanoid 28:298907617848 671 // @Param[in]='@param[in] g_MAX11131_device.channelNumber_0_15: AIN Channel Number'
whismanoid 28:298907617848 672 // @Param[in]='@param[in] g_MAX11131_device.average_0_4_8_16_32: Number of samples averaged per ScanRead() word.'
whismanoid 28:298907617848 673 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 674 // @Param[in]='@param[in] g_MAX11131_device.swcnv_0_1: ADC_MODE_CONTROL.SWCNV'
whismanoid 28:298907617848 675 // @Param[out]=''
whismanoid 28:298907617848 676 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 677 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 678 cmdLine.serial().printf("ScanStandardInternalClock");
whismanoid 28:298907617848 679 // call function ScanStandardInternalClock
whismanoid 28:298907617848 680 int result = g_MAX11131_device.ScanStandardInternalClock();
whismanoid 28:298907617848 681 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 682 //
whismanoid 28:298907617848 683 // CODE GENERATOR: MAX11131 post-ScanStandardInternalClock ReadAINCode and print data
whismanoid 28:298907617848 684 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 685 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 686 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 687 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 688 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 689 //
whismanoid 28:298907617848 690 AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 691 return true; // command handled by MAX11131
whismanoid 28:298907617848 692 } // end case '3'
whismanoid 11:38b95a59de02 693 break;
whismanoid 11:38b95a59de02 694 case '4':
whismanoid 11:38b95a59de02 695 {
whismanoid 28:298907617848 696 // test menu command '4' handler:
whismanoid 28:298907617848 697 // helpString='4 ch=? pm=? id=? -- ScanStandardExternalClock'
whismanoid 28:298907617848 698 // CMD_='SCAN_0100_StandardExternalClock'
whismanoid 28:298907617848 699 // CommandName='ScanStandardExternalClock'
whismanoid 28:298907617848 700 // CommandParamIn='void'
whismanoid 28:298907617848 701 // CommandReturnType='int'
whismanoid 28:298907617848 702 // @Pre=''
whismanoid 28:298907617848 703 // @Param[in]='@param[in] g_MAX11131_device.channelNumber_0_15: AIN Channel Number'
whismanoid 28:298907617848 704 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 705 // @Param[in]='@param[in] g_MAX11131_device.chan_id_0_1: ADC_MODE_CONTROL.CHAN_ID'
whismanoid 28:298907617848 706 // @Param[out]=''
whismanoid 28:298907617848 707 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 708 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 709 cmdLine.serial().printf("ScanStandardExternalClock");
whismanoid 28:298907617848 710 // call function ScanStandardExternalClock
whismanoid 28:298907617848 711 int result = g_MAX11131_device.ScanStandardExternalClock();
whismanoid 28:298907617848 712 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 713 //
whismanoid 28:298907617848 714 // CODE GENERATOR: MAX11131 post-ScanStandardExternalClock ReadAINCode and print data
whismanoid 28:298907617848 715 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 716 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 717 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 718 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 719 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 720 //
whismanoid 28:298907617848 721 AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 722 return true; // command handled by MAX11131
whismanoid 28:298907617848 723 } // end case '4'
whismanoid 11:38b95a59de02 724 break;
whismanoid 11:38b95a59de02 725 case '5':
whismanoid 11:38b95a59de02 726 {
whismanoid 28:298907617848 727 // test menu command '5' handler:
whismanoid 28:298907617848 728 // helpString='5 ch=? av=? pm=? swcnv=? -- ScanUpperInternalClock'
whismanoid 28:298907617848 729 // CMD_='SCAN_0101_UpperInternalClock'
whismanoid 28:298907617848 730 // CommandName='ScanUpperInternalClock'
whismanoid 28:298907617848 731 // CommandParamIn='void'
whismanoid 28:298907617848 732 // CommandReturnType='int'
whismanoid 28:298907617848 733 // @Pre=''
whismanoid 28:298907617848 734 // @Param[in]='@param[in] g_MAX11131_device.channelNumber_0_15: AIN Channel Number'
whismanoid 28:298907617848 735 // @Param[in]='@param[in] g_MAX11131_device.average_0_4_8_16_32: Number of samples averaged per ScanRead() word.'
whismanoid 28:298907617848 736 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 737 // @Param[in]='@param[in] g_MAX11131_device.swcnv_0_1: ADC_MODE_CONTROL.SWCNV'
whismanoid 28:298907617848 738 // @Param[out]=''
whismanoid 28:298907617848 739 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 740 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 741 cmdLine.serial().printf("ScanUpperInternalClock");
whismanoid 28:298907617848 742 // call function ScanUpperInternalClock
whismanoid 28:298907617848 743 int result = g_MAX11131_device.ScanUpperInternalClock();
whismanoid 28:298907617848 744 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 745 //
whismanoid 28:298907617848 746 // CODE GENERATOR: MAX11131 post-ScanUpperInternalClock ReadAINCode and print data
whismanoid 28:298907617848 747 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 748 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 749 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 750 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 751 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 752 //
whismanoid 28:298907617848 753 AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 754 return true; // command handled by MAX11131
whismanoid 28:298907617848 755 } // end case '5'
whismanoid 11:38b95a59de02 756 break;
whismanoid 11:38b95a59de02 757 case '6':
whismanoid 11:38b95a59de02 758 {
whismanoid 28:298907617848 759 // test menu command '6' handler:
whismanoid 28:298907617848 760 // helpString='6 ch=? pm=? id=? -- ScanUpperExternalClock'
whismanoid 28:298907617848 761 // CMD_='SCAN_0110_UpperExternalClock'
whismanoid 28:298907617848 762 // CommandName='ScanUpperExternalClock'
whismanoid 28:298907617848 763 // CommandParamIn='void'
whismanoid 28:298907617848 764 // CommandReturnType='int'
whismanoid 28:298907617848 765 // @Pre=''
whismanoid 28:298907617848 766 // @Param[in]='@param[in] g_MAX11131_device.channelNumber_0_15: AIN Channel Number'
whismanoid 28:298907617848 767 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 768 // @Param[in]='@param[in] g_MAX11131_device.chan_id_0_1: ADC_MODE_CONTROL.CHAN_ID'
whismanoid 28:298907617848 769 // @Param[out]=''
whismanoid 28:298907617848 770 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 771 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 772 cmdLine.serial().printf("ScanUpperExternalClock");
whismanoid 28:298907617848 773 // call function ScanUpperExternalClock
whismanoid 28:298907617848 774 int result = g_MAX11131_device.ScanUpperExternalClock();
whismanoid 28:298907617848 775 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 776 //
whismanoid 28:298907617848 777 // CODE GENERATOR: MAX11131 post-ScanUpperExternalClock ReadAINCode and print data
whismanoid 28:298907617848 778 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 779 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 780 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 781 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 782 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 783 //
whismanoid 28:298907617848 784 AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 785 return true; // command handled by MAX11131
whismanoid 28:298907617848 786 } // end case '6'
whismanoid 11:38b95a59de02 787 break;
whismanoid 11:38b95a59de02 788 case '7':
whismanoid 11:38b95a59de02 789 {
whismanoid 28:298907617848 790 // test menu command '7' handler:
whismanoid 28:298907617848 791 // helpString='7 enableMask=? av=? pm=? swcnv=? -- ScanCustomInternalClock'
whismanoid 28:298907617848 792 // CMD_='SCAN_0111_CustomInternalClock'
whismanoid 28:298907617848 793 // CommandName='ScanCustomInternalClock'
whismanoid 28:298907617848 794 // CommandParamIn='void'
whismanoid 28:298907617848 795 // CommandReturnType='int'
whismanoid 28:298907617848 796 // @Pre=''
whismanoid 28:298907617848 797 // @Param[in]='@param[in] g_MAX11131_device.enabledChannelsMask: Bitmap of AIN Channels to scan.'
whismanoid 28:298907617848 798 // @Param[in]='@param[in] g_MAX11131_device.average_0_4_8_16_32: Number of samples averaged per ScanRead() word.'
whismanoid 28:298907617848 799 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 800 // @Param[in]='@param[in] g_MAX11131_device.swcnv_0_1: ADC_MODE_CONTROL.SWCNV'
whismanoid 28:298907617848 801 // @Param[out]=''
whismanoid 28:298907617848 802 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 803 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 804 cmdLine.serial().printf("ScanCustomInternalClock");
whismanoid 28:298907617848 805 // call function ScanCustomInternalClock
whismanoid 28:298907617848 806 int result = g_MAX11131_device.ScanCustomInternalClock();
whismanoid 28:298907617848 807 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 808 //
whismanoid 28:298907617848 809 // CODE GENERATOR: MAX11131 post-ScanCustomInternalClock ReadAINCode and print data
whismanoid 28:298907617848 810 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 811 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 812 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 813 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 814 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 815 //
whismanoid 28:298907617848 816 AINcode_print_value_chanID(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 817 return true; // command handled by MAX11131
whismanoid 28:298907617848 818 } // end case '7'
whismanoid 11:38b95a59de02 819 break;
whismanoid 11:38b95a59de02 820 case '8':
whismanoid 11:38b95a59de02 821 {
whismanoid 28:298907617848 822 // test menu command '8' handler:
whismanoid 28:298907617848 823 // helpString='8 enableMask=? pm=? id=? -- ScanCustomExternalClock'
whismanoid 28:298907617848 824 // CMD_='SCAN_1000_CustomExternalClock'
whismanoid 28:298907617848 825 // CommandName='ScanCustomExternalClock'
whismanoid 28:298907617848 826 // CommandParamIn='void'
whismanoid 28:298907617848 827 // CommandReturnType='int'
whismanoid 28:298907617848 828 // @Pre=''
whismanoid 28:298907617848 829 // @Param[in]='@param[in] g_MAX11131_device.enabledChannelsMask: Bitmap of AIN Channels to scan.'
whismanoid 28:298907617848 830 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 831 // @Param[in]='@param[in] g_MAX11131_device.chan_id_0_1: ADC_MODE_CONTROL.CHAN_ID'
whismanoid 28:298907617848 832 // @Param[out]=''
whismanoid 28:298907617848 833 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 834 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 835 cmdLine.serial().printf("ScanCustomExternalClock");
whismanoid 28:298907617848 836 // call function ScanCustomExternalClock
whismanoid 28:298907617848 837 int result = g_MAX11131_device.ScanCustomExternalClock();
whismanoid 28:298907617848 838 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 839 //
whismanoid 28:298907617848 840 // CODE GENERATOR: MAX11131 post-ScanCustomExternalClock ReadAINCode and print data
whismanoid 28:298907617848 841 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 842 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 843 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 844 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 845 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 846 //
whismanoid 28:298907617848 847 AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 848 return true; // command handled by MAX11131
whismanoid 28:298907617848 849 } // end case '8'
whismanoid 11:38b95a59de02 850 break;
whismanoid 11:38b95a59de02 851 case '9':
whismanoid 11:38b95a59de02 852 {
whismanoid 28:298907617848 853 // test menu command '9' handler:
whismanoid 28:298907617848 854 // helpString='9 channelsPattern...=? pm=? id=? -- ScanSampleSetExternalClock'
whismanoid 28:298907617848 855 // CMD_='SCAN_1001_SampleSetExternalClock'
whismanoid 28:298907617848 856 // CommandName='ScanSampleSetExternalClock'
whismanoid 28:298907617848 857 // CommandParamIn='void'
whismanoid 28:298907617848 858 // CommandReturnType='int'
whismanoid 28:298907617848 859 // @Pre='@pre g_MAX11131_device.enabledChannelsPatternLength_1_256: number of channel selections'
whismanoid 28:298907617848 860 // @Pre='@pre g_MAX11131_device.enabledChannelsPattern: array containing channel selection pattern'
whismanoid 28:298907617848 861 // @Param[in]='@param[in] g_MAX11131_device.enabledChannelsPattern: array of channel select, one channel per byte'
whismanoid 28:298907617848 862 // @Param[in]='@param[in] g_MAX11131_device.PowerManagement_0_2: 0=Normal, 1=AutoShutdown, 2=AutoStandby'
whismanoid 28:298907617848 863 // @Param[in]='@param[in] g_MAX11131_device.chan_id_0_1: ADC_MODE_CONTROL.CHAN_ID'
whismanoid 28:298907617848 864 // @Param[out]=''
whismanoid 28:298907617848 865 // @Post='@post NumWords = number of words to be read from the FIFO'
whismanoid 28:298907617848 866 // @Return='@return number of ScanRead() words needed to retrieve the data.'
whismanoid 28:298907617848 867 // exception MAX11131 Menu item '9' ScanSampleSetExternalClock
whismanoid 28:298907617848 868 // parse channelsPattern using parse_byteCount_byteList_dec(size_t& byteCount, char *mosiDataBuf, size_t mosiDataBufSize)
whismanoid 28:298907617848 869 size_t byteCount = g_MAX11131_device.enabledChannelsPatternLength_1_256;
whismanoid 28:298907617848 870 char *mosiDataBuf = (char *)g_MAX11131_device.enabledChannelsPattern; // cast from uint8_t*
whismanoid 28:298907617848 871 size_t mosiDataBufSize = sizeof(g_MAX11131_device.enabledChannelsPattern);
whismanoid 28:298907617848 872 cmdLine.parse_byteCount_byteList_dec(byteCount, mosiDataBuf, mosiDataBufSize);
whismanoid 28:298907617848 873 g_MAX11131_device.enabledChannelsPatternLength_1_256 = byteCount;
whismanoid 28:298907617848 874 cmdLine.serial().printf("ScanSampleSetExternalClock");
whismanoid 28:298907617848 875 // call function ScanSampleSetExternalClock
whismanoid 28:298907617848 876 int result = g_MAX11131_device.ScanSampleSetExternalClock();
whismanoid 28:298907617848 877 cmdLine.serial().printf(" =%d\r\n", result);
whismanoid 28:298907617848 878 //
whismanoid 28:298907617848 879 // CODE GENERATOR: MAX11131 post-ScanSampleSetExternalClock ReadAINCode and print data
whismanoid 28:298907617848 880 // Read raw ADC codes from device into AINcode[] and RAW_misoData16[]
whismanoid 28:298907617848 881 // @pre one of the MAX11311_Scan functions was called, setting g_MAX11131_device.NumWords
whismanoid 28:298907617848 882 g_MAX11131_device.ReadAINcode();
whismanoid 28:298907617848 883 // @post RAW_misoData16[index] contains the raw SPI Master-In,Slave-Out data
whismanoid 28:298907617848 884 // @post AINcode[NUM_CHANNELS] contains the latest readings in LSBs
whismanoid 28:298907617848 885 //
whismanoid 28:298907617848 886 AINcode_print_value_externalClock(cmdLine, g_MAX11131_device.NumWords);
whismanoid 28:298907617848 887 return true; // command handled by MAX11131
whismanoid 28:298907617848 888 } // end case '9'
whismanoid 11:38b95a59de02 889 break;
whismanoid 28:298907617848 890 case 'I': // (multiple characters) (testMenuFirstCharHandler="I"):
whismanoid 11:38b95a59de02 891 {
whismanoid 11:38b95a59de02 892 switch (cmdLine[1])
whismanoid 11:38b95a59de02 893 {
whismanoid 28:298907617848 894 case 'B': // (nested inside case 'I')
whismanoid 28:298907617848 895 {
whismanoid 28:298907617848 896 // test menu command 'IB' handler:
whismanoid 28:298907617848 897 // helpString='IB ch=? -- Reconfigure_DifferentialBipolarFSVref'
whismanoid 28:298907617848 898 // CMD_='None'
whismanoid 28:298907617848 899 // CommandName='Reconfigure_DifferentialBipolarFSVref'
whismanoid 28:298907617848 900 // CommandParamIn='int channel_0_15'
whismanoid 28:298907617848 901 // CommandReturnType='void'
whismanoid 28:298907617848 902 // @Pre=''
whismanoid 28:298907617848 903 // @Param[in]=''
whismanoid 28:298907617848 904 // @Param[out]=''
whismanoid 28:298907617848 905 // @Post=''
whismanoid 28:298907617848 906 // displayPost=''
whismanoid 28:298907617848 907 // @Return=''
whismanoid 28:298907617848 908 // parse argument list
whismanoid 28:298907617848 909 // parse argument int channel_0_15
whismanoid 28:298907617848 910 int channel_0_15 = 0; // --- g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__; // default to global property value
whismanoid 28:298907617848 911 if (cmdLine.parse_int_dec("channel_0_15", channel_0_15))
whismanoid 28:298907617848 912 {
whismanoid 28:298907617848 913 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 914 }
whismanoid 28:298907617848 915 // "ch" is an alias for argument "channel_0_15"
whismanoid 28:298907617848 916 if (cmdLine.parse_int_dec("ch", channel_0_15))
whismanoid 28:298907617848 917 {
whismanoid 28:298907617848 918 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 919 }
whismanoid 28:298907617848 920 // print arguments
whismanoid 28:298907617848 921 cmdLine.serial().printf("Reconfigure_DifferentialBipolarFSVref");
whismanoid 28:298907617848 922 cmdLine.serial().printf(" channel_0_15=%d", channel_0_15);
whismanoid 28:298907617848 923 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 924 // call function Reconfigure_DifferentialBipolarFSVref(channel_0_15)
whismanoid 28:298907617848 925 g_MAX11131_device.Reconfigure_DifferentialBipolarFSVref(channel_0_15);
whismanoid 28:298907617848 926 return true; // command handled by MAX11131
whismanoid 28:298907617848 927 } // end nested case 'IB'
whismanoid 28:298907617848 928 break;
whismanoid 28:298907617848 929 case 'R': // (nested inside case 'I')
whismanoid 28:298907617848 930 {
whismanoid 28:298907617848 931 // test menu command 'IR' handler:
whismanoid 28:298907617848 932 // helpString='IR ch=? -- Reconfigure_DifferentialBipolarFS2Vref'
whismanoid 28:298907617848 933 // CMD_='None'
whismanoid 28:298907617848 934 // CommandName='Reconfigure_DifferentialBipolarFS2Vref'
whismanoid 28:298907617848 935 // CommandParamIn='int channel_0_15'
whismanoid 28:298907617848 936 // CommandReturnType='void'
whismanoid 28:298907617848 937 // @Pre=''
whismanoid 28:298907617848 938 // @Param[in]=''
whismanoid 28:298907617848 939 // @Param[out]=''
whismanoid 28:298907617848 940 // @Post=''
whismanoid 28:298907617848 941 // displayPost=''
whismanoid 28:298907617848 942 // @Return=''
whismanoid 28:298907617848 943 // parse argument list
whismanoid 28:298907617848 944 // parse argument int channel_0_15
whismanoid 28:298907617848 945 int channel_0_15 = 0; // --- g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__; // default to global property value
whismanoid 28:298907617848 946 if (cmdLine.parse_int_dec("channel_0_15", channel_0_15))
whismanoid 28:298907617848 947 {
whismanoid 28:298907617848 948 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 949 }
whismanoid 28:298907617848 950 // "ch" is an alias for argument "channel_0_15"
whismanoid 28:298907617848 951 if (cmdLine.parse_int_dec("ch", channel_0_15))
whismanoid 28:298907617848 952 {
whismanoid 28:298907617848 953 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 954 }
whismanoid 28:298907617848 955 // print arguments
whismanoid 28:298907617848 956 cmdLine.serial().printf("Reconfigure_DifferentialBipolarFS2Vref");
whismanoid 28:298907617848 957 cmdLine.serial().printf(" channel_0_15=%d", channel_0_15);
whismanoid 28:298907617848 958 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 959 // call function Reconfigure_DifferentialBipolarFS2Vref(channel_0_15)
whismanoid 28:298907617848 960 g_MAX11131_device.Reconfigure_DifferentialBipolarFS2Vref(channel_0_15);
whismanoid 28:298907617848 961 return true; // command handled by MAX11131
whismanoid 28:298907617848 962 } // end nested case 'IR'
whismanoid 28:298907617848 963 break;
whismanoid 28:298907617848 964 case 'S': // (nested inside case 'I')
whismanoid 28:298907617848 965 {
whismanoid 28:298907617848 966 // test menu command 'IS' handler:
whismanoid 28:298907617848 967 // helpString='IS ch=? -- Reconfigure_SingleEnded'
whismanoid 28:298907617848 968 // CMD_='None'
whismanoid 28:298907617848 969 // CommandName='Reconfigure_SingleEnded'
whismanoid 28:298907617848 970 // CommandParamIn='int channel_0_15'
whismanoid 28:298907617848 971 // CommandReturnType='void'
whismanoid 28:298907617848 972 // @Pre=''
whismanoid 28:298907617848 973 // @Param[in]=''
whismanoid 28:298907617848 974 // @Param[out]=''
whismanoid 28:298907617848 975 // @Post=''
whismanoid 28:298907617848 976 // displayPost=''
whismanoid 28:298907617848 977 // @Return=''
whismanoid 28:298907617848 978 // parse argument list
whismanoid 28:298907617848 979 // parse argument int channel_0_15
whismanoid 28:298907617848 980 int channel_0_15 = 0; // --- g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__; // default to global property value
whismanoid 28:298907617848 981 if (cmdLine.parse_int_dec("channel_0_15", channel_0_15))
whismanoid 28:298907617848 982 {
whismanoid 28:298907617848 983 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 984 }
whismanoid 28:298907617848 985 // "ch" is an alias for argument "channel_0_15"
whismanoid 28:298907617848 986 if (cmdLine.parse_int_dec("ch", channel_0_15))
whismanoid 28:298907617848 987 {
whismanoid 28:298907617848 988 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 989 }
whismanoid 28:298907617848 990 // print arguments
whismanoid 28:298907617848 991 cmdLine.serial().printf("Reconfigure_SingleEnded");
whismanoid 28:298907617848 992 cmdLine.serial().printf(" channel_0_15=%d", channel_0_15);
whismanoid 28:298907617848 993 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 994 // call function Reconfigure_SingleEnded(channel_0_15)
whismanoid 28:298907617848 995 g_MAX11131_device.Reconfigure_SingleEnded(channel_0_15);
whismanoid 28:298907617848 996 return true; // command handled by MAX11131
whismanoid 28:298907617848 997 } // end nested case 'IS'
whismanoid 28:298907617848 998 break;
whismanoid 28:298907617848 999 case 'U': // (nested inside case 'I')
whismanoid 28:298907617848 1000 {
whismanoid 28:298907617848 1001 // test menu command 'IU' handler:
whismanoid 28:298907617848 1002 // helpString='IU ch=? -- Reconfigure_DifferentialUnipolar'
whismanoid 28:298907617848 1003 // CMD_='None'
whismanoid 28:298907617848 1004 // CommandName='Reconfigure_DifferentialUnipolar'
whismanoid 28:298907617848 1005 // CommandParamIn='int channel_0_15'
whismanoid 28:298907617848 1006 // CommandReturnType='void'
whismanoid 28:298907617848 1007 // @Pre=''
whismanoid 28:298907617848 1008 // @Param[in]=''
whismanoid 28:298907617848 1009 // @Param[out]=''
whismanoid 28:298907617848 1010 // @Post=''
whismanoid 28:298907617848 1011 // displayPost=''
whismanoid 28:298907617848 1012 // @Return=''
whismanoid 28:298907617848 1013 // parse argument list
whismanoid 28:298907617848 1014 // parse argument int channel_0_15
whismanoid 28:298907617848 1015 int channel_0_15 = 0; // --- g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__; // default to global property value
whismanoid 28:298907617848 1016 if (cmdLine.parse_int_dec("channel_0_15", channel_0_15))
whismanoid 28:298907617848 1017 {
whismanoid 28:298907617848 1018 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 1019 }
whismanoid 28:298907617848 1020 // "ch" is an alias for argument "channel_0_15"
whismanoid 28:298907617848 1021 if (cmdLine.parse_int_dec("ch", channel_0_15))
whismanoid 28:298907617848 1022 {
whismanoid 28:298907617848 1023 // g_MAX11131_device.__WARNING_no_match_for_argname_channel_0_15_in_MAX11131_device_t__ = channel_0_15; // update global property value
whismanoid 28:298907617848 1024 }
whismanoid 28:298907617848 1025 // print arguments
whismanoid 28:298907617848 1026 cmdLine.serial().printf("Reconfigure_DifferentialUnipolar");
whismanoid 28:298907617848 1027 cmdLine.serial().printf(" channel_0_15=%d", channel_0_15);
whismanoid 28:298907617848 1028 cmdLine.serial().printf("\r\n");
whismanoid 28:298907617848 1029 // call function Reconfigure_DifferentialUnipolar(channel_0_15)
whismanoid 28:298907617848 1030 g_MAX11131_device.Reconfigure_DifferentialUnipolar(channel_0_15);
whismanoid 28:298907617848 1031 return true; // command handled by MAX11131
whismanoid 28:298907617848 1032 } // end nested case 'IU'
whismanoid 28:298907617848 1033 break;
whismanoid 28:298907617848 1034 } // end nested switch (cmdLine[1]) inside case 'I'
whismanoid 11:38b95a59de02 1035 break;
whismanoid 28:298907617848 1036 } // end case 'I'
whismanoid 11:38b95a59de02 1037 } // end switch (cmdLine[0])
whismanoid 28:298907617848 1038 return false; // command not handled by MAX11131
whismanoid 11:38b95a59de02 1039 } // end bool MAX11131_menu_onEOLcommandParser(CmdLine & cmdLine)
whismanoid 11:38b95a59de02 1040