Sw2 key press counter and display to tft

Dependencies:   mbed PinDetect

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?

UserRevisionLine numberNew 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