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
DISCOF469LCD.cpp@0:d8d53c5e721e, 2018-03-01 (annotated)
- Committer:
- grantphillips
- Date:
- Thu Mar 01 10:21:06 2018 +0000
- Revision:
- 0:d8d53c5e721e
V1.0
Who changed what in which revision?
User | Revision | Line number | New 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 ***************************************** */ |