3552|18

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助:急:c 编程 [复制链接]

void main()
{  

    P1M1=0x00;
    P1M2=0x00;
    P3M1=0x00;
    P3M2=0x00;



Send_ADFReg(Initialization_Value);  
  Send_ADFReg(Function_Value);  
  Send_ADFReg(RCounter_Value);  
  Send_ADFReg(NCounter_Value);  


}

这是我程序的主程序,主函数应该只执行一次,程序中每个子函数也都只调用了一次,可是测得的结果是主函数不停的循环,请问这是什么原因呢?
我用的编译软件是Keil51.
另外,我在主函数外加过exit();——其头文件是#include "stdlib.h",可是没有见效。
请高人指点,谢谢!

最新回复

大清早起来回帖  详情 回复 发表于 2008-7-7 07:45
点赞 关注

回复
举报

61

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
你在主程序里加几条
unsigned int counter=0;
counter++;
看这个counter会不会加上去
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
后面加上while(1);
或者for(;;);
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
后面加个 while(1);   让它停到这里
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
单片机把程序区都走了一遍,除了你的代码外,还把没有代码的区域也执行了,不过那些区域是NOP

咱感觉不出来

然后溢出后,又重新来了

所以咱看到的是循环

 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
可以设置中断
Send_ADFReg(NCounter_Value); 有问题............
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
while(1)
{
}
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

8
 
在程序后加上:
while(1);
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 
***************************************************************************

思想决定行动,行动决定习惯,习惯决定命运.
程序员在深圳QQ群,交流产生思想碰撞.

部份专业群:
程序员在深圳c++群15195967
程序员在深圳英语学习群:23864353
程序员在深圳c++Ⅱ17409451
程序员在深圳嵌入式开发群37489763
程序员在深圳移动开发群31501597
程序员在深圳创业群33653422

部份高级程序员群:
高级群I:17538442
高级群II:7120862

部份初、中级程序员群:
第三群:2650485
第五群:29537639
第四群:28702746
第六群:10590618
第七群:10543585
第八群:12006492
第九群:19063074
第十群:2883885
第十一群:25460595
第十二群:9663807

深圳程序员QQ群联盟成立三年多,拥有三十个以上的QQ群,人数超二千多人,大量经验丰富的老手,成员从业于大公司(如微软、IBM,SUN,华为

)、来自国内著名高校和研究院成员,和有丰富实践经验的高级程序员、系统分析员(包括参加过上亿元的项目的架构师),有很热爱技术的成员

(包括自己写操作系统),还有少数女程序员。推荐:深程高级群I:17538442 深程高级群II:7120862 (深程高级群不欢迎新手,如果在深圳,月薪

6K以下的别加入) c++:15195967  mobile:31501597嵌入式:37489763  
——————————————————————————————————————————
如果你不是第一次看到此广告,说明我们最近T了一些人,因为我们要不断提升群的质量,保证名副其实.
-------------------------------------------------------------------------------------
在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
      1. 通读手册,试着自己找答案。
      2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。
      3. 在网上搜索(个人推荐google~)。
      4. 向你身边精于此道的朋友打听。
我想我们首先应该靠自己解决问题,然后才是问!

*****************************************************************************
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

10
 
应该不是真的循环,而是溢出,重新从头执行了。设置一个全局变量,看看每次在LCD上显示是从0开始,还是持续累加,就能判断了。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

11
 
楼上各位辛苦了,谢谢大家啊!
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 9 楼 shuiyan 的回复:
应该不是真的循环,而是溢出,重新从头执行了。设置一个全局变量,看看每次在LCD上显示是从0开始,还是持续累加,就能判断了。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

13
 
通过Keil的逐步调试+断点功能马上就可以查到原因,检查你的看门狗启用了没有???
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

14
 
估计应该是看门狗没有设置好,自动重启
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

15
 
程序跑完后溢出
四楼正解
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

16
 
楼上正确
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

17
 
支持while(1){}
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

18
 
我以前也犯过这个错误,貌似初学者都会犯这个错误,单片机里简单的C程序执行完了之后不停地加载,要是有操作系统就可以解决这些问题了。
我推荐一本书:《Embedded C》Michael J.Point 写的,陈继辉翻译,中国电力出版社出版,讲51的C编程很好。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

19
 
大清早起来回帖
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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