A wrapper Class library for using the touch LCD on the DISCO-F469NI Development board. The class uses the existing BSP class created by Team ST.

Dependencies:   BSP_DISCO_F469NI LCD_DISCO_F469NI TS_DISCO_F469NI

Committer:
grantphillips
Date:
Thu Mar 01 10:21:06 2018 +0000
Revision:
0:d8d53c5e721e
V1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
grantphillips 0:d8d53c5e721e 1 #include "DISCOF469LCD.h"
grantphillips 0:d8d53c5e721e 2 #include "mbed.h"
grantphillips 0:d8d53c5e721e 3
grantphillips 0:d8d53c5e721e 4 /* ***************************************** Public Functions ***************************************** */
grantphillips 0:d8d53c5e721e 5
grantphillips 0:d8d53c5e721e 6 DISCOF469LCD::DISCOF469LCD(void) {
grantphillips 0:d8d53c5e721e 7 //mTouches=0;
grantphillips 0:d8d53c5e721e 8 ts.Init(lcd.GetXSize(), lcd.GetYSize());
grantphillips 0:d8d53c5e721e 9 Clear(LCD_BLACK);
grantphillips 0:d8d53c5e721e 10 }
grantphillips 0:d8d53c5e721e 11
grantphillips 0:d8d53c5e721e 12 void DISCOF469LCD::Clear(uint32_t Color) {
grantphillips 0:d8d53c5e721e 13 lcd.Clear(Color);
grantphillips 0:d8d53c5e721e 14 }
grantphillips 0:d8d53c5e721e 15
grantphillips 0:d8d53c5e721e 16 void DISCOF469LCD::DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code)
grantphillips 0:d8d53c5e721e 17 {
grantphillips 0:d8d53c5e721e 18 lcd.DrawPixel(Xpos, Ypos, RGB_Code);
grantphillips 0:d8d53c5e721e 19 }
grantphillips 0:d8d53c5e721e 20
grantphillips 0:d8d53c5e721e 21 uint32_t DISCOF469LCD::ReadPixel(uint16_t Xpos, uint16_t Ypos)
grantphillips 0:d8d53c5e721e 22 {
grantphillips 0:d8d53c5e721e 23 return(lcd.ReadPixel(Xpos, Ypos));
grantphillips 0:d8d53c5e721e 24 }
grantphillips 0:d8d53c5e721e 25
grantphillips 0:d8d53c5e721e 26 void DISCOF469LCD::DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint32_t Color)
grantphillips 0:d8d53c5e721e 27 {
grantphillips 0:d8d53c5e721e 28 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 29 lcd.DrawLine(x1, y1, x2, y2);
grantphillips 0:d8d53c5e721e 30 }
grantphillips 0:d8d53c5e721e 31
grantphillips 0:d8d53c5e721e 32 void DISCOF469LCD::DrawRectangle(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height, uint32_t Color)
grantphillips 0:d8d53c5e721e 33 {
grantphillips 0:d8d53c5e721e 34 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 35 lcd.DrawRect(Xpos, Ypos, Width, Height);
grantphillips 0:d8d53c5e721e 36 }
grantphillips 0:d8d53c5e721e 37
grantphillips 0:d8d53c5e721e 38 void DISCOF469LCD::FillRectangle(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height, uint32_t Color)
grantphillips 0:d8d53c5e721e 39 {
grantphillips 0:d8d53c5e721e 40 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 41 lcd.FillRect(Xpos, Ypos, Width, Height);
grantphillips 0:d8d53c5e721e 42 }
grantphillips 0:d8d53c5e721e 43
grantphillips 0:d8d53c5e721e 44 void DISCOF469LCD::DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius, uint32_t Color)
grantphillips 0:d8d53c5e721e 45 {
grantphillips 0:d8d53c5e721e 46 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 47 lcd.DrawCircle(Xpos, Ypos, Radius);
grantphillips 0:d8d53c5e721e 48 }
grantphillips 0:d8d53c5e721e 49
grantphillips 0:d8d53c5e721e 50 void DISCOF469LCD::FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius, uint32_t Color)
grantphillips 0:d8d53c5e721e 51 {
grantphillips 0:d8d53c5e721e 52 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 53 lcd.FillCircle(Xpos, Ypos, Radius);
grantphillips 0:d8d53c5e721e 54 }
grantphillips 0:d8d53c5e721e 55
grantphillips 0:d8d53c5e721e 56 void DISCOF469LCD::DrawEllipse(uint16_t Xpos, uint16_t Ypos, uint16_t XRadius, uint16_t YRadius, uint32_t Color)
grantphillips 0:d8d53c5e721e 57 {
grantphillips 0:d8d53c5e721e 58 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 59 lcd.DrawEllipse(Xpos, Ypos, XRadius, YRadius);
grantphillips 0:d8d53c5e721e 60 }
grantphillips 0:d8d53c5e721e 61
grantphillips 0:d8d53c5e721e 62
grantphillips 0:d8d53c5e721e 63 void DISCOF469LCD::FillEllipse(uint16_t Xpos, uint16_t Ypos, uint16_t XRadius, uint16_t YRadius, uint32_t Color)
grantphillips 0:d8d53c5e721e 64 {
grantphillips 0:d8d53c5e721e 65 lcd.SetTextColor(Color);
grantphillips 0:d8d53c5e721e 66 lcd.FillEllipse(Xpos, Ypos, XRadius, YRadius);
grantphillips 0:d8d53c5e721e 67 }
grantphillips 0:d8d53c5e721e 68
grantphillips 0:d8d53c5e721e 69 void DISCOF469LCD::DrawStringAtXY(uint16_t Xpos, uint16_t Ypos, uint8_t FontSize, uint32_t TextColor, uint32_t BackColor, char *Text)
grantphillips 0:d8d53c5e721e 70 {
grantphillips 0:d8d53c5e721e 71 switch(FontSize)
grantphillips 0:d8d53c5e721e 72 {
grantphillips 0:d8d53c5e721e 73 case 0: BSP_LCD_SetFont(&Font8); break;
grantphillips 0:d8d53c5e721e 74 case 1: BSP_LCD_SetFont(&Font12); break;
grantphillips 0:d8d53c5e721e 75 case 2: BSP_LCD_SetFont(&Font16); break;
grantphillips 0:d8d53c5e721e 76 case 3: BSP_LCD_SetFont(&Font20); break;
grantphillips 0:d8d53c5e721e 77 case 4: BSP_LCD_SetFont(&Font24); break;
grantphillips 0:d8d53c5e721e 78 default: BSP_LCD_SetFont(&Font8);
grantphillips 0:d8d53c5e721e 79 }
grantphillips 0:d8d53c5e721e 80 lcd.SetBackColor(BackColor);
grantphillips 0:d8d53c5e721e 81 lcd.SetTextColor(TextColor);
grantphillips 0:d8d53c5e721e 82 lcd.DisplayStringAt(Xpos, Ypos, (uint8_t *)Text, LEFT_MODE);
grantphillips 0:d8d53c5e721e 83 }
grantphillips 0:d8d53c5e721e 84
grantphillips 0:d8d53c5e721e 85 void DISCOF469LCD::DrawStringAtLine(uint16_t Line, uint8_t FontSize, uint32_t TextColor, uint32_t BackColor, uint8_t Mode, char *Text)
grantphillips 0:d8d53c5e721e 86 {
grantphillips 0:d8d53c5e721e 87 switch(FontSize)
grantphillips 0:d8d53c5e721e 88 {
grantphillips 0:d8d53c5e721e 89 case 0: BSP_LCD_SetFont(&Font8); break;
grantphillips 0:d8d53c5e721e 90 case 1: BSP_LCD_SetFont(&Font12); break;
grantphillips 0:d8d53c5e721e 91 case 2: BSP_LCD_SetFont(&Font16); break;
grantphillips 0:d8d53c5e721e 92 case 3: BSP_LCD_SetFont(&Font20); break;
grantphillips 0:d8d53c5e721e 93 case 4: BSP_LCD_SetFont(&Font24); break;
grantphillips 0:d8d53c5e721e 94 default: BSP_LCD_SetFont(&Font8);
grantphillips 0:d8d53c5e721e 95 }
grantphillips 0:d8d53c5e721e 96 lcd.SetBackColor(BackColor);
grantphillips 0:d8d53c5e721e 97 lcd.SetTextColor(TextColor);
grantphillips 0:d8d53c5e721e 98 switch(Mode)
grantphillips 0:d8d53c5e721e 99 {
grantphillips 0:d8d53c5e721e 100 case 0: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, LEFT_MODE); break;
grantphillips 0:d8d53c5e721e 101 case 1: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, CENTER_MODE); break;
grantphillips 0:d8d53c5e721e 102 case 2: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, RIGHT_MODE); break;
grantphillips 0:d8d53c5e721e 103 default: lcd.DisplayStringAt(0, LINE(Line), (uint8_t *)Text, LEFT_MODE);
grantphillips 0:d8d53c5e721e 104 }
grantphillips 0:d8d53c5e721e 105
grantphillips 0:d8d53c5e721e 106 }
grantphillips 0:d8d53c5e721e 107
grantphillips 0:d8d53c5e721e 108 uint8_t DISCOF469LCD::Touches(void)
grantphillips 0:d8d53c5e721e 109 {
grantphillips 0:d8d53c5e721e 110 TS_StateTypeDef TS_State;
grantphillips 0:d8d53c5e721e 111
grantphillips 0:d8d53c5e721e 112 ts.GetState(&TS_State);
grantphillips 0:d8d53c5e721e 113 return TS_State.touchDetected;
grantphillips 0:d8d53c5e721e 114 }
grantphillips 0:d8d53c5e721e 115
grantphillips 0:d8d53c5e721e 116 void DISCOF469LCD::GetTouch1(uint16_t *x, uint16_t *y)
grantphillips 0:d8d53c5e721e 117 {
grantphillips 0:d8d53c5e721e 118 TS_StateTypeDef TS_State;
grantphillips 0:d8d53c5e721e 119
grantphillips 0:d8d53c5e721e 120 ts.GetState(&TS_State);
grantphillips 0:d8d53c5e721e 121 *x = TS_State.touchX[0];
grantphillips 0:d8d53c5e721e 122 *y = TS_State.touchY[0];
grantphillips 0:d8d53c5e721e 123 }
grantphillips 0:d8d53c5e721e 124
grantphillips 0:d8d53c5e721e 125 void DISCOF469LCD::GetTouch2(uint16_t *x, uint16_t *y)
grantphillips 0:d8d53c5e721e 126 {
grantphillips 0:d8d53c5e721e 127 TS_StateTypeDef TS_State;
grantphillips 0:d8d53c5e721e 128
grantphillips 0:d8d53c5e721e 129 ts.GetState(&TS_State);
grantphillips 0:d8d53c5e721e 130 *x = TS_State.touchX[1];
grantphillips 0:d8d53c5e721e 131 *y = TS_State.touchY[1];
grantphillips 0:d8d53c5e721e 132 }
grantphillips 0:d8d53c5e721e 133
grantphillips 0:d8d53c5e721e 134 /* ***************************************** Private Functions ***************************************** */