3960|6

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

再问点阵模块乱点 [复制链接]


   前几天问了点阵的这个问题:
   [url=http://topic.eeworld.net/u/20100609/12/541ac056-8c07-41ce-997b-7ecb02ee281a.html][/url]
   问题还没得到解决,刚才终于发现了一个模拟,数据接收我改为定时器中断:

  1.   void time0() interrupt 1   //外中断0入口服务程序
  2. {
  3.     TH0=0xFF;  // 20ms
  4.     TL0=0xaf;

  5.     _nop_();
  6.     _nop_();
  7.     _nop_();
  8.     _nop_();
  9. }
复制代码


   循环动态显示。在while(1)里面。
   由于定时中断与数据接收的外部中断频率较为吻合,果然又出现了乱点(并且乱的程度与上电时间成正比)。
   现在已经彻底排除了硬件问题的可能。
   还望大家讨论讨论,中断函数究竟对ram区有什么影响。

最新回复

真的是莫名其妙的错误,看上去让你感觉还像高深的错误,一直困扰了很久。小心再小心,查bug真的很痛苦。  详情 回复 发表于 2010-6-18 13:34
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
对堆栈会有所影响,毕竟要压栈,保护现场。但是,对于静态存储区,估计没什么影响吧。
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这里涉及几个方面的知识:
1. 全局变量和静态数据放在静态存储区,生命周期为从申请到程序退出。因此局部变量若定义为static,则存储在静态存储区,否则存储在函数的栈内,生命周期为本函数内。(如果中断,那么这个变量生命周期就结束了?)
2. 全局变量和局部变量的作用域,全局变量为从申请到整个程序结束,局部变量为从申请到本{}范围内。
3. 局部变量对全局变量的屏蔽。若在本函数内定义的变量与全局变量同名,则将全局变量屏蔽,使用时为内部定义的局部变量。
4. 定义为static类型的局部变量,再次进入该函数,可以使用保留的结果。
 
 
 

回复

94

帖子

0

TA的资源

一粒金砂(初级)

4
 
 这种问题把全局变量都改为 static  局部变量是解决办法么?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
  问题解决了,终于解决了,但是只是一个memset(buff, 0,10)的问题,怎么都不会想到这里啊。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
恭喜呀,有时候把=写成==也会出莫名其妙的问题!
我们还是要仔细呀!
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 galle 的回复:

恭喜呀,有时候把=写成==也会出莫名其妙的问题!
我们还是要仔细呀!

真的是莫名其妙的错误,看上去让你感觉还像高深的错误,一直困扰了很久。小心再小心,查bug真的很痛苦。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表