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

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

  
楼 主:chirunfly 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 2008年1月26日19:29
 为什么没反应?
为什么没反应?

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

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


[上一篇主题]:[公告] 求购IS61WV20488BLL-10MIL/ML

[下一篇主题]:各位大侠请帮小弟看看这是什么型号的元件