shower.xu 发表于 2017-11-6 21:28
去数编译后汇编的指令周期,或者在前后翻转引脚,用示波器测。
为什么不用定时器生成
TIM_INIT()初始化就设置用了定时器0。并且在timer.c中写了
unsigned int gTimer1_Delay=0;
void TIMER1_Decrement(void)
{
if(gTimer1_Delay != 0x00)
{
gTimer1_Delay--;
}
}
void Delay100uS(unsigned int time_us)
{
gTimer1_Delay =time_us;
while(gTimer1_Delay!=0);
}
然后在中断里清标志,
/*
* 定时器0中断函数,100us @ fsys=8M
*/
void __attribute((interrupt(0x0C))) Time0(void)
{
/****
f_100us_count++;
if(f_100us_count>10)
{
f_100us_count=0;
f_1ms_count =1;
}
*****/
TIMER1_Decrement();
_t0af = 0;// 清中断请求标志位
}
但是Delay100uS()延时有问题