Mercurial > ~darius > hgwebdir.cgi > stm32temp
view delay.c @ 30:435c6330896c
Set tv_usec in gettimeofday() by using the prescaler counter.
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Tue, 27 Nov 2012 13:19:11 +1030 |
parents | 891841f5f785 |
children | a38003b97de6 |
line wrap: on
line source
#include <stdint.h> #include "stm32f10x.h" #include "delay.h" /* Sleep for nCount usec * TDS1012 on 2.5usec/div shows... * 30usec = 29.60usec * 60usec = 59.20usec * * XXX: not sure disable IRQ stuff is working as I see occasional (small) extra delays */ void delay(uint32_t nCount) { __disable_irq(); for(; nCount != 0; nCount--) { #ifdef SYSCLK_FREQ_72MHz __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); __asm__("nop"); #else #error Unknown clock frequency #endif } __enable_irq(); }