diff --git a/driver/uart.c b/driver/uart.c index 051c3fa..c798880 100644 --- a/driver/uart.c +++ b/driver/uart.c @@ -106,6 +106,17 @@ void MyUART_InitGPIO(MyUART_Struct_Typedef * UARTStructPtr) MyGPIO_Init(&txd); } +int MyUART_SendArray(MyUART_Struct_Typedef *UART, uint8_t * data, int dataLength) +{ + int i; + for(i=0; iUART->DR = data[i]; + while (!(UART->UART->SR & USART_SR_TXE)); + } + return 0; +} + void MyUART_Send(MyUART_Struct_Typedef *UART, uint8_t data) { UART->UART->DR = data; diff --git a/driver/uart.h b/driver/uart.h index 262a4c5..d27238e 100644 --- a/driver/uart.h +++ b/driver/uart.h @@ -30,6 +30,7 @@ typedef struct { void MyUART_Init(MyUART_Struct_Typedef * UARTStructPtr); void MyUART_InitGPIO(MyUART_Struct_Typedef * UARTStructPtr); +int MyUART_SendArray(MyUART_Struct_Typedef *UART, uint8_t * data, int dataLength); void MyUART_Send(MyUART_Struct_Typedef *UART, uint8_t data); uint8_t MyUART_Receive(MyUART_Struct_Typedef *UART); void MyUART_Init_Periph (void (* ptrFonction)(uint8_t)); diff --git a/implementation/battery.c b/implementation/battery.c index 1e6a9b8..6c456b7 100644 --- a/implementation/battery.c +++ b/implementation/battery.c @@ -6,14 +6,25 @@ extern MyUART_Struct_Typedef uartCool; void battery(uint32_t data) { - if(data >= 0x420) //0x429 -> approx. 12V + int i; + float percentBattery = ((float)data)/MAX_BAT; + uint8_t batteryBar[12], batteryGauge=percentBattery*10; + if(batteryGauge>10) { - MyUART_Send(&uartCool,'h'); + batteryGauge = 10; } - else { - MyUART_Send(&uartCool,'l'); + batteryBar[0] = '['; + for(i=1; i<=(10-batteryGauge); i++) + { + batteryBar[i]='.'; } - + while(i<11) + { + batteryBar[i]='#'; + i++; + } + batteryBar[i]=']'; + MyUART_SendArray(&uartCool, batteryBar, 12); } void initBattery(void) diff --git a/implementation/battery.h b/implementation/battery.h index 343b80b..4170796 100644 --- a/implementation/battery.h +++ b/implementation/battery.h @@ -1,6 +1,7 @@ #ifndef BATTERY_H #define BATTERY_H #include "stm32f10x.h" +#define MAX_BAT 1145 void battery(uint32_t data); void initBattery(void);