4179|3

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

中断无法使用全局变量 [复制链接]

  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. }
复制代码


此帖出自51单片机论坛

最新回复

先看能不能进入定时器中断,不能进入就检查初始化,和使能操作。如果能进,就看AD的值是多少,和主循环中的值有什么区别。中断无法使用全局变量,是错误的。  详情 回复 发表于 2016-10-8 20:15
点赞 关注
 

回复
举报

732

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
你的程序的意思是根据读取的AD值控制脉冲频率是吧,不存在什么中断不能使用全局变量的问题,你的意思应该是程序运行没有效果,要么是AD读取没有读正确一直是一个固定的值,要么是定时器初始化错了,不过貌似定时器没错,你没说清楚爱莫能助啊
此帖出自51单片机论坛
 
个人签名亚里士缺德
 
 

回复

4008

帖子

0

TA的资源

版主

板凳
 
TH0=~AD>>8;
此帖出自51单片机论坛
 
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

4
 
先看能不能进入定时器中断,不能进入就检查初始化,和使能操作。如果能进,就看AD的值是多少,和主循环中的值有什么区别。中断无法使用全局变量,是错误的。
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表