|

楼主 |
发表于 2019-10-10 15:10:59
|
显示全部楼层
先抄一个sysTick() 1ms单位
unsigned int system_tick;
unsigned int wait_count;
//////////////// 定时器T0
//11.0592M (50ms 4C00, 5ms EE00, 1ms FC66, 0.5ms FE33, 0.2ms FF47, 0.1ms FFA3, 0.05ms FFD1, 0.01ms FFF6)
//22.1184M (50ms xxxx, 5ms DC00, 1ms F8CD, 0.5ms FC66, 0.2ms FE8F, 0.1ms FF48, 0.05ms FFA4, 0.01ms FFEE)
#define T0_TH0 0xFC
#define T0_TL0 0x66
void timer0_init(){
TMOD &= 0xf0; //定时器0,工作方式1
TMOD |= 0x01;
TH0 = T0_TH0;
TL0 = T0_TL0;
ET0=1; //开定时中断允许
TR0 = 1;//启动定时器0
EA=1; //开总中断
system_tick = 0;
wait_count = 0;
}
void timer0_interrupt(void) __interrupt 1
{
TH0 = T0_TH0; //必须重新赋值才能让定时器循环工作
TL0 = T0_TL0;
++system_tick;
wait_count--;
} |
|