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

Dependencies:   MaximTinyTester CmdLine MAX541 USBDevice

Revision:
31:8068c5394e0d
Parent:
30:9eb6eff512e7
Child:
32:ad00de965151
--- a/Test_Menu_MAX11410.cpp	Fri Jul 26 01:34:10 2019 -0700
+++ b/Test_Menu_MAX11410.cpp	Fri Jul 26 03:16:19 2019 -0700
@@ -196,13 +196,44 @@
         case 'r': case 'R':
         {
             // cmdLine.serial().printf("\r\n R reg=? -- (future) read register");
-            #warning "Not Implemented Yet: MAX11410 menu R read register"
+            #warning "Not Tested Yet: MAX11410 menu R read register"
+            uint8_t regAddress; // = g_MAX11410_device.reg; ??
+            if (cmdLine.parse_byte_dec("reg", regAddress))
+            {
+            }
+            if (regAddress <= MAX11410::CMD_r001_0000_xxxx_xxxx_WAIT_START)
+            {
+                // regAddress range 0x00 .. 0x10 are 8-bit registers
+                uint8_t regData;
+                g_MAX11410_device.Read_8bit((MAX11410::MAX11410_CMD_enum_t)regAddress, &regData);
+                cmdLine.serial().printf("regData=0x%2.2x\r\n",
+                    regData);
+            }
+            else if (regAddress <= MAX11410::CMD_r011_1001_dddd_dddd_dddd_dddd_dxxd_dddd_STATUS_IE)
+            {
+                // regAddress range 0x11 .. 0x39 are 24-bit registers
+                uint32_t regData;
+                g_MAX11410_device.Read_24bit((MAX11410::MAX11410_CMD_enum_t)regAddress, &regData);
+                cmdLine.serial().printf("regData=0x%6.6lx\r\n",
+                    regData);
+            }
+            else
+            {
+                // regAddress range 0x3a .. 0x6f are 16-bit registers
+                uint16_t regData;
+                g_MAX11410_device.Read_16bit((MAX11410::MAX11410_CMD_enum_t)regAddress, &regData);
+                cmdLine.serial().printf("regData=0x%4.4x\r\n",
+                    regData);
+            }
         }
         break;
         case 's': case 'S':
         {
             // cmdLine.serial().printf("\r\n S -- (future) read status register");
-            #warning "Not Implemented Yet: MAX11410 menu S read status register"
+            #warning "Not Tested Yet: MAX11410 menu S read status register"
+            g_MAX11410_device.Read_24bit(MAX11410::CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS, &g_MAX11410_device.status);
+            cmdLine.serial().printf("status=0x%6.6lx\r\n",
+                g_MAX11410_device.status);
         }
         break;
         // case 't': case 'T':
@@ -211,7 +242,50 @@
         case 'w': case 'W':
         {
             // cmdLine.serial().printf("\r\n W reg=? data=? -- (future) write register");
-            #warning "Not Implemented Yet: MAX11410 menu W write register"
+            #warning "Not Tested Yet: MAX11410 menu W write register"
+            uint8_t regAddress; // = g_MAX11410_device.reg; ??
+            if (cmdLine.parse_byte_dec("reg", regAddress))
+            {
+            }
+            if (regAddress <= MAX11410::CMD_r001_0000_xxxx_xxxx_WAIT_START)
+            {
+                // regAddress range 0x00 .. 0x10 are 8-bit registers
+                uint8_t regData;
+                if (cmdLine.parse_byte_dec("data", regData))
+                {
+                }
+                g_MAX11410_device.Write_8bit((MAX11410::MAX11410_CMD_enum_t)regAddress, regData);
+                cmdLine.serial().printf("regData=0x%2.2x\r\n",
+                    regData);
+            }
+            else if (regAddress <= MAX11410::CMD_r011_1001_dddd_dddd_dddd_dddd_dxxd_dddd_STATUS_IE)
+            {
+                // regAddress range 0x11 .. 0x39 are 24-bit registers
+#warning "CmdLine needs to define parse_uint32_dec()"
+                //uint32_t regData;
+                //if (cmdLine.parse_uint32_dec("data", regData))
+                uint16_t regData;
+                if (cmdLine.parse_uint16_dec("data", regData))
+                {
+                }
+                g_MAX11410_device.Write_24bit((MAX11410::MAX11410_CMD_enum_t)regAddress, regData);
+                cmdLine.serial().printf("regData=0x%6.6lx\r\n",
+                    regData);
+            }
+            else
+            {
+                // regAddress range 0x3a .. 0x6f are 16-bit registers
+                uint16_t regData;
+                if (cmdLine.parse_uint16_dec("data", regData))
+                {
+                }
+                g_MAX11410_device.Write_16bit((MAX11410::MAX11410_CMD_enum_t)regAddress, regData);
+                cmdLine.serial().printf("regData=0x%4.4x\r\n",
+                    regData);
+            }
+            // g_MAX11410_device.Write_8bit(MAX11410_CMD_enum_t regAddress, uint8_t regData)
+            // g_MAX11410_device.Write_16bit(MAX11410_CMD_enum_t regAddress, uint16_t regData);
+            // g_MAX11410_device.Write_24bit(MAX11410_CMD_enum_t regAddress, uint32_t regData);
         }
         break;
         case 'x': case 'X':
@@ -276,13 +350,13 @@
             // dtostrf width and precision: 2.5V / 2^24 LSB = ______ volts per LSB
             //
             // shadow of register CMD_r011_1000_dddd_dddd_dddd_dddd_dxxx_dddd_STATUS
-            cmdLine.serial().printf("status=0x%6.6x\r\n",
+            cmdLine.serial().printf("status=0x%6.6lx\r\n",
                 g_MAX11410_device.status);
             //
             // shadow of register CMD_r011_0000_dddd_dddd_dddd_dddd_dddd_dddd_DATA0
             double voltage_of_data0;
             voltage_of_data0 = g_MAX11410_device.VoltageOfCode(g_MAX11410_device.data0);
-            cmdLine.serial().printf("data0=0x%6.6x=%u=%d=%5.6fV\r\n",
+            cmdLine.serial().printf("data0=0x%6.6lx=%lu=%ld=%5.6fV\r\n",
                 g_MAX11410_device.data0,
                 g_MAX11410_device.data0,
                 g_MAX11410_device.data0,