Template for working forward

Dependencies:   mbed PinDetect

main.cpp

Committer:
reedas
Date:
2021-10-16
Revision:
2:ad262f2c84ca
Parent:
1:402b32a1025f
Child:
3:a14b2aa7546e

File content as of revision 2:ad262f2c84ca:

/* Hello World! for the Emwin TFT Library */

#include "mbed.h"
#include "GUI.h"
#include "cy8ckit_028_tft.h"
#include "PinDetect.h"

PinDetect pb1(SWITCH2);
uint8 counter = 0;
AnalogIn lightLevel(P10_0);

// Callback routine is interrupt activated by a debounced pb1 hit
void pb1_hit_callback (void)
{
    counter = 0;
}

int readLightLevel() {
    int lightPercent;
    lightPercent = (lightLevel.read_u16()*100)/65535;
    return lightPercent;
    }

void Display_Init(void)
{

    /* Set font size, foreground and background Colours */
    GUI_SetFont(GUI_FONT_16B_1);
    GUI_SetColor(GUI_WHITE);
    GUI_SetBkColor(GUI_BLACK);

    /* Clear screen and print splash screen */
    GUI_Clear();
    GUI_SetTextAlign(GUI_TA_HCENTER);
    GUI_DispStringAt("TFT Demo", 160, 20);
}

int main()
{

    /* Initialise EmWin driver*/
    GUI_Init();

    /* Initialise display */
    Display_Init();
    pb1.mode(PullUp);
    // Delay for initial pullup to take effect
    ThisThread::sleep_for(10);
    // Setup Interrupt callback functions for a pb hit
    pb1.attach_deasserted(&pb1_hit_callback);

    // Start sampling pb inputs using interrupts
    pb1.setSampleFrequency();


    GUI_SetFont(GUI_FONT_8X16X2X2);
    GUI_SetTextAlign(GUI_TA_HCENTER);
    GUI_DispStringAt("Hello World!", 160, 200);
    while(1) {
        GUI_SetTextAlign(GUI_TA_HCENTER);
        GUI_DispHexAt(counter, 160, 70, 2);
        GUI_SetTextAlign(GUI_TA_HCENTER);
        GUI_DispDecAt(counter, 160, 130, 3);
        GUI_SetTextAlign(GUI_TA_HCENTER);
        GUI_DispBinAt(counter++, 160, 100, 8);
        GUI_DispStringAt("Light is: ", 10, 160);
        GUI_DispDec(readLightLevel(), 3);
        GUI_DispString("%");
        ThisThread::sleep_for(500);

    }
}