Zoltan Hudak
/
Asm01
Assembly example.
main.cpp@0:c40fd5b610ee, 2019-03-09 (annotated)
- Committer:
- hudakz
- Date:
- Sat Mar 09 10:56:02 2019 +0000
- Revision:
- 0:c40fd5b610ee
Initial release.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hudakz | 0:c40fd5b610ee | 1 | #include "mbed.h" |
hudakz | 0:c40fd5b610ee | 2 | // This program will blink LED1 and LED4 |
hudakz | 0:c40fd5b610ee | 3 | // using assembly language for LED1 and |
hudakz | 0:c40fd5b610ee | 4 | // API functions for LED4 |
hudakz | 0:c40fd5b610ee | 5 | // declare external assembly language function (in a *.s file) |
hudakz | 0:c40fd5b610ee | 6 | extern "C" int my_asm(int value); |
hudakz | 0:c40fd5b610ee | 7 | // declare LED outputs – let C set them up as output bits |
hudakz | 0:c40fd5b610ee | 8 | DigitalOut myled1(LED1); |
hudakz | 0:c40fd5b610ee | 9 | DigitalOut myled4(LED4); |
hudakz | 0:c40fd5b610ee | 10 | |
hudakz | 0:c40fd5b610ee | 11 | int main() { |
hudakz | 0:c40fd5b610ee | 12 | |
hudakz | 0:c40fd5b610ee | 13 | int value = 0; |
hudakz | 0:c40fd5b610ee | 14 | |
hudakz | 0:c40fd5b610ee | 15 | |
hudakz | 0:c40fd5b610ee | 16 | // loop forever |
hudakz | 0:c40fd5b610ee | 17 | while(1) { |
hudakz | 0:c40fd5b610ee | 18 | //call assembly language function to control LED1 |
hudakz | 0:c40fd5b610ee | 19 | my_asm(value); |
hudakz | 0:c40fd5b610ee | 20 | //API function to control LED4 |
hudakz | 0:c40fd5b610ee | 21 | myled4 = value; |
hudakz | 0:c40fd5b610ee | 22 | // flip value and wait |
hudakz | 0:c40fd5b610ee | 23 | value = ~ value; |
hudakz | 0:c40fd5b610ee | 24 | wait(0.2); |
hudakz | 0:c40fd5b610ee | 25 | } |
hudakz | 0:c40fd5b610ee | 26 | } |
hudakz | 0:c40fd5b610ee | 27 | |
hudakz | 0:c40fd5b610ee | 28 |