#define SYSCLK_FREQUENCY 40000000 //* 200MHz,修改成你自己的系统时钟
#define PBCLK7_FREQUENCY SYSCLK_FREQUENCY
#define CORE_TIMER_FREQUENCY (PBCLK7_FREQUENCY / 2)
#define CORE_TIMER_MILLISECONDS (CORE_TIMER_FREQUENCY / 100)
#define CORE_TIMER_MICROSECONDS (CORE_TIMER_FREQUENCY / 10000)
unsigned int __attribute__((nomips16)) ReadCoreTimer(void)
{
unsigned int timer;
asm volatile("mfc0 %0, $9" : "=r"(timer));
return timer;
}
void delay_us(unsigned int delayUs)
{
unsigned int delayStart;
delayStart = ReadCoreTimer();
while ((ReadCoreTimer() - delayStart) < (delayUs * CORE_TIMER_MICROSECONDS));
}
void delay_ms(unsigned int delayUs)
{
unsigned int delayStart;
delayStart = ReadCoreTimer();
while ((ReadCoreTimer() - delayStart) < (delayUs * CORE_TIMER_MILLISECONDS));
}
|