Cortex Challenge Team / Mbed 2 deprecated DiscoveryF0-LED_and_Button

Dependencies:   mbed

Committer:
krepemar
Date:
Wed Mar 11 16:31:03 2015 +0000
Revision:
1:9b85c92a1ace
Parent:
0:ec0b92e7f922
Child:
2:da8f8b14f387
new comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krepemar 1:9b85c92a1ace 1 /**********************************************************************************
krepemar 1:9b85c92a1ace 2 * @file main.cpp
krepemar 1:9b85c92a1ace 3 * @author Marta Krepelkova
krepemar 1:9b85c92a1ace 4 * @version V0.1
krepemar 1:9b85c92a1ace 5 * @date 11-March-2015
krepemar 1:9b85c92a1ace 6 * @brief LED blinking with button for STM32F0 Discovery kit
krepemar 1:9b85c92a1ace 7 ***********************************************************************************/
krepemar 1:9b85c92a1ace 8
krepemar 1:9b85c92a1ace 9 /**********************************************************************************/
krepemar 1:9b85c92a1ace 10 /* Table of used pins on STM32F0 Discovery kit with STM32F051R8 MCU (LQFP64) */
krepemar 1:9b85c92a1ace 11 /**********************************************************************************/
krepemar 1:9b85c92a1ace 12 /* LQFP64 pin | Discovery pin | ST Nucleo F030R8 pin | peripheral */
krepemar 1:9b85c92a1ace 13 /* 14 | PA_0 | PC_13 | User button */
krepemar 1:9b85c92a1ace 14 /* 39 | PC_8 | PA_5 | LED */
krepemar 1:9b85c92a1ace 15 /* 40 | PC_9 | | LED */
krepemar 1:9b85c92a1ace 16 /**********************************************************************************/
krepemar 1:9b85c92a1ace 17
krepemar 1:9b85c92a1ace 18 /* Includes ----------------------------------------------------------------------*/
krepemar 0:ec0b92e7f922 19 #include "mbed.h"
krepemar 0:ec0b92e7f922 20
krepemar 1:9b85c92a1ace 21 //Handles the initialization of peripherals
krepemar 1:9b85c92a1ace 22 InterruptIn button(PA_0); // inicialize button on STM32F0 discovery
krepemar 1:9b85c92a1ace 23 DigitalOut blue(PC_8); // inicialize blue LED on STM32F0 discovery
krepemar 1:9b85c92a1ace 24 DigitalOut green(PC_9); // inicialize green LED on STM32F0 discovery
krepemar 1:9b85c92a1ace 25
krepemar 1:9b85c92a1ace 26
krepemar 1:9b85c92a1ace 27
krepemar 1:9b85c92a1ace 28 /* Variables ---------------------------------------------------------------------*/
krepemar 1:9b85c92a1ace 29 bool press = false; // boolean value, where you can find if was the button pressed
krepemar 1:9b85c92a1ace 30
krepemar 1:9b85c92a1ace 31
krepemar 1:9b85c92a1ace 32
krepemar 1:9b85c92a1ace 33 /* Functions----------------------------------------------------------------------*/
krepemar 0:ec0b92e7f922 34
krepemar 1:9b85c92a1ace 35 /*******************************************************************************
krepemar 1:9b85c92a1ace 36 * Function Name : pressed.
krepemar 1:9b85c92a1ace 37 * Description : Changes value press if someone pressed the button.
krepemar 1:9b85c92a1ace 38 * Input : None.
krepemar 1:9b85c92a1ace 39 * Output : None.
krepemar 1:9b85c92a1ace 40 * Return : None.
krepemar 1:9b85c92a1ace 41 *******************************************************************************/
krepemar 1:9b85c92a1ace 42 void pressed()
krepemar 0:ec0b92e7f922 43 {
krepemar 1:9b85c92a1ace 44 if (press == false){ // variable prees was false (button wasn't pressed yet)
krepemar 1:9b85c92a1ace 45 press = true; // press is true (button was pressed)
krepemar 1:9b85c92a1ace 46 }else{ // variable press was true
krepemar 1:9b85c92a1ace 47 press = false; // press is false
krepemar 0:ec0b92e7f922 48 }
krepemar 0:ec0b92e7f922 49 }
krepemar 1:9b85c92a1ace 50
krepemar 1:9b85c92a1ace 51 /*******************************************************************************
krepemar 1:9b85c92a1ace 52 * Function Name : main.
krepemar 1:9b85c92a1ace 53 * Description : Main routine.
krepemar 1:9b85c92a1ace 54 * Input : None.
krepemar 1:9b85c92a1ace 55 * Output : None.
krepemar 1:9b85c92a1ace 56 * Return : None.
krepemar 1:9b85c92a1ace 57 *******************************************************************************/
krepemar 1:9b85c92a1ace 58 int main()
krepemar 0:ec0b92e7f922 59 {
krepemar 1:9b85c92a1ace 60 blue=1; // blue LED is off
krepemar 1:9b85c92a1ace 61 green=0; // green LED is on
krepemar 1:9b85c92a1ace 62 button.fall(&pressed); // button was pressed, call function pressed
krepemar 0:ec0b92e7f922 63
krepemar 1:9b85c92a1ace 64 while (1) { // infinity loop
krepemar 1:9b85c92a1ace 65 green = !green; // inverse value of green LED
krepemar 1:9b85c92a1ace 66 if (press == false){ // button wasn't pressed
krepemar 1:9b85c92a1ace 67 blue=!green; // value of blue LED is iverse to green LED
krepemar 1:9b85c92a1ace 68 wait(0.4); // wait 400 ms
krepemar 1:9b85c92a1ace 69 }else{ // button was pressed
krepemar 1:9b85c92a1ace 70 blue=green; // value of blue LED is same like value of green LED
krepemar 1:9b85c92a1ace 71 wait(0.2); // wait 200 ms
krepemar 1:9b85c92a1ace 72 green = !green; // inverse value of green LED
krepemar 1:9b85c92a1ace 73 wait(0.2); // wait 200 ms
krepemar 1:9b85c92a1ace 74 green = !green; // inverse value of green LED
krepemar 1:9b85c92a1ace 75 wait(0.2); // wait 200 ms
krepemar 0:ec0b92e7f922 76 }
krepemar 0:ec0b92e7f922 77 }
krepemar 0:ec0b92e7f922 78 }