赛元单片机SC92F7250定时器 问题:一下程序定时是准确的1s ,而不是500ms,难道赛元比传统的真快2倍!!!
先是keil 的设置:如图:
下面是定时器程序,主循环空
/*****************************************************
*函数名称:void Timer_Init(void)
*函数功能:T0/T1/T2初始化
*入口参数:void
*出口参数:void
*****************************************************/
void Timer_Init(void)
{
TMCON = 0X07; //------111 ;Timer0、Tiemr1和Tiemr2选择时钟Fsys
//T0设置
TMOD |= 0x01; //0000 0001;Timer0设置工作方式1(16位定时/计数器模式)
TH0 =(65536 - 12000)/256;
TL0 =(65536 - 12000)%256; //溢出时间:时钟为Fsys,则12000*(1/Fsys)=1ms;
ET0 = 1;//定时器0允许
TR0 = 1;//打开定时器0
}
/**************************************************
*函数名称:void timer0/1/2() interrupt 1/3/5
*函数功能:定时器中断产生方波
*入口参数:void
*出口参数:void
**************************************************/
void timer0() interrupt 1
{
static unsigned int t;
TH0 =(65536 - 12000)/256;
TL0 =(65536 - 12000)%256;
t++;
if(t==500)
{
t=0;
P26=~P26;
}
}
|