打印
[AVR单片机]

ICCAVR 编译后程序不正常..见内..

[复制链接]
2095|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

粉丝