Warteschleife mit Inline Assembly

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?

UserRevisionLine numberNew 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 }