APS Lab
/
COG_UART_Base
Uart with ADXL362
My Memo's for EV-COG-AD4050LZ Pinname
<<CODE>> #define GPIO_PORT_SHIFT 12 typedef enum { P0_00 = (0 << GPIO_PORT_SHIFT | 0 ), P0_01 = (0 << GPIO_PORT_SHIFT | 1 ), P0_02 = (0 << GPIO_PORT_SHIFT | 2 ), P0_03 = (0 << GPIO_PORT_SHIFT | 3 ), P0_04 = (0 << GPIO_PORT_SHIFT | 4 ), P0_05 = (0 << GPIO_PORT_SHIFT | 5 ), P0_06 = (0 << GPIO_PORT_SHIFT | 6 ), P0_07 = (0 << GPIO_PORT_SHIFT | 7 ), P0_08 = (0 << GPIO_PORT_SHIFT | 8 ), P0_09 = (0 << GPIO_PORT_SHIFT | 9 ), P0_10 = (0 << GPIO_PORT_SHIFT | 10), P0_11 = (0 << GPIO_PORT_SHIFT | 11), P0_12 = (0 << GPIO_PORT_SHIFT | 12), P0_13 = (0 << GPIO_PORT_SHIFT | 13), P0_14 = (0 << GPIO_PORT_SHIFT | 14), P0_15 = (0 << GPIO_PORT_SHIFT | 15), P1_00 = (1 << GPIO_PORT_SHIFT | 0 ), P1_01 = (1 << GPIO_PORT_SHIFT | 1 ), P1_02 = (1 << GPIO_PORT_SHIFT | 2 ), P1_03 = (1 << GPIO_PORT_SHIFT | 3 ), P1_04 = (1 << GPIO_PORT_SHIFT | 4 ), P1_05 = (1 << GPIO_PORT_SHIFT | 5 ), P1_06 = (1 << GPIO_PORT_SHIFT | 6 ), P1_07 = (1 << GPIO_PORT_SHIFT | 7 ), P1_08 = (1 << GPIO_PORT_SHIFT | 8 ), P1_09 = (1 << GPIO_PORT_SHIFT | 9 ), P1_10 = (1 << GPIO_PORT_SHIFT | 10), P1_11 = (1 << GPIO_PORT_SHIFT | 11), P1_12 = (1 << GPIO_PORT_SHIFT | 12), P1_13 = (1 << GPIO_PORT_SHIFT | 13), P1_14 = (1 << GPIO_PORT_SHIFT | 14), P1_15 = (1 << GPIO_PORT_SHIFT | 15), P2_00 = (2 << GPIO_PORT_SHIFT | 0 ), P2_01 = (2 << GPIO_PORT_SHIFT | 1 ), P2_02 = (2 << GPIO_PORT_SHIFT | 2 ), P2_03 = (2 << GPIO_PORT_SHIFT | 3 ), P2_04 = (2 << GPIO_PORT_SHIFT | 4 ), P2_05 = (2 << GPIO_PORT_SHIFT | 5 ), P2_06 = (2 << GPIO_PORT_SHIFT | 6 ), P2_07 = (2 << GPIO_PORT_SHIFT | 7 ), P2_08 = (2 << GPIO_PORT_SHIFT | 8 ), P2_09 = (2 << GPIO_PORT_SHIFT | 9 ), P2_10 = (2 << GPIO_PORT_SHIFT | 10), P2_11 = (2 << GPIO_PORT_SHIFT | 11), // USB Pins USBTX = P0_10, USBRX = P0_11, USBTX1 = P1_15, USBRX1 = P2_00, // mbed original LED naming LED1 = P2_02, LED2 = P2_10, LED3 = LED2, LED4 = LED1, //Push buttons PB0 = P1_00, // BTN1 PB1 = P0_09, // BTN2 BUTTON1 = P1_00, // BTN1 BUTTON2 = P0_09, // BTN2 BOOT = P1_01, WAKE0 = P0_15, // JP15 to select WAKE1 = P1_00, // JP8 (BTN1 jumper) to select WAKE2 = P0_13, // JP4 to select WAKE3 = P2_01, // JP15 to select // SPI Pins SPI0_SCLK = P0_00, SPI0_MOSI = P0_01, SPI0_MISO = P0_02, SPI0_CS0 = P0_03, SPI0_CS1 = P1_10, SPI0_CS2 = P2_08, SPI0_CS3 = P2_09, SPI1_SCLK = P1_06, SPI1_MOSI = P1_07, SPI1_MISO = P1_08, SPI1_CS0 = P1_09, SPI1_CS1 = P2_11, SPI1_CS2 = P2_02, SPI1_CS3 = P1_10, SPI2_SCLK = P1_02, SPI2_MOSI = P1_03, SPI2_MISO = P1_04, SPI2_CS0 = P1_05, SPI2_CS1 = P0_09, SPI2_CS2 = P2_10, SPI2_CS3 = P2_07, // ADC Pins ADC_VIN0 = P2_03, ADC_VIN1 = P2_04, ADC_VIN2 = P2_05, ADC_VIN3 = P2_06, ADC_VIN4 = P2_07, ADC_VIN5 = P2_08, ADC_VIN6 = P2_09, ADC_VIN7 = P2_10, // Arduino Headers D0 = P0_10, // UART0_TXD D1 = P0_11, // UART0_RXD D2 = P0_15, // INT_WAKE0 D3 = P0_13, // EXT_INT_WAKE2 D4 = P0_09, // EXT_SPI2_CS1 D5 = P2_01, // INT_WAKE3 or EXT_RTC1_SS1 via JP8 D6 = P1_11, // GPIO_27 D7 = P0_12, // GPIO_08 or GPIO_12 via JP7 D8 = P1_12, // GPIO_28 D9 = P1_14, // GPIO_30 D10 = SPI0_CS2, // P2_08 D11 = SPI0_MOSI, // P0_01 D12 = SPI0_MISO, // P0_02 D13 = SPI0_SCLK, // P0_00 I2C_SCL = P0_04, // I2C_SCL I2C_SDA = P0_05, // I2C_SDA A0 = P2_03, // ADC0 A1 = P2_04, // EXT_ADC1 A2 = P2_05, // EXT_ADC2 A3 = P2_06, // ADC3 A4 = P2_07, // SPI2_CS3 A5 = P2_10, // EXT_GPIO42 // Not connected NC = (int)0xFFFFFFFF } PinName; <</CODE>>
main.cpp@0:5868fc6c16b3, 2019-01-11 (annotated)
- Committer:
- APS_Lab
- Date:
- Fri Jan 11 07:06:37 2019 +0000
- Revision:
- 0:5868fc6c16b3
First update
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
APS_Lab | 0:5868fc6c16b3 | 1 | /* mbed Microcontroller Library |
APS_Lab | 0:5868fc6c16b3 | 2 | * Copyright (c) 2018 ARM Limited |
APS_Lab | 0:5868fc6c16b3 | 3 | * SPDX-License-Identifier: Apache-2.0 |
APS_Lab | 0:5868fc6c16b3 | 4 | */ |
APS_Lab | 0:5868fc6c16b3 | 5 | |
APS_Lab | 0:5868fc6c16b3 | 6 | #include "mbed.h" |
APS_Lab | 0:5868fc6c16b3 | 7 | #include "stats_report.h" |
APS_Lab | 0:5868fc6c16b3 | 8 | #include "ADXL362.h" |
APS_Lab | 0:5868fc6c16b3 | 9 | #include "math.h" |
APS_Lab | 0:5868fc6c16b3 | 10 | |
APS_Lab | 0:5868fc6c16b3 | 11 | #define G_2 1.0 |
APS_Lab | 0:5868fc6c16b3 | 12 | #define G_4 2.0 |
APS_Lab | 0:5868fc6c16b3 | 13 | #define G_8 4.0 |
APS_Lab | 0:5868fc6c16b3 | 14 | |
APS_Lab | 0:5868fc6c16b3 | 15 | |
APS_Lab | 0:5868fc6c16b3 | 16 | |
APS_Lab | 0:5868fc6c16b3 | 17 | #define MODE_NORMAL 0 |
APS_Lab | 0:5868fc6c16b3 | 18 | #define MODE_LOW_POWER 1 |
APS_Lab | 0:5868fc6c16b3 | 19 | #define MODE_ULTRA_LOW_POWER 2 |
APS_Lab | 0:5868fc6c16b3 | 20 | |
APS_Lab | 0:5868fc6c16b3 | 21 | DigitalOut led1(LED1); |
APS_Lab | 0:5868fc6c16b3 | 22 | Serial PC(USBTX, USBRX); |
APS_Lab | 0:5868fc6c16b3 | 23 | |
APS_Lab | 0:5868fc6c16b3 | 24 | char Buf[128]; |
APS_Lab | 0:5868fc6c16b3 | 25 | char command[8]; |
APS_Lab | 0:5868fc6c16b3 | 26 | char mode[8]; |
APS_Lab | 0:5868fc6c16b3 | 27 | char val[8]; |
APS_Lab | 0:5868fc6c16b3 | 28 | int f_val; |
APS_Lab | 0:5868fc6c16b3 | 29 | |
APS_Lab | 0:5868fc6c16b3 | 30 | int set_mode(int m); |
APS_Lab | 0:5868fc6c16b3 | 31 | int set_freq(int v); |
APS_Lab | 0:5868fc6c16b3 | 32 | int set_grav(int v); |
APS_Lab | 0:5868fc6c16b3 | 33 | void set_start(void); |
APS_Lab | 0:5868fc6c16b3 | 34 | void set_stop(void); |
APS_Lab | 0:5868fc6c16b3 | 35 | static void clearDisplay(void); |
APS_Lab | 0:5868fc6c16b3 | 36 | static void drawCLI(ADXL362 *adxlCtrl, AccelTemp *getData); |
APS_Lab | 0:5868fc6c16b3 | 37 | volatile int f_run = 0; |
APS_Lab | 0:5868fc6c16b3 | 38 | volatile int f_wake = 0; |
APS_Lab | 0:5868fc6c16b3 | 39 | SPI *spi1; |
APS_Lab | 0:5868fc6c16b3 | 40 | ADXL362 *adxlCtrl; |
APS_Lab | 0:5868fc6c16b3 | 41 | AccelTemp GetData; |
APS_Lab | 0:5868fc6c16b3 | 42 | DigitalIn ADXL_WAKE(WAKE2); |
APS_Lab | 0:5868fc6c16b3 | 43 | |
APS_Lab | 0:5868fc6c16b3 | 44 | |
APS_Lab | 0:5868fc6c16b3 | 45 | // main() runs in its own thread in the OS |
APS_Lab | 0:5868fc6c16b3 | 46 | int main() |
APS_Lab | 0:5868fc6c16b3 | 47 | { |
APS_Lab | 0:5868fc6c16b3 | 48 | PC.baud(115200); |
APS_Lab | 0:5868fc6c16b3 | 49 | PC.printf("EV-COG-AD4050LZ Demo\n"); |
APS_Lab | 0:5868fc6c16b3 | 50 | |
APS_Lab | 0:5868fc6c16b3 | 51 | spi1 = new SPI(SPI1_MOSI, SPI1_MISO, SPI1_SCLK); |
APS_Lab | 0:5868fc6c16b3 | 52 | adxlCtrl = new ADXL362(&PC, spi1); |
APS_Lab | 0:5868fc6c16b3 | 53 | |
APS_Lab | 0:5868fc6c16b3 | 54 | clearDisplay(); |
APS_Lab | 0:5868fc6c16b3 | 55 | |
APS_Lab | 0:5868fc6c16b3 | 56 | while (true) { |
APS_Lab | 0:5868fc6c16b3 | 57 | // Blink LED and wait 0.5 seconds |
APS_Lab | 0:5868fc6c16b3 | 58 | led1 = !led1; |
APS_Lab | 0:5868fc6c16b3 | 59 | wait_ms(500); |
APS_Lab | 0:5868fc6c16b3 | 60 | |
APS_Lab | 0:5868fc6c16b3 | 61 | PC.scanf("%s", command); |
APS_Lab | 0:5868fc6c16b3 | 62 | |
APS_Lab | 0:5868fc6c16b3 | 63 | if(strncmp(command, "set", 3) == 0) |
APS_Lab | 0:5868fc6c16b3 | 64 | { |
APS_Lab | 0:5868fc6c16b3 | 65 | PC.scanf("%s",mode); |
APS_Lab | 0:5868fc6c16b3 | 66 | |
APS_Lab | 0:5868fc6c16b3 | 67 | if(strncmp(mode, "freq", 4) == 0) |
APS_Lab | 0:5868fc6c16b3 | 68 | { |
APS_Lab | 0:5868fc6c16b3 | 69 | PC.scanf("%s", val); |
APS_Lab | 0:5868fc6c16b3 | 70 | f_val = atoi(val); |
APS_Lab | 0:5868fc6c16b3 | 71 | set_freq(f_val); |
APS_Lab | 0:5868fc6c16b3 | 72 | } |
APS_Lab | 0:5868fc6c16b3 | 73 | else if(strncmp(mode, "mode", 4) == 0) |
APS_Lab | 0:5868fc6c16b3 | 74 | { |
APS_Lab | 0:5868fc6c16b3 | 75 | PC.scanf("%s", val); |
APS_Lab | 0:5868fc6c16b3 | 76 | f_val = atoi(val); |
APS_Lab | 0:5868fc6c16b3 | 77 | set_mode(f_val); |
APS_Lab | 0:5868fc6c16b3 | 78 | } |
APS_Lab | 0:5868fc6c16b3 | 79 | else if(strncmp(mode, "grav", 4) == 0) |
APS_Lab | 0:5868fc6c16b3 | 80 | { |
APS_Lab | 0:5868fc6c16b3 | 81 | PC.scanf("%s", val); |
APS_Lab | 0:5868fc6c16b3 | 82 | f_val = atoi(val); |
APS_Lab | 0:5868fc6c16b3 | 83 | set_grav(f_val); |
APS_Lab | 0:5868fc6c16b3 | 84 | } |
APS_Lab | 0:5868fc6c16b3 | 85 | else if(strncmp(mode, "wakeup", 6) == 0) |
APS_Lab | 0:5868fc6c16b3 | 86 | { |
APS_Lab | 0:5868fc6c16b3 | 87 | PC.printf("ADXL362 wakeup mode\n"); |
APS_Lab | 0:5868fc6c16b3 | 88 | adxlCtrl->set_wakeupmode(); |
APS_Lab | 0:5868fc6c16b3 | 89 | f_wake = 1; |
APS_Lab | 0:5868fc6c16b3 | 90 | PC.printf("ADXL362 wakeup waiting......\n"); |
APS_Lab | 0:5868fc6c16b3 | 91 | while(f_wake) |
APS_Lab | 0:5868fc6c16b3 | 92 | { |
APS_Lab | 0:5868fc6c16b3 | 93 | if() |
APS_Lab | 0:5868fc6c16b3 | 94 | { |
APS_Lab | 0:5868fc6c16b3 | 95 | f_wake = 0; |
APS_Lab | 0:5868fc6c16b3 | 96 | PC.printf("ADXL362 Wake-up\n"); |
APS_Lab | 0:5868fc6c16b3 | 97 | } |
APS_Lab | 0:5868fc6c16b3 | 98 | } |
APS_Lab | 0:5868fc6c16b3 | 99 | |
APS_Lab | 0:5868fc6c16b3 | 100 | |
APS_Lab | 0:5868fc6c16b3 | 101 | }else |
APS_Lab | 0:5868fc6c16b3 | 102 | { |
APS_Lab | 0:5868fc6c16b3 | 103 | PC.printf("Command Invalid\n"); |
APS_Lab | 0:5868fc6c16b3 | 104 | } |
APS_Lab | 0:5868fc6c16b3 | 105 | } |
APS_Lab | 0:5868fc6c16b3 | 106 | else if(strncmp(command, "start", 5) == 0) |
APS_Lab | 0:5868fc6c16b3 | 107 | { |
APS_Lab | 0:5868fc6c16b3 | 108 | set_start(); |
APS_Lab | 0:5868fc6c16b3 | 109 | while(f_run) |
APS_Lab | 0:5868fc6c16b3 | 110 | { |
APS_Lab | 0:5868fc6c16b3 | 111 | adxlCtrl->SensorRead(&GetData); |
APS_Lab | 0:5868fc6c16b3 | 112 | drawCLI(adxlCtrl, &GetData); |
APS_Lab | 0:5868fc6c16b3 | 113 | wait(0.5); |
APS_Lab | 0:5868fc6c16b3 | 114 | } |
APS_Lab | 0:5868fc6c16b3 | 115 | } |
APS_Lab | 0:5868fc6c16b3 | 116 | //else if(strncmp(command, "stop", 4) == 0) |
APS_Lab | 0:5868fc6c16b3 | 117 | //{ |
APS_Lab | 0:5868fc6c16b3 | 118 | // set_stop(); |
APS_Lab | 0:5868fc6c16b3 | 119 | //} |
APS_Lab | 0:5868fc6c16b3 | 120 | else |
APS_Lab | 0:5868fc6c16b3 | 121 | { |
APS_Lab | 0:5868fc6c16b3 | 122 | PC.printf("Command Usage\n"); |
APS_Lab | 0:5868fc6c16b3 | 123 | PC.printf("Command : only 'set'\n"); |
APS_Lab | 0:5868fc6c16b3 | 124 | PC.printf("Mode : 'freq' is ODR configuration\n"); |
APS_Lab | 0:5868fc6c16b3 | 125 | PC.printf(" : ODR frequency from 12, 25, 50, 100, 200, 400Hz\n"); |
APS_Lab | 0:5868fc6c16b3 | 126 | PC.printf("Mode : 'grav' is select gravity\n"); |
APS_Lab | 0:5868fc6c16b3 | 127 | PC.printf(" : 0:2g 1:4g 2:8g\n"); |
APS_Lab | 0:5868fc6c16b3 | 128 | PC.printf("Mode : 'mode' is power mode\n"); |
APS_Lab | 0:5868fc6c16b3 | 129 | PC.printf(" : 0:Normal 1:Low Power 2:Ultra Low Power(freq is fixed at 100Hz)\n"); |
APS_Lab | 0:5868fc6c16b3 | 130 | PC.printf("i.e. 'set mode 0'\n"); |
APS_Lab | 0:5868fc6c16b3 | 131 | PC.printf("i.e. 'set freq 1000'\n"); |
APS_Lab | 0:5868fc6c16b3 | 132 | PC.printf("i.e. 'start'\n"); |
APS_Lab | 0:5868fc6c16b3 | 133 | } |
APS_Lab | 0:5868fc6c16b3 | 134 | // Following the main thread wait, report on the current system status |
APS_Lab | 0:5868fc6c16b3 | 135 | //sys_state.report_state(); |
APS_Lab | 0:5868fc6c16b3 | 136 | } |
APS_Lab | 0:5868fc6c16b3 | 137 | } |
APS_Lab | 0:5868fc6c16b3 | 138 | |
APS_Lab | 0:5868fc6c16b3 | 139 | |
APS_Lab | 0:5868fc6c16b3 | 140 | int set_freq(int v) |
APS_Lab | 0:5868fc6c16b3 | 141 | { |
APS_Lab | 0:5868fc6c16b3 | 142 | if((v < 12) || (v > 400)) |
APS_Lab | 0:5868fc6c16b3 | 143 | { |
APS_Lab | 0:5868fc6c16b3 | 144 | PC.printf("ODR Freqency Range is over/under. Please configure for 12-400 Hz.\n"); |
APS_Lab | 0:5868fc6c16b3 | 145 | return 1; |
APS_Lab | 0:5868fc6c16b3 | 146 | } |
APS_Lab | 0:5868fc6c16b3 | 147 | else |
APS_Lab | 0:5868fc6c16b3 | 148 | { |
APS_Lab | 0:5868fc6c16b3 | 149 | PC.printf("Set Frequency %d Hz\n", v); |
APS_Lab | 0:5868fc6c16b3 | 150 | return 0; |
APS_Lab | 0:5868fc6c16b3 | 151 | } |
APS_Lab | 0:5868fc6c16b3 | 152 | } |
APS_Lab | 0:5868fc6c16b3 | 153 | |
APS_Lab | 0:5868fc6c16b3 | 154 | int set_grav(int v) |
APS_Lab | 0:5868fc6c16b3 | 155 | { |
APS_Lab | 0:5868fc6c16b3 | 156 | switch(v) |
APS_Lab | 0:5868fc6c16b3 | 157 | { |
APS_Lab | 0:5868fc6c16b3 | 158 | case 0: |
APS_Lab | 0:5868fc6c16b3 | 159 | PC.printf("Set gravity 2g\n"); |
APS_Lab | 0:5868fc6c16b3 | 160 | adxlCtrl->set_gravity(GRAVITY_2G); |
APS_Lab | 0:5868fc6c16b3 | 161 | break; |
APS_Lab | 0:5868fc6c16b3 | 162 | case 1: |
APS_Lab | 0:5868fc6c16b3 | 163 | PC.printf("Set gravity 4g\n"); |
APS_Lab | 0:5868fc6c16b3 | 164 | adxlCtrl->set_gravity(GRAVITY_4G); |
APS_Lab | 0:5868fc6c16b3 | 165 | break; |
APS_Lab | 0:5868fc6c16b3 | 166 | case 2: |
APS_Lab | 0:5868fc6c16b3 | 167 | PC.printf("Set gravity 8g\n"); |
APS_Lab | 0:5868fc6c16b3 | 168 | adxlCtrl->set_gravity(GRAVITY_8G); |
APS_Lab | 0:5868fc6c16b3 | 169 | break; |
APS_Lab | 0:5868fc6c16b3 | 170 | default: |
APS_Lab | 0:5868fc6c16b3 | 171 | PC.printf("Unknown Command\n"); |
APS_Lab | 0:5868fc6c16b3 | 172 | break; |
APS_Lab | 0:5868fc6c16b3 | 173 | }; |
APS_Lab | 0:5868fc6c16b3 | 174 | |
APS_Lab | 0:5868fc6c16b3 | 175 | return 0; |
APS_Lab | 0:5868fc6c16b3 | 176 | } |
APS_Lab | 0:5868fc6c16b3 | 177 | int set_mode(int m) |
APS_Lab | 0:5868fc6c16b3 | 178 | { |
APS_Lab | 0:5868fc6c16b3 | 179 | switch(m) |
APS_Lab | 0:5868fc6c16b3 | 180 | { |
APS_Lab | 0:5868fc6c16b3 | 181 | case MODE_NORMAL: |
APS_Lab | 0:5868fc6c16b3 | 182 | PC.printf("Set Normal Mode\n"); |
APS_Lab | 0:5868fc6c16b3 | 183 | adxlCtrl->set_powermode(POWER_CTL_PARAM_LOWNOISE_NORM); |
APS_Lab | 0:5868fc6c16b3 | 184 | break; |
APS_Lab | 0:5868fc6c16b3 | 185 | case MODE_LOW_POWER: |
APS_Lab | 0:5868fc6c16b3 | 186 | PC.printf("Set Low Power Mode\n"); |
APS_Lab | 0:5868fc6c16b3 | 187 | adxlCtrl->set_powermode(POWER_CTL_PARAM_LOWNOISE_LOW); |
APS_Lab | 0:5868fc6c16b3 | 188 | break; |
APS_Lab | 0:5868fc6c16b3 | 189 | case MODE_ULTRA_LOW_POWER: |
APS_Lab | 0:5868fc6c16b3 | 190 | PC.printf("Set Ultra Low Power Mode\n"); |
APS_Lab | 0:5868fc6c16b3 | 191 | adxlCtrl->set_powermode(POWER_CTL_PARAM_LOWNOISE_ULTRA); |
APS_Lab | 0:5868fc6c16b3 | 192 | break; |
APS_Lab | 0:5868fc6c16b3 | 193 | default: |
APS_Lab | 0:5868fc6c16b3 | 194 | PC.printf("Unknown Command\n"); |
APS_Lab | 0:5868fc6c16b3 | 195 | break; |
APS_Lab | 0:5868fc6c16b3 | 196 | }; |
APS_Lab | 0:5868fc6c16b3 | 197 | |
APS_Lab | 0:5868fc6c16b3 | 198 | return 0; |
APS_Lab | 0:5868fc6c16b3 | 199 | } |
APS_Lab | 0:5868fc6c16b3 | 200 | |
APS_Lab | 0:5868fc6c16b3 | 201 | void set_start(void) |
APS_Lab | 0:5868fc6c16b3 | 202 | { |
APS_Lab | 0:5868fc6c16b3 | 203 | f_run = 1; |
APS_Lab | 0:5868fc6c16b3 | 204 | adxlCtrl->start(); |
APS_Lab | 0:5868fc6c16b3 | 205 | PC.printf("Start Accel\n"); |
APS_Lab | 0:5868fc6c16b3 | 206 | } |
APS_Lab | 0:5868fc6c16b3 | 207 | |
APS_Lab | 0:5868fc6c16b3 | 208 | void set_stop(void) |
APS_Lab | 0:5868fc6c16b3 | 209 | { |
APS_Lab | 0:5868fc6c16b3 | 210 | f_run = 0; |
APS_Lab | 0:5868fc6c16b3 | 211 | adxlCtrl->stop(); |
APS_Lab | 0:5868fc6c16b3 | 212 | PC.printf("Stop Accel\n"); |
APS_Lab | 0:5868fc6c16b3 | 213 | } |
APS_Lab | 0:5868fc6c16b3 | 214 | |
APS_Lab | 0:5868fc6c16b3 | 215 | static void clearDisplay(void) |
APS_Lab | 0:5868fc6c16b3 | 216 | { |
APS_Lab | 0:5868fc6c16b3 | 217 | PC.printf("\033[2J"); |
APS_Lab | 0:5868fc6c16b3 | 218 | PC.printf("\033[0;0H"); |
APS_Lab | 0:5868fc6c16b3 | 219 | PC.printf("\033[0m\033[37m"); |
APS_Lab | 0:5868fc6c16b3 | 220 | } |
APS_Lab | 0:5868fc6c16b3 | 221 | |
APS_Lab | 0:5868fc6c16b3 | 222 | static void drawCLI(ADXL362 *adxlCtrl, AccelTemp *getData) |
APS_Lab | 0:5868fc6c16b3 | 223 | { |
APS_Lab | 0:5868fc6c16b3 | 224 | AccelTemp *min = adxlCtrl->GetMinInfo(); |
APS_Lab | 0:5868fc6c16b3 | 225 | AccelTemp *max = adxlCtrl->GetMaxInfo(); |
APS_Lab | 0:5868fc6c16b3 | 226 | AccelTemp *p; |
APS_Lab | 0:5868fc6c16b3 | 227 | float x, y, z, t; |
APS_Lab | 0:5868fc6c16b3 | 228 | |
APS_Lab | 0:5868fc6c16b3 | 229 | PC.printf("\033[2J"); |
APS_Lab | 0:5868fc6c16b3 | 230 | |
APS_Lab | 0:5868fc6c16b3 | 231 | /* BLANK LINE */ |
APS_Lab | 0:5868fc6c16b3 | 232 | |
APS_Lab | 0:5868fc6c16b3 | 233 | PC.printf("\033[0m\033[33m\033[1m"); |
APS_Lab | 0:5868fc6c16b3 | 234 | PC.printf("\033[2;1H"); |
APS_Lab | 0:5868fc6c16b3 | 235 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 236 | PC.printf("ACCELEROMETERs"); |
APS_Lab | 0:5868fc6c16b3 | 237 | |
APS_Lab | 0:5868fc6c16b3 | 238 | PC.printf("\033[0m\033[37m"); |
APS_Lab | 0:5868fc6c16b3 | 239 | PC.printf("\033[3;3H"); |
APS_Lab | 0:5868fc6c16b3 | 240 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 241 | PC.printf("\033[3;10H-X---\033[3;20H-Y---\033[3;30H-Z---"); |
APS_Lab | 0:5868fc6c16b3 | 242 | |
APS_Lab | 0:5868fc6c16b3 | 243 | PC.printf("\033[0m\033[35m"); |
APS_Lab | 0:5868fc6c16b3 | 244 | PC.printf("\033[4;3H"); |
APS_Lab | 0:5868fc6c16b3 | 245 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 246 | p = min; |
APS_Lab | 0:5868fc6c16b3 | 247 | x = sin(adxlCtrl->ConvAccel(p->ax)); |
APS_Lab | 0:5868fc6c16b3 | 248 | y = adxlCtrl->ConvAccel(p->ay); |
APS_Lab | 0:5868fc6c16b3 | 249 | z = adxlCtrl->ConvAccel(p->az); |
APS_Lab | 0:5868fc6c16b3 | 250 | PC.printf("min\033[4;10H%04.2f\033[4;20H%04.2f\033[4;30H%04.2f", x, y, z); |
APS_Lab | 0:5868fc6c16b3 | 251 | |
APS_Lab | 0:5868fc6c16b3 | 252 | PC.printf("\033[0m\033[37m\033[1m"); |
APS_Lab | 0:5868fc6c16b3 | 253 | PC.printf("\033[5;3H"); |
APS_Lab | 0:5868fc6c16b3 | 254 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 255 | p = getData; |
APS_Lab | 0:5868fc6c16b3 | 256 | x = adxlCtrl->ConvAccel(p->ax); |
APS_Lab | 0:5868fc6c16b3 | 257 | y = adxlCtrl->ConvAccel(p->ay); |
APS_Lab | 0:5868fc6c16b3 | 258 | z = adxlCtrl->ConvAccel(p->az); |
APS_Lab | 0:5868fc6c16b3 | 259 | PC.printf("-->\033[5;10H%04.2f\033[5;20H%04.2f\033[5;30H%04.2f", x, y, z); |
APS_Lab | 0:5868fc6c16b3 | 260 | |
APS_Lab | 0:5868fc6c16b3 | 261 | PC.printf("\033[0m\033[36m"); |
APS_Lab | 0:5868fc6c16b3 | 262 | PC.printf("\033[6;3H"); |
APS_Lab | 0:5868fc6c16b3 | 263 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 264 | p = max; |
APS_Lab | 0:5868fc6c16b3 | 265 | x = adxlCtrl->ConvAccel(p->ax); |
APS_Lab | 0:5868fc6c16b3 | 266 | y = adxlCtrl->ConvAccel(p->ay); |
APS_Lab | 0:5868fc6c16b3 | 267 | z = adxlCtrl->ConvAccel(p->az); |
APS_Lab | 0:5868fc6c16b3 | 268 | PC.printf("max\033[6;10H%04.2f\033[6;20H%04.2f\033[6;30H%04.2f", x, y, z); |
APS_Lab | 0:5868fc6c16b3 | 269 | |
APS_Lab | 0:5868fc6c16b3 | 270 | /* BLANK LINE */ |
APS_Lab | 0:5868fc6c16b3 | 271 | |
APS_Lab | 0:5868fc6c16b3 | 272 | PC.printf("\033[0m\033[31m\033[1m"); |
APS_Lab | 0:5868fc6c16b3 | 273 | PC.printf("\033[8;1H"); |
APS_Lab | 0:5868fc6c16b3 | 274 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 275 | PC.printf("Temperature"); |
APS_Lab | 0:5868fc6c16b3 | 276 | |
APS_Lab | 0:5868fc6c16b3 | 277 | /* BLANK LINE */ |
APS_Lab | 0:5868fc6c16b3 | 278 | |
APS_Lab | 0:5868fc6c16b3 | 279 | PC.printf("\033[0m\033[35m"); |
APS_Lab | 0:5868fc6c16b3 | 280 | PC.printf("\033[10;3H"); |
APS_Lab | 0:5868fc6c16b3 | 281 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 282 | p = min; |
APS_Lab | 0:5868fc6c16b3 | 283 | t = adxlCtrl->ConvThermal(p->tm); |
APS_Lab | 0:5868fc6c16b3 | 284 | PC.printf("min\033[10;10H%04.2f", t); |
APS_Lab | 0:5868fc6c16b3 | 285 | |
APS_Lab | 0:5868fc6c16b3 | 286 | PC.printf("\033[0m\033[37m\033[1m"); |
APS_Lab | 0:5868fc6c16b3 | 287 | PC.printf("\033[11;3H"); |
APS_Lab | 0:5868fc6c16b3 | 288 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 289 | p = getData; |
APS_Lab | 0:5868fc6c16b3 | 290 | t = adxlCtrl->ConvThermal(p->tm); |
APS_Lab | 0:5868fc6c16b3 | 291 | PC.printf("-->\033[11;10H%04.2f", t); |
APS_Lab | 0:5868fc6c16b3 | 292 | |
APS_Lab | 0:5868fc6c16b3 | 293 | PC.printf("\033[0m\033[36m"); |
APS_Lab | 0:5868fc6c16b3 | 294 | PC.printf("\033[12;3H"); |
APS_Lab | 0:5868fc6c16b3 | 295 | PC.printf("\033[K"); |
APS_Lab | 0:5868fc6c16b3 | 296 | p = max; |
APS_Lab | 0:5868fc6c16b3 | 297 | t = adxlCtrl->ConvThermal(p->tm); |
APS_Lab | 0:5868fc6c16b3 | 298 | PC.printf("max\033[12;10H%04.2f", t); |
APS_Lab | 0:5868fc6c16b3 | 299 | } |
APS_Lab | 0:5868fc6c16b3 | 300 | |
APS_Lab | 0:5868fc6c16b3 | 301 |