Helmut Tschemernjak
/
Nucleo_blink_led
Test
main.cpp@1:203c68bc3e88, 2017-02-17 (annotated)
- Committer:
- Helmut64
- Date:
- Fri Feb 17 13:20:47 2017 +0000
- Revision:
- 1:203c68bc3e88
- Parent:
- 0:eef6d081aebe
Added more F103 support.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Helmut64 | 0:eef6d081aebe | 1 | #include "mbed.h" |
Helmut64 | 0:eef6d081aebe | 2 | |
Helmut64 | 1:203c68bc3e88 | 3 | #ifdef TARGET_NUCLEO_F103RB |
Helmut64 | 1:203c68bc3e88 | 4 | #define MY_LED PC_13 |
Helmut64 | 1:203c68bc3e88 | 5 | #define MY_BUTTON NC |
Helmut64 | 1:203c68bc3e88 | 6 | #else |
Helmut64 | 1:203c68bc3e88 | 7 | #define MY_LED LED1 |
Helmut64 | 1:203c68bc3e88 | 8 | #define MY_BUTTON USER_BUTTON |
Helmut64 | 1:203c68bc3e88 | 9 | #endif |
Helmut64 | 1:203c68bc3e88 | 10 | |
Helmut64 | 1:203c68bc3e88 | 11 | DigitalOut myled(MY_LED); |
Helmut64 | 1:203c68bc3e88 | 12 | |
Helmut64 | 0:eef6d081aebe | 13 | |
Helmut64 | 0:eef6d081aebe | 14 | volatile int updatedLED = 0; |
Helmut64 | 0:eef6d081aebe | 15 | |
Helmut64 | 0:eef6d081aebe | 16 | |
Helmut64 | 0:eef6d081aebe | 17 | void ButtonPressed(void) { |
Helmut64 | 0:eef6d081aebe | 18 | myled = !myled; |
Helmut64 | 0:eef6d081aebe | 19 | updatedLED++; |
Helmut64 | 0:eef6d081aebe | 20 | } |
Helmut64 | 0:eef6d081aebe | 21 | |
Helmut64 | 0:eef6d081aebe | 22 | int main() |
Helmut64 | 0:eef6d081aebe | 23 | { |
Helmut64 | 1:203c68bc3e88 | 24 | Serial ser(USBTX, USBRX); |
Helmut64 | 1:203c68bc3e88 | 25 | ser.baud(230400); |
Helmut64 | 1:203c68bc3e88 | 26 | |
Helmut64 | 1:203c68bc3e88 | 27 | InterruptIn *event = NULL; |
Helmut64 | 1:203c68bc3e88 | 28 | if (MY_BUTTON != NC) { |
Helmut64 | 1:203c68bc3e88 | 29 | event = new InterruptIn(MY_BUTTON); |
Helmut64 | 1:203c68bc3e88 | 30 | event->fall(&ButtonPressed); |
Helmut64 | 1:203c68bc3e88 | 31 | // event.mode(PullUp); |
Helmut64 | 1:203c68bc3e88 | 32 | } |
Helmut64 | 1:203c68bc3e88 | 33 | |
Helmut64 | 0:eef6d081aebe | 34 | int intrnos = 0; |
Helmut64 | 0:eef6d081aebe | 35 | |
Helmut64 | 1:203c68bc3e88 | 36 | ser.printf("Hello, World\r\n"); |
Helmut64 | 1:203c68bc3e88 | 37 | ser.printf("SysClock: %u Hz.\r\n", SystemCoreClock); |
Helmut64 | 1:203c68bc3e88 | 38 | |
Helmut64 | 0:eef6d081aebe | 39 | int i = 0; |
Helmut64 | 1:203c68bc3e88 | 40 | |
Helmut64 | 0:eef6d081aebe | 41 | for(;;) { |
Helmut64 | 0:eef6d081aebe | 42 | while(i < 5) { |
Helmut64 | 0:eef6d081aebe | 43 | myled = 1; // LED is ON |
Helmut64 | 0:eef6d081aebe | 44 | wait(0.2); // 200 ms |
Helmut64 | 0:eef6d081aebe | 45 | myled = 0; // LED is OFF |
Helmut64 | 0:eef6d081aebe | 46 | wait(1.0); // 1 sec |
Helmut64 | 0:eef6d081aebe | 47 | i++; |
Helmut64 | 0:eef6d081aebe | 48 | } |
Helmut64 | 0:eef6d081aebe | 49 | sleep(); |
Helmut64 | 1:203c68bc3e88 | 50 | ser.printf("Wakeup: %d Intr: %d\r\n", ++intrnos, updatedLED); |
Helmut64 | 1:203c68bc3e88 | 51 | myled = !myled; |
Helmut64 | 1:203c68bc3e88 | 52 | wait(0.1); |
Helmut64 | 0:eef6d081aebe | 53 | } |
Helmut64 | 0:eef6d081aebe | 54 | } |