Cortex Challenge Team / Mbed 2 deprecated DiscoveryF0-LED_and_Button

Dependencies:   mbed

Committer:
krepemar
Date:
Wed Mar 11 15:51:59 2015 +0000
Revision:
0:ec0b92e7f922
Child:
1:9b85c92a1ace
LED blinking with button on STM32F0 Discovery

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krepemar 0:ec0b92e7f922 1 #include "mbed.h"
krepemar 0:ec0b92e7f922 2
krepemar 0:ec0b92e7f922 3 InterruptIn button(PA_0); // definovani tlacitka s urcenim, na jaky pin procesoru je tlacitko pripojeno
krepemar 0:ec0b92e7f922 4 DigitalOut blue(PC_8); // definovani modre LED diody s urcenim, na jaky pin procesoru je modra LED pripojena
krepemar 0:ec0b92e7f922 5 DigitalOut green(PC_9); // definovani zelene LED diody s urcenim, na jaky pin procesoru je zelena LED pripojena
krepemar 0:ec0b92e7f922 6
krepemar 0:ec0b92e7f922 7 bool press = false; // promenna typu boolean, kam se uklada, jestli bylo stisteno tlacitko
krepemar 0:ec0b92e7f922 8
krepemar 0:ec0b92e7f922 9 void pressed() // metoda vykonana pri stisku tlacitka
krepemar 0:ec0b92e7f922 10 {
krepemar 0:ec0b92e7f922 11 if (press == false){ // pokud byla promenna press false (tlacitko nebylo zmacknuto), vykona se nasledujici kod
krepemar 0:ec0b92e7f922 12 press = true; // zmena promenne press na true (rika, ze tlacitko bylo stisteno)
krepemar 0:ec0b92e7f922 13 }else{ // pokud promenna press nebyla false, vykona se nasledujici kod
krepemar 0:ec0b92e7f922 14 press = false; // zmena promenne press na false
krepemar 0:ec0b92e7f922 15 }
krepemar 0:ec0b92e7f922 16 }
krepemar 0:ec0b92e7f922 17
krepemar 0:ec0b92e7f922 18 int main() // hlavni metoda
krepemar 0:ec0b92e7f922 19 {
krepemar 0:ec0b92e7f922 20 blue=1; // na zacatku behu programu je modra LED zhasnuta
krepemar 0:ec0b92e7f922 21 green=0; // zelena LED rozsvicena
krepemar 0:ec0b92e7f922 22 button.fall(&pressed); // pokud bylo stisteno tlacitko, je vyvolano preruseni a vykonána metoda pressed
krepemar 0:ec0b92e7f922 23
krepemar 0:ec0b92e7f922 24 while (1) { // nekonecna smycka
krepemar 0:ec0b92e7f922 25 green = !green; // obraceni hodnoty zelene LED
krepemar 0:ec0b92e7f922 26 if (press == false){ // kdyz tlacitko neni stisteno, vykona se nasledujici kod
krepemar 0:ec0b92e7f922 27 blue=!green; // hodnota modre LED je opacna nez hodnota zelene LED
krepemar 0:ec0b92e7f922 28 wait(0.4); // ceka 400 ms
krepemar 0:ec0b92e7f922 29 }else{ // kdyz je tlacitko stisteno
krepemar 0:ec0b92e7f922 30 blue=green; // hodnota modre LED je stejna jako hodnota zelene LED
krepemar 0:ec0b92e7f922 31 wait(0.2); // ceka 200 ms
krepemar 0:ec0b92e7f922 32 green = !green; // obraceni hodnoty zelene LED
krepemar 0:ec0b92e7f922 33 wait(0.2); // ceka 200 ms
krepemar 0:ec0b92e7f922 34 green = !green; // obraceni hodnoty zelene LED
krepemar 0:ec0b92e7f922 35 wait(0.2); // ceka 200 ms
krepemar 0:ec0b92e7f922 36 }
krepemar 0:ec0b92e7f922 37 }
krepemar 0:ec0b92e7f922 38 }