Cortex Challenge Team / Mbed 2 deprecated DiscoveryF0-LED_and_Button

Dependencies:   mbed

Committer:
Foxnec
Date:
Tue May 12 09:09:31 2015 +0000
Revision:
3:67e70777bc5d
Parent:
2:da8f8b14f387
Changes to 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 1:9b85c92a1ace 20
krepemar 2:da8f8b14f387 21 /* Defines -----------------------------------------------------------------------*/
krepemar 1:9b85c92a1ace 22
krepemar 2:da8f8b14f387 23 /* Function prototypes -----------------------------------------------------------*/
krepemar 1:9b85c92a1ace 24
krepemar 1:9b85c92a1ace 25 /* Variables ---------------------------------------------------------------------*/
Foxnec 3:67e70777bc5d 26 bool press = false; // boolean value, says if was the button pressed
krepemar 1:9b85c92a1ace 27
krepemar 2:da8f8b14f387 28 //mbed - initialization of peripherals
Foxnec 3:67e70777bc5d 29 InterruptIn button(PA_0); // initialize button on STM32F0 discovery
Foxnec 3:67e70777bc5d 30 DigitalOut blue(PC_8); // initialize blue LED on STM32F0 discovery
Foxnec 3:67e70777bc5d 31 DigitalOut green(PC_9); // initialize green LED on STM32F0 discovery
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 2:da8f8b14f387 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 {
Foxnec 3:67e70777bc5d 44 if (press == false){ // variable press 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
Foxnec 3:67e70777bc5d 64 while (1) { // infinite loop
Foxnec 3:67e70777bc5d 65 green = !green; // inverts the value of green LED
krepemar 1:9b85c92a1ace 66 if (press == false){ // button wasn't pressed
Foxnec 3:67e70777bc5d 67 blue=!green; // the value of blue LED is inverse to green LED
krepemar 1:9b85c92a1ace 68 wait(0.4); // wait 400 ms
krepemar 1:9b85c92a1ace 69 }else{ // button was pressed
Foxnec 3:67e70777bc5d 70 blue=green; // the value of blue LED is same like the value of green LED
krepemar 1:9b85c92a1ace 71 wait(0.2); // wait 200 ms
Foxnec 3:67e70777bc5d 72 green = !green; // inverts value of green LED
krepemar 1:9b85c92a1ace 73 wait(0.2); // wait 200 ms
Foxnec 3:67e70777bc5d 74 green = !green; // inverts 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 }