登陆|注册|搜索|最近新帖
发帖子|共享我的资料|精华帖子|热门话题
导航: 老古开发网老古论坛首页单片机程序设计ARM技术嵌入式系统另类其他文件交流售后服务广告区域
→[求助]为什么运行到这一行会死循环?[chirunfly]

  [浏览上一篇主题]:[公告] 求购IS61WV20488BLL-10MIL/ML
  [浏览下一篇主题]:各位大侠请帮小弟看看这是什么型号的元件


 [ 索引]* 贴子主题:第14520篇: [求助]为什么运行到这一行会死循环?

  

楼 主:作者:chirunfly  文章:2发帖时间:2008年1月25日21:10
 [求助]为什么运行到这一行会死循环?
/*---------------------------------------------------------------
功能:让单片机P2_7脚连续输出从50Hz到600Hz的频率,间隔频率为10Hz
芯片:AT89S52
晶振:12MHz
日期:2008年1月24日
---------------------------------------------------------------*/
#include   <REGX52.H>  

long int timer_initial_value;
float i = 0;

void timer_0(void) interrupt 1 using 0 { 
 TH0 = timer_initial_value / 256;
 TL0 = timer_initial_value % 256;

 P2_7 = ~P2_7;
}

long int timerInitialvalue(void) {     /* 初值计算 */ 
 long int initial_value_0;

 if(i   < 600) {
  i = i + 10;
  initial_value_0 = 65536 - 1 / i / 2 * 1000000;             //当i值为350的时候会死循环
  return(initial_value_0);
 }
}

void main(void) {
 EA = 1;  /* 总中断允许 */
 ET0 = 1; /* 定时器0中断允许 */ 

 TMOD = 0x01; /* 设置工作方式。TMOD工作方式寄存器,TCON控制寄存器 */
 TCON = 0x00;

 while(1) {
  unsigned int j = 10000;

  timer_initial_value = timerInitialvalue();
 
  TH0 = timer_initial_value / 256;   /* 装入初值 */
  TL0 = timer_initial_value % 256;
 
  TR0 = 1; /* 启动定时器 */
 
  while(j) {
   j--;
   if(j == 0) TR0 = 0;
  }
 }
}



[详细内容]

  

2楼:作者:chirunfly  文章:2发帖时间:2008年1月26日19:29
 为什么没反应?
为什么没反应?
[详细内容]

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]





老古开发网 asp.Net V2.0 设计:老古 2006年8月 执行时间:31毫秒 最大:1172毫秒 查询数据库8次 2008-10-11 19:18:11