send a number through serial USB >> blink it in binary using the default LED

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

Committer:
Ladon
Date:
Sat Nov 11 15:19:06 2017 +0000
Revision:
53:2da3dc1461af
Parent:
52:fb9d943f4042
simplifying README.md

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jonathan Austin 0:2757d7abb7d9 1 #include "mbed.h"
Jonathan Austin 0:2757d7abb7d9 2
Jonathan Austin 0:2757d7abb7d9 3 DigitalOut led1(LED1);
Jonathan Austin 0:2757d7abb7d9 4
Ladon 51:38bcf5ee4cb1 5 Serial pc(USBTX, USBRX);
Ladon 51:38bcf5ee4cb1 6
Ladon 51:38bcf5ee4cb1 7 // blink a number in binary //
Ladon 51:38bcf5ee4cb1 8 void blink_in_binary (int number);
Ladon 51:38bcf5ee4cb1 9
Jonathan Austin 1:846c97078558 10 // main() runs in its own thread in the OS
Jonathan Austin 0:2757d7abb7d9 11 int main() {
Ladon 51:38bcf5ee4cb1 12 // pc.baud(9600);
Ladon 51:38bcf5ee4cb1 13 int number;
Ladon 51:38bcf5ee4cb1 14 number = 0;
Jonathan Austin 0:2757d7abb7d9 15 while (true) {
Ladon 51:38bcf5ee4cb1 16 while (!pc.readable());
Ladon 51:38bcf5ee4cb1 17 pc.scanf("%d", &number);
Ladon 52:fb9d943f4042 18 pc.printf("you entered %d\n", number);
Ladon 51:38bcf5ee4cb1 19 blink_in_binary(number);
Jonathan Austin 0:2757d7abb7d9 20 }
Jonathan Austin 0:2757d7abb7d9 21 }
Jonathan Austin 1:846c97078558 22
Ladon 51:38bcf5ee4cb1 23 // recursivelly prints left-to-right //
Ladon 51:38bcf5ee4cb1 24 void blink_in_binary (int number)
Ladon 51:38bcf5ee4cb1 25 {
Ladon 51:38bcf5ee4cb1 26 if (number <= 0)
Ladon 51:38bcf5ee4cb1 27 return;
Ladon 51:38bcf5ee4cb1 28 blink_in_binary (number >> 1);
Ladon 51:38bcf5ee4cb1 29 led1 = number & 1;
Ladon 51:38bcf5ee4cb1 30 wait(0.3);
Ladon 51:38bcf5ee4cb1 31 led1 = 0;
Ladon 51:38bcf5ee4cb1 32 wait(0.3);
Ladon 51:38bcf5ee4cb1 33 }