[AVR单片机] ICCAVR 编译后程序不正常..见内..

[复制链接]
2671|2
 楼主| newmankinds 发表于 2011-1-4 19:27 | 显示全部楼层 |阅读模式
[email=ATMEGA168@10M]ATMEGA168@10M[/email].编译后61%资源利用.部分程序失调了..
想通过下述程序发出一个小脉冲,然后一定延时后再发一个窄脉冲.可我调整asm("nop")
延时并没按NOP的多少变化.而是乱的.简单的讲,5个NOP是1US.10个NOP是6US???
也实验用FOR循环同样...不知道问题是资源不够还是堆栈问题.可以编译后无提示错误和警告...WHY?

void PulseOut(void)   
{
uchar ti;   
  
DRIVE_ON;         
for(ti=0;ti<5;ti++)     
asm("nop");
DRIVE_OFF;
//以下为延时指令.
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");   
   

DRIVE_ON;      
asm("nop");   
DRIVE_OFF;

}
xwj 发表于 2011-1-4 19:35 | 显示全部楼层
先把优化关掉试试
 楼主| newmankinds 发表于 2011-1-4 20:16 | 显示全部楼层
我也怕优化了..没开优化.
同样用下面也没变化.      
for(ti=0;ti<5;ti++)    //5,2,7,8都没规律性..
asm("nop");
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

99

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部