Andrew Reed
/
CITY1082-TFT-basic_sw2_ctr
Sw2 key press counter and display to tft
main.cpp@2:f7100947de37, 2019-11-26 (annotated)
- Committer:
- reedas
- Date:
- Tue Nov 26 09:14:00 2019 +0000
- Revision:
- 2:f7100947de37
- Parent:
- 1:402b32a1025f
Switch SW2 key press counter
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
reedas | 2:f7100947de37 | 1 | /* Hello World! for the Emwin TFT Library */ |
reedas | 1:402b32a1025f | 2 | |
romilly | 0:6beb6f498640 | 3 | #include "mbed.h" |
reedas | 1:402b32a1025f | 4 | #include "GUI.h" |
reedas | 1:402b32a1025f | 5 | #include "cy8ckit_028_tft.h" |
reedas | 2:f7100947de37 | 6 | #include "PinDetect.h" |
reedas | 2:f7100947de37 | 7 | |
reedas | 2:f7100947de37 | 8 | PinDetect pb1(SWITCH2); |
reedas | 2:f7100947de37 | 9 | volatile bool keypressed = true; |
reedas | 2:f7100947de37 | 10 | |
reedas | 2:f7100947de37 | 11 | // Callback routine is interrupt activated by a debounced pb1 hit |
reedas | 2:f7100947de37 | 12 | void pb1_hit_callback (void) |
reedas | 2:f7100947de37 | 13 | { |
reedas | 2:f7100947de37 | 14 | keypressed = true; |
reedas | 2:f7100947de37 | 15 | } |
reedas | 2:f7100947de37 | 16 | |
reedas | 1:402b32a1025f | 17 | |
reedas | 1:402b32a1025f | 18 | void Display_Init(void) |
reedas | 1:402b32a1025f | 19 | { |
reedas | 1:402b32a1025f | 20 | |
reedas | 1:402b32a1025f | 21 | /* Set font size, foreground and background Colours */ |
reedas | 1:402b32a1025f | 22 | GUI_SetFont(GUI_FONT_16B_1); |
reedas | 1:402b32a1025f | 23 | GUI_SetColor(GUI_WHITE); |
reedas | 1:402b32a1025f | 24 | GUI_SetBkColor(GUI_BLACK); |
romilly | 0:6beb6f498640 | 25 | |
reedas | 1:402b32a1025f | 26 | /* Clear screen and print splash screen */ |
reedas | 1:402b32a1025f | 27 | GUI_Clear(); |
reedas | 1:402b32a1025f | 28 | GUI_SetTextAlign(GUI_TA_HCENTER); |
reedas | 1:402b32a1025f | 29 | GUI_DispStringAt("TFT Demo", 160, 20); |
reedas | 1:402b32a1025f | 30 | } |
reedas | 1:402b32a1025f | 31 | |
reedas | 1:402b32a1025f | 32 | int main() |
reedas | 1:402b32a1025f | 33 | { |
reedas | 2:f7100947de37 | 34 | uint8 counter = 0; |
reedas | 1:402b32a1025f | 35 | /* Initialise EmWin driver*/ |
reedas | 1:402b32a1025f | 36 | GUI_Init(); |
romilly | 0:6beb6f498640 | 37 | |
reedas | 1:402b32a1025f | 38 | /* Initialise display */ |
reedas | 1:402b32a1025f | 39 | Display_Init(); |
reedas | 2:f7100947de37 | 40 | pb1.mode(PullUp); |
reedas | 2:f7100947de37 | 41 | // Delay for initial pullup to take effect |
reedas | 2:f7100947de37 | 42 | ThisThread::sleep_for(10); |
reedas | 2:f7100947de37 | 43 | // Setup Interrupt callback functions for a pb hit |
reedas | 2:f7100947de37 | 44 | pb1.attach_deasserted(&pb1_hit_callback); |
reedas | 2:f7100947de37 | 45 | |
reedas | 2:f7100947de37 | 46 | // Start sampling pb inputs using interrupts |
reedas | 2:f7100947de37 | 47 | pb1.setSampleFrequency(); |
reedas | 1:402b32a1025f | 48 | |
reedas | 1:402b32a1025f | 49 | |
reedas | 1:402b32a1025f | 50 | GUI_SetFont(GUI_FONT_8X16X2X2); |
reedas | 2:f7100947de37 | 51 | GUI_SetTextAlign(GUI_TA_HCENTER); |
reedas | 2:f7100947de37 | 52 | GUI_DispStringAt("Hello World!", 160, 200); |
reedas | 2:f7100947de37 | 53 | while(1) { |
reedas | 2:f7100947de37 | 54 | if(keypressed == true) { |
reedas | 2:f7100947de37 | 55 | GUI_SetTextAlign(GUI_TA_HCENTER); |
reedas | 2:f7100947de37 | 56 | GUI_DispBinAt(counter++, 160, 100, 8); |
reedas | 2:f7100947de37 | 57 | ThisThread::sleep_for(100); |
reedas | 2:f7100947de37 | 58 | keypressed = false; |
reedas | 2:f7100947de37 | 59 | } |
reedas | 2:f7100947de37 | 60 | } |
romilly | 0:6beb6f498640 | 61 | } |
reedas | 1:402b32a1025f | 62 | |
reedas | 1:402b32a1025f | 63 | |
reedas | 1:402b32a1025f | 64 |