PCB_Analog_Values

Dependencies:   mbed LoRaWAN-lib SX1276Lib

Committer:
amirchaudhary
Date:
Thu Jan 30 13:51:38 2020 +0000
Revision:
12:8d057a5bf72e
Parent:
11:9e35ddff7ed8
Analog Values Reading (Emerg Lights)

Who changed what in which revision?

UserRevisionLine numberNew 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 12:8d057a5bf72e 6 AnalogIn Vbat(PA_4);
amirchaudhary 12:8d057a5bf72e 7 AnalogIn Led1(PA_1);
amirchaudhary 12:8d057a5bf72e 8 AnalogIn Led2(PC_0);
amirchaudhary 11:9e35ddff7ed8 9 AnalogIn RM(PC_2);
amirchaudhary 11:9e35ddff7ed8 10 AnalogIn Vce(PB_1);
amirchaudhary 12:8d057a5bf72e 11 DigitalOut Relay(D6);
amirchaudhary 12:8d057a5bf72e 12 AnalogIn Exit(PC_4);
amirchaudhary 12:8d057a5bf72e 13 //AnalogIn Exit2(PC_5);
uss1994 10:9a4efdd07a77 14
mluis 0:92bca02df485 15 /**
mluis 0:92bca02df485 16 * Main application entry point.
mluis 0:92bca02df485 17 */
amirchaudhary 11:9e35ddff7ed8 18 Serial pc(SERIAL_TX, SERIAL_RX,115200);
amirchaudhary 11:9e35ddff7ed8 19 int MY_SetSysClock_PLL_HSE(void)
mluis 0:92bca02df485 20 {
amirchaudhary 11:9e35ddff7ed8 21 RCC_ClkInitTypeDef RCC_ClkInitStruct;
amirchaudhary 11:9e35ddff7ed8 22 RCC_OscInitTypeDef RCC_OscInitStruct;
mluis 7:3173f0508a98 23
amirchaudhary 11:9e35ddff7ed8 24 /* Enable HSE and activate PLL with HSE as source */
amirchaudhary 11:9e35ddff7ed8 25 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
amirchaudhary 11:9e35ddff7ed8 26 RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* External 8 MHz xtal on OSC_IN/OSC_OUT */
mluis 7:3173f0508a98 27
amirchaudhary 11:9e35ddff7ed8 28 // PLLCLK = (8 MHz * 8)/2 = 32 MHz
amirchaudhary 11:9e35ddff7ed8 29 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
amirchaudhary 11:9e35ddff7ed8 30 RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
amirchaudhary 11:9e35ddff7ed8 31 RCC_OscInitStruct.PLL.PLLMUL = RCC_PLLMUL_8;
amirchaudhary 11:9e35ddff7ed8 32 RCC_OscInitStruct.PLL.PLLDIV = RCC_PLLDIV_2;
amirchaudhary 11:9e35ddff7ed8 33 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
amirchaudhary 11:9e35ddff7ed8 34 return (-1); // FAIL
amirchaudhary 11:9e35ddff7ed8 35 }
mluis 0:92bca02df485 36
amirchaudhary 11:9e35ddff7ed8 37 /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
amirchaudhary 11:9e35ddff7ed8 38 RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
amirchaudhary 11:9e35ddff7ed8 39 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; // 32 MHz
amirchaudhary 11:9e35ddff7ed8 40 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // 32 MHz
amirchaudhary 11:9e35ddff7ed8 41 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; // 32 MHz
amirchaudhary 11:9e35ddff7ed8 42 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // 32 MHz
amirchaudhary 11:9e35ddff7ed8 43 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
amirchaudhary 11:9e35ddff7ed8 44 return (-2); // FAIL
amirchaudhary 11:9e35ddff7ed8 45 }
mluis 3:9c6f7f082151 46
amirchaudhary 11:9e35ddff7ed8 47 /* Enable HSE and activate PLL with HSE as source */
amirchaudhary 11:9e35ddff7ed8 48 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_MSI;
amirchaudhary 11:9e35ddff7ed8 49 RCC_OscInitStruct.HSIState = RCC_HSI_OFF;
amirchaudhary 11:9e35ddff7ed8 50 RCC_OscInitStruct.MSIState = RCC_MSI_OFF;
amirchaudhary 11:9e35ddff7ed8 51 RCC_OscInitStruct.HSI48State = RCC_HSI48_OFF;
amirchaudhary 11:9e35ddff7ed8 52 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
amirchaudhary 11:9e35ddff7ed8 53 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
amirchaudhary 11:9e35ddff7ed8 54 return (-3); // FAIL
amirchaudhary 11:9e35ddff7ed8 55 }
amirchaudhary 11:9e35ddff7ed8 56
amirchaudhary 11:9e35ddff7ed8 57 return 0; // OK
amirchaudhary 11:9e35ddff7ed8 58 }
mluis 3:9c6f7f082151 59
amirchaudhary 11:9e35ddff7ed8 60 void my_patch(void)
amirchaudhary 11:9e35ddff7ed8 61 {
amirchaudhary 11:9e35ddff7ed8 62 int retVal;
amirchaudhary 11:9e35ddff7ed8 63
amirchaudhary 11:9e35ddff7ed8 64 // Put device into default clock, i.e using MSI = 2MHz
amirchaudhary 11:9e35ddff7ed8 65 HAL_RCC_DeInit();
amirchaudhary 11:9e35ddff7ed8 66
amirchaudhary 11:9e35ddff7ed8 67 // Enable HSE clock
amirchaudhary 11:9e35ddff7ed8 68 retVal = MY_SetSysClock_PLL_HSE();
amirchaudhary 11:9e35ddff7ed8 69 if(retVal< 0)
amirchaudhary 11:9e35ddff7ed8 70 {
amirchaudhary 11:9e35ddff7ed8 71 // fail
amirchaudhary 11:9e35ddff7ed8 72 //pc.printf("Failed to start HSE, ERR= %d\r\n", retVal);
amirchaudhary 11:9e35ddff7ed8 73
amirchaudhary 11:9e35ddff7ed8 74 // indicate error
amirchaudhary 11:9e35ddff7ed8 75 while(1)
amirchaudhary 11:9e35ddff7ed8 76 {
mluis 3:9c6f7f082151 77
amirchaudhary 11:9e35ddff7ed8 78 }
amirchaudhary 11:9e35ddff7ed8 79 }
amirchaudhary 11:9e35ddff7ed8 80 }
mluis 5:1e9f6a365854 81
amirchaudhary 11:9e35ddff7ed8 82 int main()
amirchaudhary 12:8d057a5bf72e 83 {
amirchaudhary 11:9e35ddff7ed8 84
amirchaudhary 11:9e35ddff7ed8 85 pc.printf("mbed-os-rev: %d.%d.%d lib-rev: %d\r\n", \
amirchaudhary 11:9e35ddff7ed8 86 MBED_MAJOR_VERSION, MBED_MINOR_VERSION,MBED_PATCH_VERSION,MBED_LIBRARY_VERSION);
amirchaudhary 11:9e35ddff7ed8 87 pc.printf("BUILD= %s, SysClock= %d, RCC= %0X\r\n", __TIME__, SystemCoreClock, RCC->CR);
amirchaudhary 11:9e35ddff7ed8 88 my_patch();
amirchaudhary 11:9e35ddff7ed8 89 pc.printf("NEW SysClock= %d, NEW RCC= %0X\r\n", SystemCoreClock, RCC->CR);
amirchaudhary 12:8d057a5bf72e 90 wait(1);
amirchaudhary 11:9e35ddff7ed8 91
amirchaudhary 11:9e35ddff7ed8 92 printf("\n");
amirchaudhary 11:9e35ddff7ed8 93 printf("\n");
amirchaudhary 12:8d057a5bf72e 94 int min=0,count=0;
amirchaudhary 12:8d057a5bf72e 95
amirchaudhary 12:8d057a5bf72e 96 float meas_Vbat,meas_Led1,meas_Led2,meas_RM,meas_Vce,meas_Exit,meas_Exit2;
amirchaudhary 12:8d057a5bf72e 97 float v_Vbat,v_Led1,v_Led2,v_RM,v_Vce,v_Exit,v_Exit2;
amirchaudhary 11:9e35ddff7ed8 98 // float meas_v;
amirchaudhary 12:8d057a5bf72e 99
amirchaudhary 12:8d057a5bf72e 100
amirchaudhary 12:8d057a5bf72e 101
amirchaudhary 12:8d057a5bf72e 102 pc.printf("***Charging Mode***\n\n");
amirchaudhary 12:8d057a5bf72e 103 Relay= 0; // Start the test Relay =1
amirchaudhary 12:8d057a5bf72e 104
amirchaudhary 12:8d057a5bf72e 105 // printf("\tAnalogIn example\n");
amirchaudhary 12:8d057a5bf72e 106 printf("count");
amirchaudhary 12:8d057a5bf72e 107 printf("\tVbat");
amirchaudhary 12:8d057a5bf72e 108 printf("\tLED1");
amirchaudhary 12:8d057a5bf72e 109 printf("\tLED2");
amirchaudhary 12:8d057a5bf72e 110 printf("\tRM");
amirchaudhary 12:8d057a5bf72e 111 printf("\tVce");
amirchaudhary 12:8d057a5bf72e 112 printf("\tExit");
amirchaudhary 12:8d057a5bf72e 113 // printf("\tExit2");
amirchaudhary 12:8d057a5bf72e 114 printf("\n");
amirchaudhary 12:8d057a5bf72e 115
amirchaudhary 12:8d057a5bf72e 116
amirchaudhary 12:8d057a5bf72e 117 for(int j=0;j<=300;j++){
amirchaudhary 12:8d057a5bf72e 118 meas_Vbat = Vbat.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
amirchaudhary 12:8d057a5bf72e 119 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 120 meas_Led2 = Led2.read() - Vce.read();
amirchaudhary 12:8d057a5bf72e 121 meas_RM = RM.read() - Vce.read();
amirchaudhary 12:8d057a5bf72e 122 meas_Vce = Vce.read();
amirchaudhary 12:8d057a5bf72e 123 meas_Exit = Exit.read();
amirchaudhary 12:8d057a5bf72e 124 // meas_Exit2 = Exit2.read();
amirchaudhary 12:8d057a5bf72e 125
amirchaudhary 12:8d057a5bf72e 126
amirchaudhary 12:8d057a5bf72e 127
amirchaudhary 12:8d057a5bf72e 128 // Display readings
amirchaudhary 12:8d057a5bf72e 129 v_Vbat = meas_Vbat * 3300 *2;
amirchaudhary 12:8d057a5bf72e 130 v_Led1 = (meas_Led1 * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 131 v_Led2 = (meas_Led2 * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 132 v_RM = (meas_RM * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 133 v_Vce = meas_Vce * 3.300;
amirchaudhary 12:8d057a5bf72e 134 v_Exit = meas_Exit * 3.300/24;
amirchaudhary 12:8d057a5bf72e 135 // v_Exit2 = meas_Exit2 * 3.300/2.2;
amirchaudhary 12:8d057a5bf72e 136
amirchaudhary 12:8d057a5bf72e 137
amirchaudhary 12:8d057a5bf72e 138 printf("%d\t", count);
amirchaudhary 12:8d057a5bf72e 139 printf("%.0f\t", v_Vbat);
amirchaudhary 12:8d057a5bf72e 140 printf("%.03f\t", v_Led1);
amirchaudhary 12:8d057a5bf72e 141 printf("%.03f\t", v_Led2);
amirchaudhary 12:8d057a5bf72e 142 printf("%.03f\t", v_RM);
amirchaudhary 12:8d057a5bf72e 143 printf("%.03f\t", v_Vce);
amirchaudhary 12:8d057a5bf72e 144 printf("%.03f\t",v_Exit);
amirchaudhary 12:8d057a5bf72e 145 // printf("%.03f\t",v_Exit2);
amirchaudhary 12:8d057a5bf72e 146 printf("\n");
amirchaudhary 12:8d057a5bf72e 147
amirchaudhary 12:8d057a5bf72e 148 count++;
amirchaudhary 12:8d057a5bf72e 149 wait(0.1); // 10 second
amirchaudhary 12:8d057a5bf72e 150
amirchaudhary 12:8d057a5bf72e 151 }
amirchaudhary 12:8d057a5bf72e 152 count = 0;
amirchaudhary 12:8d057a5bf72e 153
amirchaudhary 12:8d057a5bf72e 154
amirchaudhary 12:8d057a5bf72e 155 pc.printf("***Discharging Mode 1***\n\n");
amirchaudhary 12:8d057a5bf72e 156 Relay= 0; // Start the test Relay =1
amirchaudhary 12:8d057a5bf72e 157
amirchaudhary 12:8d057a5bf72e 158 // printf("\tAnalogIn example\n");
amirchaudhary 12:8d057a5bf72e 159 printf("count");
amirchaudhary 12:8d057a5bf72e 160 printf("\tVbat");
amirchaudhary 12:8d057a5bf72e 161 printf("\tLED1");
amirchaudhary 12:8d057a5bf72e 162 printf("\tLED2");
amirchaudhary 12:8d057a5bf72e 163 printf("\tRM");
amirchaudhary 12:8d057a5bf72e 164 printf("\tVce");
amirchaudhary 12:8d057a5bf72e 165 printf("\tExit");
amirchaudhary 12:8d057a5bf72e 166 // printf("\tExit2");
amirchaudhary 12:8d057a5bf72e 167 printf("\n");
amirchaudhary 12:8d057a5bf72e 168
amirchaudhary 12:8d057a5bf72e 169
amirchaudhary 12:8d057a5bf72e 170 for(int j=0;j<=300;j++){
amirchaudhary 12:8d057a5bf72e 171 meas_Vbat = Vbat.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
amirchaudhary 12:8d057a5bf72e 172 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 173 meas_Led2 = Led2.read() - Vce.read();
amirchaudhary 12:8d057a5bf72e 174 meas_RM = RM.read() - Vce.read();
amirchaudhary 12:8d057a5bf72e 175 meas_Vce = Vce.read();
amirchaudhary 12:8d057a5bf72e 176 meas_Exit = Exit.read();
amirchaudhary 12:8d057a5bf72e 177 // meas_Exit2 = Exit2.read();
amirchaudhary 12:8d057a5bf72e 178
amirchaudhary 12:8d057a5bf72e 179
amirchaudhary 12:8d057a5bf72e 180
amirchaudhary 12:8d057a5bf72e 181 // Display readings
amirchaudhary 12:8d057a5bf72e 182 v_Vbat = meas_Vbat * 3300 *2;
amirchaudhary 12:8d057a5bf72e 183 v_Led1 = (meas_Led1 * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 184 v_Led2 = (meas_Led2 * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 185 v_RM = (meas_RM * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 186 v_Vce = meas_Vce * 3.300;
amirchaudhary 12:8d057a5bf72e 187 v_Exit = meas_Exit * 3.300/24;
amirchaudhary 12:8d057a5bf72e 188 // v_Exit2 = meas_Exit2 * 3.300/2.2;
amirchaudhary 12:8d057a5bf72e 189
amirchaudhary 12:8d057a5bf72e 190
amirchaudhary 12:8d057a5bf72e 191 printf("%d\t", count);
amirchaudhary 12:8d057a5bf72e 192 printf("%.0f\t", v_Vbat);
amirchaudhary 12:8d057a5bf72e 193 printf("%.03f\t", v_Led1);
amirchaudhary 12:8d057a5bf72e 194 printf("%.03f\t", v_Led2);
amirchaudhary 12:8d057a5bf72e 195 printf("%.03f\t", v_RM);
amirchaudhary 12:8d057a5bf72e 196 printf("%.03f\t", v_Vce);
amirchaudhary 12:8d057a5bf72e 197 printf("%.03f\t",v_Exit);
amirchaudhary 12:8d057a5bf72e 198 // printf("%.03f\t",v_Exit2);
amirchaudhary 12:8d057a5bf72e 199 printf("\n");
amirchaudhary 12:8d057a5bf72e 200
amirchaudhary 12:8d057a5bf72e 201 count++;
amirchaudhary 12:8d057a5bf72e 202 wait(0.1); // 10 second
amirchaudhary 12:8d057a5bf72e 203 }
amirchaudhary 12:8d057a5bf72e 204
amirchaudhary 12:8d057a5bf72e 205
amirchaudhary 12:8d057a5bf72e 206
amirchaudhary 12:8d057a5bf72e 207
amirchaudhary 12:8d057a5bf72e 208 printf("\n");
amirchaudhary 12:8d057a5bf72e 209 printf("\n");
amirchaudhary 12:8d057a5bf72e 210 pc.printf("***Discharging Mode 2***\n\n");
amirchaudhary 11:9e35ddff7ed8 211 // printf("\tAnalogIn example\n");
amirchaudhary 11:9e35ddff7ed8 212 printf("min");
amirchaudhary 11:9e35ddff7ed8 213 printf("\tVbat");
amirchaudhary 11:9e35ddff7ed8 214 printf("\tLED1");
amirchaudhary 11:9e35ddff7ed8 215 printf("\tLED2");
amirchaudhary 11:9e35ddff7ed8 216 printf("\tRM");
amirchaudhary 11:9e35ddff7ed8 217 printf("\tVce");
amirchaudhary 12:8d057a5bf72e 218 printf("\tExit");
amirchaudhary 12:8d057a5bf72e 219 // printf("\tExit2");
amirchaudhary 11:9e35ddff7ed8 220 printf("\n");
amirchaudhary 11:9e35ddff7ed8 221
amirchaudhary 11:9e35ddff7ed8 222 while(1) {
amirchaudhary 12:8d057a5bf72e 223 Relay= 0; // Start the test Relay =1
amirchaudhary 12:8d057a5bf72e 224
amirchaudhary 11:9e35ddff7ed8 225 meas_Vbat = Vbat.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
amirchaudhary 12:8d057a5bf72e 226 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 227 meas_Led2 = Led2.read() - Vce.read();
amirchaudhary 12:8d057a5bf72e 228 meas_RM = RM.read() - Vce.read();
amirchaudhary 11:9e35ddff7ed8 229 meas_Vce = Vce.read();
amirchaudhary 12:8d057a5bf72e 230 meas_Exit = Exit.read();
amirchaudhary 12:8d057a5bf72e 231 // meas_Exit2 = Exit2.read();
amirchaudhary 12:8d057a5bf72e 232
amirchaudhary 12:8d057a5bf72e 233
amirchaudhary 12:8d057a5bf72e 234 // Display readings
amirchaudhary 12:8d057a5bf72e 235 v_Vbat = meas_Vbat * 3300 *2;
amirchaudhary 12:8d057a5bf72e 236 v_Led1 = (meas_Led1 * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 237 v_Led2 = (meas_Led2 * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 238 v_RM = (meas_RM * 3.300)/2.2;
amirchaudhary 12:8d057a5bf72e 239 v_Vce = meas_Vce * 3.300;
amirchaudhary 12:8d057a5bf72e 240 v_Exit = meas_Exit * 3.300/24;
amirchaudhary 12:8d057a5bf72e 241 // v_Exit2 = meas_Exit2 * 3.300/2.2;
amirchaudhary 11:9e35ddff7ed8 242
amirchaudhary 11:9e35ddff7ed8 243
amirchaudhary 11:9e35ddff7ed8 244 printf("%d\t", min);
amirchaudhary 11:9e35ddff7ed8 245 printf("%.0f\t", v_Vbat);
amirchaudhary 12:8d057a5bf72e 246 printf("%.03f\t", v_Led1);
amirchaudhary 12:8d057a5bf72e 247 printf("%.03f\t", v_Led2);
amirchaudhary 12:8d057a5bf72e 248 printf("%.03f\t", v_RM);
amirchaudhary 12:8d057a5bf72e 249 printf("%.03f\t", v_Vce);
amirchaudhary 12:8d057a5bf72e 250 printf("%.03f\t",v_Exit);
amirchaudhary 12:8d057a5bf72e 251 // printf("%.03f\t",v_Exit2);
amirchaudhary 12:8d057a5bf72e 252 printf("\n");
amirchaudhary 11:9e35ddff7ed8 253
amirchaudhary 12:8d057a5bf72e 254
amirchaudhary 12:8d057a5bf72e 255 wait(5.0); // 10 second
amirchaudhary 11:9e35ddff7ed8 256 min++;
mluis 0:92bca02df485 257 }
amirchaudhary 12:8d057a5bf72e 258
mluis 0:92bca02df485 259 }