view delay.c @ 28:7f8e5780024b

- Add depend target. - Switch to Homebrew toolchain
author Daniel O'Connor <darius@dons.net.au>
date Tue, 27 Nov 2012 13:16:47 +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();
}