The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 #ifndef _NRF_DELAY_H
AnnaBridge 171:3a7713b1edbc 2 #define _NRF_DELAY_H
AnnaBridge 171:3a7713b1edbc 3
AnnaBridge 171:3a7713b1edbc 4 // #include "nrf.h"
AnnaBridge 171:3a7713b1edbc 5
AnnaBridge 171:3a7713b1edbc 6 /*lint --e{438, 522} "Variable not used" "Function lacks side-effects" */
AnnaBridge 171:3a7713b1edbc 7 #if defined ( __CC_ARM )
AnnaBridge 171:3a7713b1edbc 8 static __ASM void __INLINE nrf_delay_us(uint32_t volatile number_of_us)
AnnaBridge 171:3a7713b1edbc 9 {
AnnaBridge 171:3a7713b1edbc 10 loop
AnnaBridge 171:3a7713b1edbc 11 SUBS R0, R0, #1
AnnaBridge 171:3a7713b1edbc 12 NOP
AnnaBridge 171:3a7713b1edbc 13 NOP
AnnaBridge 171:3a7713b1edbc 14 NOP
AnnaBridge 171:3a7713b1edbc 15 NOP
AnnaBridge 171:3a7713b1edbc 16 NOP
AnnaBridge 171:3a7713b1edbc 17 NOP
AnnaBridge 171:3a7713b1edbc 18 NOP
AnnaBridge 171:3a7713b1edbc 19 NOP
AnnaBridge 171:3a7713b1edbc 20 NOP
AnnaBridge 171:3a7713b1edbc 21 NOP
AnnaBridge 171:3a7713b1edbc 22 NOP
AnnaBridge 171:3a7713b1edbc 23 NOP
AnnaBridge 171:3a7713b1edbc 24 BNE loop
AnnaBridge 171:3a7713b1edbc 25 BX LR
AnnaBridge 171:3a7713b1edbc 26 }
AnnaBridge 171:3a7713b1edbc 27 #elif defined ( __ICCARM__ )
AnnaBridge 171:3a7713b1edbc 28 static void __INLINE nrf_delay_us(uint32_t volatile number_of_us)
AnnaBridge 171:3a7713b1edbc 29 {
AnnaBridge 171:3a7713b1edbc 30 __ASM (
AnnaBridge 171:3a7713b1edbc 31 "loop:\n\t"
AnnaBridge 171:3a7713b1edbc 32 " SUBS R0, R0, #1\n\t"
AnnaBridge 171:3a7713b1edbc 33 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 34 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 35 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 36 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 37 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 38 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 39 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 40 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 41 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 42 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 43 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 44 " NOP\n\t"
AnnaBridge 171:3a7713b1edbc 45 " BNE loop\n\t");
AnnaBridge 171:3a7713b1edbc 46 }
AnnaBridge 171:3a7713b1edbc 47 #elif defined ( __GNUC__ )
AnnaBridge 171:3a7713b1edbc 48 static __INLINE void nrf_delay_us(uint32_t volatile number_of_us)
AnnaBridge 171:3a7713b1edbc 49 {
AnnaBridge 171:3a7713b1edbc 50 do
AnnaBridge 171:3a7713b1edbc 51 {
AnnaBridge 171:3a7713b1edbc 52 __ASM volatile (
AnnaBridge 171:3a7713b1edbc 53 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 54 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 55 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 56 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 57 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 58 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 59 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 60 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 61 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 62 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 63 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 64 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 65 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 66 "NOP\n\t"
AnnaBridge 171:3a7713b1edbc 67 );
AnnaBridge 171:3a7713b1edbc 68 } while (--number_of_us);
AnnaBridge 171:3a7713b1edbc 69 }
AnnaBridge 171:3a7713b1edbc 70 #endif
AnnaBridge 171:3a7713b1edbc 71
AnnaBridge 171:3a7713b1edbc 72 void nrf_delay_ms(uint32_t volatile number_of_ms);
AnnaBridge 171:3a7713b1edbc 73
AnnaBridge 171:3a7713b1edbc 74 #endif