STM32-F746NG-DISCO Project.

Dependencies:   BSP_DISCO_F746NG

main.cpp

Committer:
chri721u
Date:
2020-01-07
Revision:
0:6b60860a3ffe
Child:
1:0c13955ae7ae

File content as of revision 0:6b60860a3ffe:

#include "mbed.h"
#include "SPI_TFT.h"
#include "stm32746g_discovery_lcd.h"

/*
    Author: Christian Andresen
    Date: 07-01-2020
    Brief: Basic arduino project involving sensors (Touch), digital output (Buzzer), and onboard LCD Screen.

*/
// D2-D4: DigitalIN, D5-D8: DigitalOut
DigitalIn button(D2);
DigitalIn touch(D3);
DigitalOut led(D5);
DigitalOut buzzer(D6);

void bluescreen();
int button_count;
int touch_count;

// Main part of the program
int main()
{
    button_count = 0;
    touch_count = 0;
    
// Boot up LCD screen
    BSP_LCD_Init();
    BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
    BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
    // Clear the screen, add black background and red text
    BSP_LCD_Clear(LCD_COLOR_BLACK);
    BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
    BSP_LCD_SetTextColor(LCD_COLOR_RED);
    // Bootup Message
    BSP_LCD_DisplayStringAt(0, 130, (uint8_t *) "SYSTEM BOOTING", CENTER_MODE);
    HAL_Delay(10000);
    // Change LCD Screen
    BSP_LCD_Clear(LCD_COLOR_BLACK);
    //Message On Screen
    BSP_LCD_DisplayStringAt(0, 50, (uint8_t *) "HELLDROP STUDIO SOFTWARE", CENTER_MODE);
    //(uint8_t *)buffer
    BSP_LCD_DisplayStringAt(0, 100, (uint8_t *)"BUTTON COUNT: %d" + button_count, CENTER_MODE);
    BSP_LCD_DisplayStringAt(0, 150, (uint8_t *)"Touch count: %d" + touch_count, CENTER_MODE);

    // While device is on, do..
    while(1) {
        // If the button is pressed, do..
        if(button) {
            led = 1; // LED is ON
            buzzer = 1;
            button_count++;
        }
        // Else if Touch Sensor is touched, do..
        else if(touch) {
            led = 1;
            touch_count++;
        }
        // Else, turn off LED
        else {
            led = 0;
            buzzer = 0;
        }
    }
}

void bluescreen()
{
    HAL_Delay(25000);
    //BLUE SCREEN OF DEATH
    BSP_LCD_Clear(LCD_COLOR_BLUE);
    BSP_LCD_SetBackColor(LCD_COLOR_BLUE);
    BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
    BSP_LCD_DisplayStringAt(0, 50, (uint8_t *) ":(", CENTER_MODE);
    BSP_LCD_DisplayStringAt(0, 80, (uint8_t *) "This device has encountered", CENTER_MODE);
    BSP_LCD_DisplayStringAt(0, 110, (uint8_t *) "a fatal error.", CENTER_MODE);
    BSP_LCD_DisplayStringAt(0, 140, (uint8_t *) "Please Reboot.", CENTER_MODE);
    BSP_LCD_DisplayStringAt(0, 170, (uint8_t *) "HAL Error", CENTER_MODE);
}

void counter()
{

}