中断无法使用全局变量

2019-03-24 17:29发布

  1. unsigned int  AD=500;
  2. /*定时器初始化*/
  3. void init()
  4. {
  5.         TMOD=0x01;
  6.         TH0=(65536-60000)/256;
  7.         TL0=(65536-60000)%256;
  8.         EA=1;
  9.         ET0=1
  10.         TR0=1;
  11. }
  12. void main()
  13. {
  14.         init();
  15.         while(1)
  16.         {
  17.                 AD=ReadAD1();//读取AD数据
  18.         }       
  19. }         
  20. void time() interrupt 1
  21. {       
  22.         TH0=(65536-AD)/256;  //此处无法使用
  23.         TL0=(65536-AD)%256;
  24.         CLK1=~CLK1;
  25. }
复制代码

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
汤权
1楼-- · 2019-03-24 23:41
你的程序的意思是根据读取的AD值控制脉冲频率是吧,不存在什么中断不能使用全局变量的问题,你的意思应该是程序运行没有效果,要么是AD读取没有读正确一直是一个固定的值,要么是定时器初始化错了,不过貌似定时器没错,你没说清楚爱莫能助啊
Li_Lei
2楼-- · 2019-03-25 03:38
 精彩回答 2  元偷偷看……
ienglgge
3楼-- · 2019-03-25 07:02
先看能不能进入定时器中断,不能进入就检查初始化,和使能操作。如果能进,就看AD的值是多少,和主循环中的值有什么区别。中断无法使用全局变量,是错误的。

一周热门 更多>