Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed LoRaWAN-lib SX1276Lib
app/main.cpp@13:3285ecb328a3, 2020-05-21 (annotated)
- Committer:
- amirchaudhary
- Date:
- Thu May 21 16:36:11 2020 +0000
- Revision:
- 13:3285ecb328a3
- Parent:
- 12:8d057a5bf72e
Analog values current readings
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mluis | 0:92bca02df485 | 1 | #include "mbed.h" |
| mluis | 0:92bca02df485 | 2 | #include "board.h" |
| mluis | 0:92bca02df485 | 3 | #include "SerialDisplay.h" |
| mluis | 0:92bca02df485 | 4 | |
| mluis | 1:352f608c3337 | 5 | |
| amirchaudhary | 13:3285ecb328a3 | 6 | AnalogIn Vbat1(PC_5); |
| amirchaudhary | 13:3285ecb328a3 | 7 | AnalogIn Vbat2(PA_4); |
| amirchaudhary | 12:8d057a5bf72e | 8 | AnalogIn Led1(PA_1); |
| amirchaudhary | 12:8d057a5bf72e | 9 | AnalogIn Led2(PC_0); |
| amirchaudhary | 11:9e35ddff7ed8 | 10 | AnalogIn RM(PC_2); |
| amirchaudhary | 11:9e35ddff7ed8 | 11 | AnalogIn Vce(PB_1); |
| amirchaudhary | 12:8d057a5bf72e | 12 | DigitalOut Relay(D6); |
| amirchaudhary | 12:8d057a5bf72e | 13 | AnalogIn Exit(PC_4); |
| amirchaudhary | 12:8d057a5bf72e | 14 | //AnalogIn Exit2(PC_5); |
| uss1994 | 10:9a4efdd07a77 | 15 | |
| mluis | 0:92bca02df485 | 16 | /** |
| mluis | 0:92bca02df485 | 17 | * Main application entry point. |
| mluis | 0:92bca02df485 | 18 | */ |
| amirchaudhary | 11:9e35ddff7ed8 | 19 | Serial pc(SERIAL_TX, SERIAL_RX,115200); |
| amirchaudhary | 11:9e35ddff7ed8 | 20 | int MY_SetSysClock_PLL_HSE(void) |
| mluis | 0:92bca02df485 | 21 | { |
| amirchaudhary | 11:9e35ddff7ed8 | 22 | RCC_ClkInitTypeDef RCC_ClkInitStruct; |
| amirchaudhary | 11:9e35ddff7ed8 | 23 | RCC_OscInitTypeDef RCC_OscInitStruct; |
| mluis | 7:3173f0508a98 | 24 | |
| amirchaudhary | 11:9e35ddff7ed8 | 25 | /* Enable HSE and activate PLL with HSE as source */ |
| amirchaudhary | 11:9e35ddff7ed8 | 26 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; |
| amirchaudhary | 11:9e35ddff7ed8 | 27 | RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* External 8 MHz xtal on OSC_IN/OSC_OUT */ |
| mluis | 7:3173f0508a98 | 28 | |
| amirchaudhary | 11:9e35ddff7ed8 | 29 | // PLLCLK = (8 MHz * 8)/2 = 32 MHz |
| amirchaudhary | 11:9e35ddff7ed8 | 30 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; |
| amirchaudhary | 11:9e35ddff7ed8 | 31 | RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; |
| amirchaudhary | 11:9e35ddff7ed8 | 32 | RCC_OscInitStruct.PLL.PLLMUL = RCC_PLLMUL_8; |
| amirchaudhary | 11:9e35ddff7ed8 | 33 | RCC_OscInitStruct.PLL.PLLDIV = RCC_PLLDIV_2; |
| amirchaudhary | 11:9e35ddff7ed8 | 34 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { |
| amirchaudhary | 11:9e35ddff7ed8 | 35 | return (-1); // FAIL |
| amirchaudhary | 11:9e35ddff7ed8 | 36 | } |
| mluis | 0:92bca02df485 | 37 | |
| amirchaudhary | 11:9e35ddff7ed8 | 38 | /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */ |
| amirchaudhary | 11:9e35ddff7ed8 | 39 | RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); |
| amirchaudhary | 11:9e35ddff7ed8 | 40 | RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 32 MHz |
| amirchaudhary | 11:9e35ddff7ed8 | 41 | RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 32 MHz |
| amirchaudhary | 11:9e35ddff7ed8 | 42 | RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; // 32 MHz |
| amirchaudhary | 11:9e35ddff7ed8 | 43 | RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // 32 MHz |
| amirchaudhary | 11:9e35ddff7ed8 | 44 | if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) { |
| amirchaudhary | 11:9e35ddff7ed8 | 45 | return (-2); // FAIL |
| amirchaudhary | 11:9e35ddff7ed8 | 46 | } |
| mluis | 3:9c6f7f082151 | 47 | |
| amirchaudhary | 11:9e35ddff7ed8 | 48 | /* Enable HSE and activate PLL with HSE as source */ |
| amirchaudhary | 11:9e35ddff7ed8 | 49 | RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_MSI; |
| amirchaudhary | 11:9e35ddff7ed8 | 50 | RCC_OscInitStruct.HSIState = RCC_HSI_OFF; |
| amirchaudhary | 11:9e35ddff7ed8 | 51 | RCC_OscInitStruct.MSIState = RCC_MSI_OFF; |
| amirchaudhary | 11:9e35ddff7ed8 | 52 | RCC_OscInitStruct.HSI48State = RCC_HSI48_OFF; |
| amirchaudhary | 11:9e35ddff7ed8 | 53 | RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; |
| amirchaudhary | 11:9e35ddff7ed8 | 54 | if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { |
| amirchaudhary | 11:9e35ddff7ed8 | 55 | return (-3); // FAIL |
| amirchaudhary | 11:9e35ddff7ed8 | 56 | } |
| amirchaudhary | 11:9e35ddff7ed8 | 57 | |
| amirchaudhary | 11:9e35ddff7ed8 | 58 | return 0; // OK |
| amirchaudhary | 11:9e35ddff7ed8 | 59 | } |
| mluis | 3:9c6f7f082151 | 60 | |
| amirchaudhary | 11:9e35ddff7ed8 | 61 | void my_patch(void) |
| amirchaudhary | 11:9e35ddff7ed8 | 62 | { |
| amirchaudhary | 11:9e35ddff7ed8 | 63 | int retVal; |
| amirchaudhary | 11:9e35ddff7ed8 | 64 | |
| amirchaudhary | 11:9e35ddff7ed8 | 65 | // Put device into default clock, i.e using MSI = 2MHz |
| amirchaudhary | 11:9e35ddff7ed8 | 66 | HAL_RCC_DeInit(); |
| amirchaudhary | 11:9e35ddff7ed8 | 67 | |
| amirchaudhary | 11:9e35ddff7ed8 | 68 | // Enable HSE clock |
| amirchaudhary | 11:9e35ddff7ed8 | 69 | retVal = MY_SetSysClock_PLL_HSE(); |
| amirchaudhary | 11:9e35ddff7ed8 | 70 | if(retVal< 0) |
| amirchaudhary | 11:9e35ddff7ed8 | 71 | { |
| amirchaudhary | 11:9e35ddff7ed8 | 72 | // fail |
| amirchaudhary | 11:9e35ddff7ed8 | 73 | //pc.printf("Failed to start HSE, ERR= %d\r\n", retVal); |
| amirchaudhary | 11:9e35ddff7ed8 | 74 | |
| amirchaudhary | 11:9e35ddff7ed8 | 75 | // indicate error |
| amirchaudhary | 11:9e35ddff7ed8 | 76 | while(1) |
| amirchaudhary | 11:9e35ddff7ed8 | 77 | { |
| mluis | 3:9c6f7f082151 | 78 | |
| amirchaudhary | 11:9e35ddff7ed8 | 79 | } |
| amirchaudhary | 11:9e35ddff7ed8 | 80 | } |
| amirchaudhary | 11:9e35ddff7ed8 | 81 | } |
| mluis | 5:1e9f6a365854 | 82 | |
| amirchaudhary | 11:9e35ddff7ed8 | 83 | int main() |
| amirchaudhary | 12:8d057a5bf72e | 84 | { |
| amirchaudhary | 11:9e35ddff7ed8 | 85 | |
| amirchaudhary | 11:9e35ddff7ed8 | 86 | pc.printf("mbed-os-rev: %d.%d.%d lib-rev: %d\r\n", \ |
| amirchaudhary | 11:9e35ddff7ed8 | 87 | MBED_MAJOR_VERSION, MBED_MINOR_VERSION,MBED_PATCH_VERSION,MBED_LIBRARY_VERSION); |
| amirchaudhary | 11:9e35ddff7ed8 | 88 | pc.printf("BUILD= %s, SysClock= %d, RCC= %0X\r\n", __TIME__, SystemCoreClock, RCC->CR); |
| amirchaudhary | 11:9e35ddff7ed8 | 89 | my_patch(); |
| amirchaudhary | 11:9e35ddff7ed8 | 90 | pc.printf("NEW SysClock= %d, NEW RCC= %0X\r\n", SystemCoreClock, RCC->CR); |
| amirchaudhary | 12:8d057a5bf72e | 91 | wait(1); |
| amirchaudhary | 11:9e35ddff7ed8 | 92 | |
| amirchaudhary | 11:9e35ddff7ed8 | 93 | printf("\n"); |
| amirchaudhary | 11:9e35ddff7ed8 | 94 | printf("\n"); |
| amirchaudhary | 12:8d057a5bf72e | 95 | int min=0,count=0; |
| amirchaudhary | 12:8d057a5bf72e | 96 | |
| amirchaudhary | 13:3285ecb328a3 | 97 | float meas_Vbat1,meas_Vbat2,meas_Cbat,meas_Led1,meas_Led2,meas_RM,meas_Vce,meas_Exit,meas_Exit2; |
| amirchaudhary | 13:3285ecb328a3 | 98 | float v_Vbat1,v_Vbat2,v_Cbat,v_Led1,v_Led2,v_RM,v_Vce,v_Exit,v_Exit2; |
| amirchaudhary | 11:9e35ddff7ed8 | 99 | // float meas_v; |
| amirchaudhary | 12:8d057a5bf72e | 100 | |
| amirchaudhary | 12:8d057a5bf72e | 101 | |
| amirchaudhary | 13:3285ecb328a3 | 102 | // RGB and Relay Test |
| amirchaudhary | 13:3285ecb328a3 | 103 | |
| amirchaudhary | 13:3285ecb328a3 | 104 | |
| amirchaudhary | 12:8d057a5bf72e | 105 | |
| amirchaudhary | 12:8d057a5bf72e | 106 | pc.printf("***Charging Mode***\n\n"); |
| amirchaudhary | 12:8d057a5bf72e | 107 | Relay= 0; // Start the test Relay =1 |
| amirchaudhary | 12:8d057a5bf72e | 108 | |
| amirchaudhary | 12:8d057a5bf72e | 109 | // printf("\tAnalogIn example\n"); |
| amirchaudhary | 12:8d057a5bf72e | 110 | printf("count"); |
| amirchaudhary | 13:3285ecb328a3 | 111 | printf("\tVbat1"); |
| amirchaudhary | 13:3285ecb328a3 | 112 | printf("\tVbat2"); |
| amirchaudhary | 13:3285ecb328a3 | 113 | printf("\tCbat"); |
| amirchaudhary | 12:8d057a5bf72e | 114 | printf("\tLED1"); |
| amirchaudhary | 12:8d057a5bf72e | 115 | printf("\tLED2"); |
| amirchaudhary | 12:8d057a5bf72e | 116 | printf("\tRM"); |
| amirchaudhary | 12:8d057a5bf72e | 117 | printf("\tVce"); |
| amirchaudhary | 13:3285ecb328a3 | 118 | // printf("\tExit"); |
| amirchaudhary | 12:8d057a5bf72e | 119 | // printf("\tExit2"); |
| amirchaudhary | 12:8d057a5bf72e | 120 | printf("\n"); |
| amirchaudhary | 12:8d057a5bf72e | 121 | |
| amirchaudhary | 12:8d057a5bf72e | 122 | |
| amirchaudhary | 12:8d057a5bf72e | 123 | for(int j=0;j<=300;j++){ |
| amirchaudhary | 13:3285ecb328a3 | 124 | |
| amirchaudhary | 13:3285ecb328a3 | 125 | meas_Vbat1 = Vbat1.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 13:3285ecb328a3 | 126 | meas_Vbat2 = Vbat2.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 13:3285ecb328a3 | 127 | // meas_Cbat = meas_Vbat1 - meas_Vbat2; |
| amirchaudhary | 12:8d057a5bf72e | 128 | meas_Led1 = Led1.read() - Vce.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 12:8d057a5bf72e | 129 | meas_Led2 = Led2.read() - Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 130 | meas_RM = RM.read() - Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 131 | meas_Vce = Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 132 | meas_Exit = Exit.read(); |
| amirchaudhary | 12:8d057a5bf72e | 133 | // meas_Exit2 = Exit2.read(); |
| amirchaudhary | 12:8d057a5bf72e | 134 | |
| amirchaudhary | 12:8d057a5bf72e | 135 | // Display readings |
| amirchaudhary | 13:3285ecb328a3 | 136 | v_Vbat1 = meas_Vbat1 * 3.300 * 2; |
| amirchaudhary | 13:3285ecb328a3 | 137 | v_Vbat2 = meas_Vbat2 * 3.300 * 2; |
| amirchaudhary | 13:3285ecb328a3 | 138 | v_Cbat = v_Vbat1 - v_Vbat2; |
| amirchaudhary | 12:8d057a5bf72e | 139 | v_Led1 = (meas_Led1 * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 140 | v_Led2 = (meas_Led2 * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 141 | v_RM = (meas_RM * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 142 | v_Vce = meas_Vce * 3.300; |
| amirchaudhary | 13:3285ecb328a3 | 143 | // v_Exit = meas_Exit * 3.300/24; |
| amirchaudhary | 12:8d057a5bf72e | 144 | // v_Exit2 = meas_Exit2 * 3.300/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 145 | |
| amirchaudhary | 12:8d057a5bf72e | 146 | printf("%d\t", count); |
| amirchaudhary | 13:3285ecb328a3 | 147 | |
| amirchaudhary | 13:3285ecb328a3 | 148 | printf("%.03f\t", v_Vbat1); |
| amirchaudhary | 13:3285ecb328a3 | 149 | printf("%.03f\t", v_Vbat2); |
| amirchaudhary | 13:3285ecb328a3 | 150 | printf("%.03f\t", v_Cbat); |
| amirchaudhary | 12:8d057a5bf72e | 151 | printf("%.03f\t", v_Led1); |
| amirchaudhary | 12:8d057a5bf72e | 152 | printf("%.03f\t", v_Led2); |
| amirchaudhary | 12:8d057a5bf72e | 153 | printf("%.03f\t", v_RM); |
| amirchaudhary | 12:8d057a5bf72e | 154 | printf("%.03f\t", v_Vce); |
| amirchaudhary | 13:3285ecb328a3 | 155 | // printf("%.03f\t",v_Exit); |
| amirchaudhary | 13:3285ecb328a3 | 156 | |
| amirchaudhary | 12:8d057a5bf72e | 157 | // printf("%.03f\t",v_Exit2); |
| amirchaudhary | 12:8d057a5bf72e | 158 | printf("\n"); |
| amirchaudhary | 13:3285ecb328a3 | 159 | |
| amirchaudhary | 12:8d057a5bf72e | 160 | count++; |
| amirchaudhary | 13:3285ecb328a3 | 161 | wait(0.4); // 10 second |
| amirchaudhary | 12:8d057a5bf72e | 162 | |
| amirchaudhary | 12:8d057a5bf72e | 163 | } |
| amirchaudhary | 12:8d057a5bf72e | 164 | count = 0; |
| amirchaudhary | 12:8d057a5bf72e | 165 | |
| amirchaudhary | 12:8d057a5bf72e | 166 | |
| amirchaudhary | 12:8d057a5bf72e | 167 | pc.printf("***Discharging Mode 1***\n\n"); |
| amirchaudhary | 13:3285ecb328a3 | 168 | Relay= 1; // Start the test Relay =1 |
| amirchaudhary | 13:3285ecb328a3 | 169 | // printf("\tAnalogIn example\n"); |
| amirchaudhary | 12:8d057a5bf72e | 170 | printf("count"); |
| amirchaudhary | 13:3285ecb328a3 | 171 | printf("\tVbat1"); |
| amirchaudhary | 13:3285ecb328a3 | 172 | printf("\tVbat2"); |
| amirchaudhary | 13:3285ecb328a3 | 173 | printf("\tCbat"); |
| amirchaudhary | 12:8d057a5bf72e | 174 | printf("\tLED1"); |
| amirchaudhary | 12:8d057a5bf72e | 175 | printf("\tLED2"); |
| amirchaudhary | 12:8d057a5bf72e | 176 | printf("\tRM"); |
| amirchaudhary | 12:8d057a5bf72e | 177 | printf("\tVce"); |
| amirchaudhary | 13:3285ecb328a3 | 178 | // printf("\tExit"); |
| amirchaudhary | 13:3285ecb328a3 | 179 | // printf("\tExit2"); |
| amirchaudhary | 12:8d057a5bf72e | 180 | printf("\n"); |
| amirchaudhary | 12:8d057a5bf72e | 181 | |
| amirchaudhary | 12:8d057a5bf72e | 182 | |
| amirchaudhary | 13:3285ecb328a3 | 183 | for(int j=0;j<=100;j++){ |
| amirchaudhary | 13:3285ecb328a3 | 184 | |
| amirchaudhary | 13:3285ecb328a3 | 185 | meas_Vbat1 = Vbat1.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 13:3285ecb328a3 | 186 | meas_Vbat2 = Vbat2.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 13:3285ecb328a3 | 187 | // meas_Cbat = meas_Vbat1 - meas_Vbat2; |
| amirchaudhary | 12:8d057a5bf72e | 188 | meas_Led1 = Led1.read() - Vce.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 12:8d057a5bf72e | 189 | meas_Led2 = Led2.read() - Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 190 | meas_RM = RM.read() - Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 191 | meas_Vce = Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 192 | meas_Exit = Exit.read(); |
| amirchaudhary | 12:8d057a5bf72e | 193 | // meas_Exit2 = Exit2.read(); |
| amirchaudhary | 12:8d057a5bf72e | 194 | |
| amirchaudhary | 13:3285ecb328a3 | 195 | // Display readings |
| amirchaudhary | 13:3285ecb328a3 | 196 | v_Vbat1 = meas_Vbat1 * 3.300 * 2; |
| amirchaudhary | 13:3285ecb328a3 | 197 | v_Vbat2 = meas_Vbat2 * 3.300 * 2; |
| amirchaudhary | 13:3285ecb328a3 | 198 | v_Cbat = v_Vbat1 - v_Vbat2; |
| amirchaudhary | 12:8d057a5bf72e | 199 | v_Led1 = (meas_Led1 * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 200 | v_Led2 = (meas_Led2 * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 201 | v_RM = (meas_RM * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 202 | v_Vce = meas_Vce * 3.300; |
| amirchaudhary | 13:3285ecb328a3 | 203 | // v_Exit = meas_Exit * 3.300/24; |
| amirchaudhary | 12:8d057a5bf72e | 204 | // v_Exit2 = meas_Exit2 * 3.300/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 205 | |
| amirchaudhary | 12:8d057a5bf72e | 206 | printf("%d\t", count); |
| amirchaudhary | 13:3285ecb328a3 | 207 | |
| amirchaudhary | 13:3285ecb328a3 | 208 | printf("%.03f\t", v_Vbat1); |
| amirchaudhary | 13:3285ecb328a3 | 209 | printf("%.03f\t", v_Vbat2); |
| amirchaudhary | 13:3285ecb328a3 | 210 | printf("%.03f\t", v_Cbat); |
| amirchaudhary | 12:8d057a5bf72e | 211 | printf("%.03f\t", v_Led1); |
| amirchaudhary | 12:8d057a5bf72e | 212 | printf("%.03f\t", v_Led2); |
| amirchaudhary | 12:8d057a5bf72e | 213 | printf("%.03f\t", v_RM); |
| amirchaudhary | 12:8d057a5bf72e | 214 | printf("%.03f\t", v_Vce); |
| amirchaudhary | 13:3285ecb328a3 | 215 | // printf("%.03f\t",v_Exit); |
| amirchaudhary | 13:3285ecb328a3 | 216 | |
| amirchaudhary | 12:8d057a5bf72e | 217 | // printf("%.03f\t",v_Exit2); |
| amirchaudhary | 12:8d057a5bf72e | 218 | printf("\n"); |
| amirchaudhary | 13:3285ecb328a3 | 219 | |
| amirchaudhary | 12:8d057a5bf72e | 220 | |
| amirchaudhary | 12:8d057a5bf72e | 221 | count++; |
| amirchaudhary | 13:3285ecb328a3 | 222 | wait(0.5); // 10 second |
| amirchaudhary | 12:8d057a5bf72e | 223 | } |
| amirchaudhary | 12:8d057a5bf72e | 224 | |
| amirchaudhary | 12:8d057a5bf72e | 225 | |
| amirchaudhary | 12:8d057a5bf72e | 226 | |
| amirchaudhary | 12:8d057a5bf72e | 227 | |
| amirchaudhary | 12:8d057a5bf72e | 228 | printf("\n"); |
| amirchaudhary | 12:8d057a5bf72e | 229 | printf("\n"); |
| amirchaudhary | 12:8d057a5bf72e | 230 | pc.printf("***Discharging Mode 2***\n\n"); |
| amirchaudhary | 13:3285ecb328a3 | 231 | |
| amirchaudhary | 11:9e35ddff7ed8 | 232 | // printf("\tAnalogIn example\n"); |
| amirchaudhary | 13:3285ecb328a3 | 233 | // printf("\tAnalogIn example\n"); |
| amirchaudhary | 13:3285ecb328a3 | 234 | printf("count"); |
| amirchaudhary | 13:3285ecb328a3 | 235 | printf("\tVbat1"); |
| amirchaudhary | 13:3285ecb328a3 | 236 | printf("\tVbat2"); |
| amirchaudhary | 13:3285ecb328a3 | 237 | printf("\tCbat"); |
| amirchaudhary | 11:9e35ddff7ed8 | 238 | printf("\tLED1"); |
| amirchaudhary | 11:9e35ddff7ed8 | 239 | printf("\tLED2"); |
| amirchaudhary | 11:9e35ddff7ed8 | 240 | printf("\tRM"); |
| amirchaudhary | 11:9e35ddff7ed8 | 241 | printf("\tVce"); |
| amirchaudhary | 13:3285ecb328a3 | 242 | // printf("\tExit"); |
| amirchaudhary | 13:3285ecb328a3 | 243 | // printf("\tExit2"); |
| amirchaudhary | 11:9e35ddff7ed8 | 244 | printf("\n"); |
| amirchaudhary | 11:9e35ddff7ed8 | 245 | |
| amirchaudhary | 13:3285ecb328a3 | 246 | |
| amirchaudhary | 13:3285ecb328a3 | 247 | |
| amirchaudhary | 13:3285ecb328a3 | 248 | |
| amirchaudhary | 13:3285ecb328a3 | 249 | |
| amirchaudhary | 11:9e35ddff7ed8 | 250 | while(1) { |
| amirchaudhary | 13:3285ecb328a3 | 251 | Relay= 0; // Start the test Relay =1 |
| amirchaudhary | 13:3285ecb328a3 | 252 | |
| amirchaudhary | 12:8d057a5bf72e | 253 | |
| amirchaudhary | 13:3285ecb328a3 | 254 | for(int j=0;j<=100000;j++){ |
| amirchaudhary | 13:3285ecb328a3 | 255 | |
| amirchaudhary | 13:3285ecb328a3 | 256 | meas_Vbat1 = Vbat1.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 13:3285ecb328a3 | 257 | meas_Vbat2 = Vbat2.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 13:3285ecb328a3 | 258 | // meas_Cbat = meas_Vbat1 - meas_Vbat2; |
| amirchaudhary | 12:8d057a5bf72e | 259 | meas_Led1 = Led1.read() - Vce.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| amirchaudhary | 12:8d057a5bf72e | 260 | meas_Led2 = Led2.read() - Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 261 | meas_RM = RM.read() - Vce.read(); |
| amirchaudhary | 11:9e35ddff7ed8 | 262 | meas_Vce = Vce.read(); |
| amirchaudhary | 12:8d057a5bf72e | 263 | meas_Exit = Exit.read(); |
| amirchaudhary | 13:3285ecb328a3 | 264 | // meas_Exit2 = Exit2.read(); |
| amirchaudhary | 12:8d057a5bf72e | 265 | |
| amirchaudhary | 13:3285ecb328a3 | 266 | // Display readings |
| amirchaudhary | 13:3285ecb328a3 | 267 | v_Vbat1 = meas_Vbat1 * 3.300 * 2; |
| amirchaudhary | 13:3285ecb328a3 | 268 | v_Vbat2 = meas_Vbat2 * 3.300 * 2; |
| amirchaudhary | 13:3285ecb328a3 | 269 | v_Cbat = v_Vbat1 - v_Vbat2; |
| amirchaudhary | 12:8d057a5bf72e | 270 | v_Led1 = (meas_Led1 * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 271 | v_Led2 = (meas_Led2 * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 272 | v_RM = (meas_RM * 3.300)/2.2; |
| amirchaudhary | 12:8d057a5bf72e | 273 | v_Vce = meas_Vce * 3.300; |
| amirchaudhary | 13:3285ecb328a3 | 274 | // v_Exit = meas_Exit * 3.300/24; |
| amirchaudhary | 12:8d057a5bf72e | 275 | // v_Exit2 = meas_Exit2 * 3.300/2.2; |
| amirchaudhary | 11:9e35ddff7ed8 | 276 | |
| amirchaudhary | 11:9e35ddff7ed8 | 277 | printf("%d\t", min); |
| amirchaudhary | 13:3285ecb328a3 | 278 | |
| amirchaudhary | 13:3285ecb328a3 | 279 | printf("%.03f\t", v_Vbat1); |
| amirchaudhary | 13:3285ecb328a3 | 280 | printf("%.03f\t", v_Vbat2); |
| amirchaudhary | 13:3285ecb328a3 | 281 | printf("%.03f\t", v_Cbat); |
| amirchaudhary | 12:8d057a5bf72e | 282 | printf("%.03f\t", v_Led1); |
| amirchaudhary | 12:8d057a5bf72e | 283 | printf("%.03f\t", v_Led2); |
| amirchaudhary | 12:8d057a5bf72e | 284 | printf("%.03f\t", v_RM); |
| amirchaudhary | 12:8d057a5bf72e | 285 | printf("%.03f\t", v_Vce); |
| amirchaudhary | 13:3285ecb328a3 | 286 | // printf("%.03f\t",v_Exit); |
| amirchaudhary | 13:3285ecb328a3 | 287 | |
| amirchaudhary | 12:8d057a5bf72e | 288 | // printf("%.03f\t",v_Exit2); |
| amirchaudhary | 12:8d057a5bf72e | 289 | printf("\n"); |
| amirchaudhary | 13:3285ecb328a3 | 290 | |
| amirchaudhary | 13:3285ecb328a3 | 291 | |
| amirchaudhary | 13:3285ecb328a3 | 292 | wait(1.0); // 10 second |
| amirchaudhary | 11:9e35ddff7ed8 | 293 | min++; |
| mluis | 0:92bca02df485 | 294 | } |
| amirchaudhary | 12:8d057a5bf72e | 295 | |
| amirchaudhary | 13:3285ecb328a3 | 296 | }} |