SPCE061A辅助开发工具- -| 回首页 | 2006年索引 | - -TMS320VC54XX的寄存器操作的头的模型

Nios II IDE中编程的延时子程序的问题及解决

关键词NIOS                                          

以往在写延时子程序时总是按单片机中的习惯,写两层循环:

void Delay(unsigned int t)
{
  unsigned int i,j;
  for( i = 0; i < 200; i ++ )
  { 
    for( j = 0; j < t; j ++ );
  }
}

这样写程序执行的时候好象根本不执行这段程序,不管延时再久,总是一下就过去,一点不占用时间,两层循环的方法不用在子程序中而直接用在主程序中也不行

后来用while循环的方法写的延时程序段可以放在主程序中,但不可以用在子程序中:

while(ti < t) {t ++;}

这个如果直接作为一个while循环语句出现在主程序里面,则可以起到延时的作用,但是如果把它放到Delay子程序中代替掉两层for循环,则仍然不起作用。

再后来使用单层的for循环,一切问题解决了。既可以单独使用,也可以使用在子程序中。

void Delay(volatile int t)
{
  static volatile int ti;
  for( ti = 0; ti < t; ti ++ );
}

【作者: mubo814】【访问统计:】【2006年03月2日 星期四 22:33】【 加入博采】【打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=4578658

博客手拉手

回复

- 评论人:雨点   2006-12-28 15:37:19   

小子,赫然发现你的博客
现在哪里混去了

验证码:   
评论内容: