这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 请教定时器T0的问题

共3条 1/1 1 跳转至

请教定时器T0的问题

助工
2008-04-09 08:31:21     打赏

打算用定时器T0实现控制数码管每隔一秒钟减少1, 可是在keil里面全速运行一个程序却没有反应,但是单步运行的话观察变量的变化倒是看到各个变量在变化...不知道是为何,请各位帮忙了...另外..我用的是Proteus+keil来调试的....

小弟谢过了先^_^

void IT0_Init(void)//初始化中断寄存器等
{
 TMOD=0x01;
 TH0=0x3C;
 TL0=0xAF;
 ET0=1;
 EA=1;
 TF0=0;
 TR0=1;
}

void Timer0_Overflow() interrupt 1 using 2
{
 static unsigned char second=20;//用中断20次来计时一秒钟
 TH0=0x3C;
 TL0=0xAF;
 second--;
 intrCounter--;//这个总中断的次数
 if (second==0)
 {
  MAX7219_DisplayChar(DIG_1,code_table[Num--]);//Num是个全局变量,记录的是开始显示的数字,这里用的是MAX7219来控制的数码管, 这个函数应该没有问题的...
  second=20;
 }
 if (intrCounter==0)//完成总中断次数后中断停止..
 {
  TR0=0;
  }
}

另外, 请问一下是不是因为我中断用的寄存器组与主程序默认的寄存器有冲突呀??(可是我从using 0到using 3都试过了还是不行)

谢谢各位帮忙了^_^




关键词: 请教     定时器     问题    

工程师
2008-04-09 16:06:05     打赏
2楼
您说把静态变量初始化放在主程序上, 可我的这个变量是内部静态变量呀,在外面可以初始化么??

工程师
2008-04-09 16:06:10     打赏
3楼

是不是程序的其它模块有问题?
把SECOND的初值该小调试下试试如何?我有点不明白为什么在子函数里面设置一个静态变量。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]