Jack Hansdampf
/
ASM_Warteschleife_Inline
Warteschleife mit Inline Assembly
main.cpp@1:7e403cd24fdb, 2022-01-21 (annotated)
- Committer:
- jack1930
- Date:
- Fri Jan 21 16:53:34 2022 +0000
- Revision:
- 1:7e403cd24fdb
- Parent:
- 0:154b19d0f047
test mit G474
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jack1930 | 0:154b19d0f047 | 1 | /* mbed Microcontroller Library |
jack1930 | 0:154b19d0f047 | 2 | * Copyright (c) 2019 ARM Limited |
jack1930 | 0:154b19d0f047 | 3 | * SPDX-License-Identifier: Apache-2.0 |
jack1930 | 0:154b19d0f047 | 4 | */ |
jack1930 | 0:154b19d0f047 | 5 | |
jack1930 | 0:154b19d0f047 | 6 | #include "mbed.h" |
jack1930 | 0:154b19d0f047 | 7 | #include "platform/mbed_thread.h" |
jack1930 | 0:154b19d0f047 | 8 | |
jack1930 | 0:154b19d0f047 | 9 | |
jack1930 | 0:154b19d0f047 | 10 | // Blinking rate in milliseconds |
jack1930 | 0:154b19d0f047 | 11 | #define BLINKING_RATE_MS 500 |
jack1930 | 0:154b19d0f047 | 12 | |
jack1930 | 1:7e403cd24fdb | 13 | void warte() |
jack1930 | 1:7e403cd24fdb | 14 | { |
jack1930 | 1:7e403cd24fdb | 15 | asm("push {R0,R1} \n" |
jack1930 | 1:7e403cd24fdb | 16 | "ldr R0,=32000000/5*3 \n" |
jack1930 | 1:7e403cd24fdb | 17 | "mov R1,#1 \n" |
jack1930 | 1:7e403cd24fdb | 18 | "1: \n" |
jack1930 | 1:7e403cd24fdb | 19 | "subs R0,R1 \n" |
jack1930 | 1:7e403cd24fdb | 20 | "bne 1b \n" |
jack1930 | 1:7e403cd24fdb | 21 | "pop {R0,R1} \n" |
jack1930 | 1:7e403cd24fdb | 22 | ); |
jack1930 | 1:7e403cd24fdb | 23 | } |
jack1930 | 0:154b19d0f047 | 24 | |
jack1930 | 0:154b19d0f047 | 25 | int main() |
jack1930 | 0:154b19d0f047 | 26 | { |
jack1930 | 0:154b19d0f047 | 27 | // Initialise the digital pin LED1 as an output |
jack1930 | 0:154b19d0f047 | 28 | DigitalOut led(PA_5); |
jack1930 | 0:154b19d0f047 | 29 | |
jack1930 | 0:154b19d0f047 | 30 | while (true) { |
jack1930 | 0:154b19d0f047 | 31 | led = !led; |
jack1930 | 1:7e403cd24fdb | 32 | //thread_sleep_for(BLINKING_RATE_MS); |
jack1930 | 1:7e403cd24fdb | 33 | //HAL_Delay(BLINKING_RATE_MS); |
jack1930 | 1:7e403cd24fdb | 34 | warte(); |
jack1930 | 0:154b19d0f047 | 35 | } |
jack1930 | 0:154b19d0f047 | 36 | } |