send a number through serial USB >> blink it in binary using the default LED
Fork of mbed-os-example-mbed5-blinky by
Revision 51:38bcf5ee4cb1, committed 2017-11-11
- Comitter:
- Ladon
- Date:
- Sat Nov 11 15:03:45 2017 +0000
- Parent:
- 50:84f446a84793
- Child:
- 52:fb9d943f4042
- Commit message:
- send a number through serial >> blink it in binary using the default LED
Changed in this revision
| README.md | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/README.md Wed Nov 08 14:30:02 2017 +0000 +++ b/README.md Sat Nov 11 15:03:45 2017 +0000 @@ -1,87 +1,6 @@ -# Getting started with Blinky on mbed OS - -This guide reviews the steps required to get Blinky working on an mbed OS platform. - -Please install [mbed CLI](https://github.com/ARMmbed/mbed-cli#installing-mbed-cli). - -## Import the example application - -From the command-line, import the example: - -``` -mbed import mbed-os-example-blinky -cd mbed-os-example-blinky -``` - -### Now compile - -Invoke `mbed compile`, and specify the name of your platform and your favorite toolchain (`GCC_ARM`, `ARM`, `IAR`). For example, for the ARM Compiler 5: - -``` -mbed compile -m K64F -t ARM -``` - -Your PC may take a few minutes to compile your code. At the end, you see the following result: - -``` -[snip] -+----------------------------+-------+-------+------+ -| Module | .text | .data | .bss | -+----------------------------+-------+-------+------+ -| Misc | 13939 | 24 | 1372 | -| core/hal | 16993 | 96 | 296 | -| core/rtos | 7384 | 92 | 4204 | -| features/FEATURE_IPV4 | 80 | 0 | 176 | -| frameworks/greentea-client | 1830 | 60 | 44 | -| frameworks/utest | 2392 | 512 | 292 | -| Subtotals | 42618 | 784 | 6384 | -+----------------------------+-------+-------+------+ -Allocated Heap: unknown -Allocated Stack: unknown -Total Static RAM memory (data + bss): 7168 bytes -Total RAM memory (data + bss + heap + stack): 7168 bytes -Total Flash memory (text + data + misc): 43402 bytes -Image: .\.build\K64F\ARM\mbed-os-example-blinky.bin -``` - -### Program your board - -1. Connect your mbed device to the computer over USB. -1. Copy the binary file to the mbed device. -1. Press the reset button to start the program. - -The LED on your platform turns on and off. - -## Export the project to Keil MDK, and debug your application - -From the command-line, run the following command: - -``` -mbed export -m K64F -i uvision -``` - -To debug the application: - -1. Start uVision. -1. Import the uVision project generated earlier. -1. Compile your application, and generate an `.axf` file. -1. Make sure uVision is configured to debug over CMSIS-DAP (From the Project menu > Options for Target '...' > Debug tab > Use CMSIS-DAP Debugger). -1. Set breakpoints, and start a debug session. - - - -## Troubleshooting - -1. Make sure `mbed-cli` is working correctly and its version is `>1.0.0` - - ``` - mbed --version - ``` - - If not, you can update it: - - ``` - pip install mbed-cli --upgrade - ``` - -2. If using Keil MDK, make sure you have a license installed. [MDK-Lite](http://www.keil.com/arm/mdk.asp) has a 32 KB restriction on code size. \ No newline at end of file +In Linux : + +$ cat > /dev/ttyACM0 + +(to quit, hit <Ctrl>+<C>) +(/dev/ttyACM0 is an example) \ No newline at end of file
--- a/main.cpp Wed Nov 08 14:30:02 2017 +0000
+++ b/main.cpp Sat Nov 11 15:03:45 2017 +0000
@@ -2,11 +2,32 @@
DigitalOut led1(LED1);
+Serial pc(USBTX, USBRX);
+
+// blink a number in binary //
+void blink_in_binary (int number);
+
// main() runs in its own thread in the OS
int main() {
+// pc.baud(9600);
+ int number;
+ number = 0;
while (true) {
- led1 = !led1;
- wait(0.5);
+ while (!pc.readable());
+ pc.scanf("%d", &number);
+// pc.printf("you entered %d\n", number);
+ blink_in_binary(number);
}
}
+// recursivelly prints left-to-right //
+void blink_in_binary (int number)
+{
+ if (number <= 0)
+ return;
+ blink_in_binary (number >> 1);
+ led1 = number & 1;
+ wait(0.3);
+ led1 = 0;
+ wait(0.3);
+}
\ No newline at end of file
Spyros Papanastasiou
