ARM assembly language to control LEDs
Fork of ECE_4180_Lab1_P1_Arm by
main.cpp@1:1d27be3b634d, 2016-11-06 (annotated)
- Committer:
- jboettcher
- Date:
- Sun Nov 06 22:36:01 2016 +0000
- Revision:
- 1:1d27be3b634d
- Parent:
- 0:94cb0da877bc
complete;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| zbraun6 | 0:94cb0da877bc | 1 | #include "mbed.h" |
| zbraun6 | 0:94cb0da877bc | 2 | // This program will blink LED1 and LED4 |
| zbraun6 | 0:94cb0da877bc | 3 | // using assembly language for LED1 and |
| zbraun6 | 0:94cb0da877bc | 4 | // API functions for LED4 |
| zbraun6 | 0:94cb0da877bc | 5 | // declare external assembly language function (in a *.s file) |
| zbraun6 | 0:94cb0da877bc | 6 | extern "C" int my_asm(int value); |
| zbraun6 | 0:94cb0da877bc | 7 | // declare LED outputs – let C set them up as output bits |
| zbraun6 | 0:94cb0da877bc | 8 | DigitalOut myled1(LED1); |
| zbraun6 | 0:94cb0da877bc | 9 | DigitalOut myled4(LED4); |
| zbraun6 | 0:94cb0da877bc | 10 | DigitalOut digOut(p30); |
| zbraun6 | 0:94cb0da877bc | 11 | DigitalIn digIn(p21); |
| zbraun6 | 0:94cb0da877bc | 12 | |
| zbraun6 | 0:94cb0da877bc | 13 | int main() { |
| zbraun6 | 0:94cb0da877bc | 14 | int value = 0; |
| zbraun6 | 0:94cb0da877bc | 15 | while(1) { |
| zbraun6 | 0:94cb0da877bc | 16 | if (digIn) { |
| zbraun6 | 0:94cb0da877bc | 17 | value = 1; |
| zbraun6 | 0:94cb0da877bc | 18 | } else { |
| zbraun6 | 0:94cb0da877bc | 19 | value = 0; |
| zbraun6 | 0:94cb0da877bc | 20 | } |
| zbraun6 | 0:94cb0da877bc | 21 | //call assembly language function to control LED1 |
| zbraun6 | 0:94cb0da877bc | 22 | my_asm(value); |
| zbraun6 | 0:94cb0da877bc | 23 | |
| zbraun6 | 0:94cb0da877bc | 24 | wait(0.2); |
| zbraun6 | 0:94cb0da877bc | 25 | } |
| zbraun6 | 0:94cb0da877bc | 26 | } |
