导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]为什么运行到这一行会死循环?

* 20852: [求助]为什么运行到这一行会死循环?

   chirunfly 
chirunfly发表的帖子 

 [求助]为什么运行到这一行会死循环?
/*---------------------------------------------------------------
功能:让单片机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;
  }
 }
}




发表时间:2008年1月25日21:10:51

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  21079.[详细]为什么没反应?
摘要:为什么没反应?......(14字)
- [chirunfly][856次] 2008年1月26日

[上一篇帖子]:[原创]顶
[下一篇帖子]:sdfsafsafasd谁说说?