![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Touchscreen voltage meter (WIP)
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI VoltageMeter_stm32f429disco
Dependents: VoltageMeter_stm32f429disco
Diff: main.cpp
- Revision:
- 1:5fa403dde809
- Parent:
- 0:199627fa5461
diff -r 199627fa5461 -r 5fa403dde809 main.cpp --- a/main.cpp Thu Feb 13 18:12:42 2020 +0000 +++ b/main.cpp Mon Feb 24 20:44:58 2020 +0000 @@ -1,93 +1,31 @@ #include "mbed.h" -#include "TS_DISCO_F429ZI.h" -#include "LCD_DISCO_F429ZI.h" +#include "ts.h" +#include "display.h" +#include "adc.h" -LCD_DISCO_F429ZI lcd; -TS_DISCO_F429ZI ts; -struct Rect { - uint32_t x; - uint32_t y; - uint32_t height; - uint32_t width; -}; +void initialize_app(void) +{ + display_splash_screen(); + wait(2); + + uint32_t display_size_x, display_size_y; + display_get_size(display_size_x, display_size_y); + + bool success = ts_init(display_size_x, display_size_y); -AnalogIn adc12V(PA_2); -AnalogIn adc5V(PA_4); -AnalogIn adcN12V(PA_6); + if (!success) { + display_failed_ts_init(); + while(true) {;} + } +} int main() { - TS_StateTypeDef TS_State; - uint16_t x, y; - uint8_t text[30]; - uint8_t status; - - BSP_LCD_SetFont(&Font20); - - lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); - lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE); - wait(1); - - status = ts.Init(lcd.GetXSize(), lcd.GetYSize()); - - if (status != TS_OK) - { - lcd.Clear(LCD_COLOR_RED); - lcd.SetBackColor(LCD_COLOR_RED); - lcd.SetTextColor(LCD_COLOR_WHITE); - lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); - lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE); - } - else - { - lcd.Clear(LCD_COLOR_GREEN); - lcd.SetBackColor(LCD_COLOR_GREEN); - lcd.SetTextColor(LCD_COLOR_WHITE); - lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); - lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE); - } - - wait(1); - lcd.Clear(LCD_COLOR_BLUE); - + initialize_app(); + display_main_screen(); -// lcd.SetTextColor(LCD_COLOR_BLACK); -// lcd.FillRect(30, 25, 180, 45); -// lcd.SetBackColor(LCD_COLOR_BLACK); -// lcd.SetTextColor(LCD_COLOR_WHITE); -// lcd.DisplayStringAt(0, LINE(2), (uint8_t *)"Row Power 25", CENTER_MODE); -// -// -// lcd.SetTextColor(LCD_COLOR_BLACK); -// lcd.FillRect(30, 105, 180, 45); -// lcd.SetBackColor(LCD_COLOR_BLACK); -// lcd.SetTextColor(LCD_COLOR_WHITE); -// lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"Row Power 45", CENTER_MODE); - - while(1) - { - - ts.GetState(&TS_State); - if (TS_State.TouchDetected) - { - x = TS_State.X; - y = TS_State.Y; - sprintf((char*)text, "x=%d y=%d ", x, y); - lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); - } - float adc12V_involts = adc12V.read() * 24.0f; - sprintf((char*)text, "+12V = %.2f", adc12V_involts); - lcd.DisplayStringAt(0, LINE(8), (uint8_t *)&text, LEFT_MODE); - - float adcN12V_involts = adcN12V.read() * 24.0f; - sprintf((char*)text, "-12V = %.2f", adcN12V_involts); - lcd.DisplayStringAt(0, LINE(9), (uint8_t *)&text, LEFT_MODE); - - float adc5V_involts = adc5V.read() * 10.0f; - sprintf((char*)text, "+5V = %.2f", adc5V_involts); - lcd.DisplayStringAt(0, LINE(10), (uint8_t *)&text, LEFT_MODE); - - + while (1) { + } }