2a
Dependencies: BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed
main.cpp
- Committer:
- Robsonik16
- Date:
- 2017-05-05
- Revision:
- 0:6d8b197659af
File content as of revision 0:6d8b197659af:
#include "mbed.h" #include "TS_DISCO_F429ZI.h" #include "LCD_DISCO_F429ZI.h" LCD_DISCO_F429ZI lcd; TS_DISCO_F429ZI ts; bool touchInRect(uint16_t TouchXpos, uint16_t TouchYpos,uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height) { if((TouchXpos>=Xpos)&&(TouchXpos<=Xpos+Width)&&(TouchYpos>=Ypos)&&(TouchYpos<=Ypos+Height))return (true); else return(false); } void drawNumber() { uint8_t text[3]; lcd.SetTextColor(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_RED); for(uint8_t i=0; i<4; i++) { sprintf((char*)text, "%d", i); lcd.DisplayStringAt(0, 0+i*80, (uint8_t *)&text, LEFT_MODE); } lcd.SetBackColor(LCD_COLOR_BLACK); } int main() { TS_StateTypeDef TS_State; uint16_t x, y; uint8_t text[30]; uint8_t status; bool UpdateAfterTouch=true; 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_ms(500); 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_ms(500); lcd.Clear(LCD_COLOR_BLACK); lcd.SetBackColor(LCD_COLOR_BLACK); lcd.SetTextColor(LCD_COLOR_GREEN); for(uint8_t i=0; i<4; i++) lcd.DrawRect(0,0+80*i,80,80); lcd.SetFont(&Font24); while(1) { wait_ms(100); ts.GetState(&TS_State); if (TS_State.TouchDetected) { UpdateAfterTouch=true; x = TS_State.X; y = TS_State.Y; lcd.SetTextColor(LCD_COLOR_GREEN); for(uint8_t i=0; i<4; i++) if(touchInRect(x,y,1,1+80*i,79,79)) lcd.FillRect(1,1+80*i,79,79); drawNumber(); } else if(UpdateAfterTouch == true) { UpdateAfterTouch=false; lcd.SetTextColor(LCD_COLOR_BLUE); for(uint8_t i=0; i<4; i++) lcd.FillRect(1,1+80*i,79,79); drawNumber(); } } }