mhlz280112 发表于 2013-5-30 11:26:00

求教AVRStudio6怎么编译出HEX文件用Proteus仿真出不来结果ICCAVR...

今天写了一个很简单的程序如下:
#include <avr/io.h>

#define uint8 unsigned char

void delay(void)
{
      uint8 i;
      for(i=0;i<5000;i++);
}

int main(void)
{
    DDRA = 0XFF;//portA配置为输出
    PORTA=0XFF;//portA配置为输出高电平
    while(1)
    {
   
       PORTA=0xFE;
      delay();
      delay();
      delay();
         PORTA=0xFD;
         delay();
         delay();   
    }
    return 0;
}
用AS6编译出HEX文件 就只有第一个小灯常亮 而第二个小灯不亮这个是为什么? 然后用ICCAVR 改下头文件编译后下载到PROTEUS 却实现功能 这个是为什么??求指出原因 在线等!!!
不想用ICCAVR 感觉有人AVR Studio在用别的累赘!!!球高人出现

mhlz280112 发表于 2013-5-30 11:27:31

补充下是ATMEGA128芯片!!!

yklstudent 发表于 2013-5-30 20:55:03

uint8 i;
       for(i=0;i<5000;i++);
楼主不觉得这个有问题?

mhlz280112 发表于 2013-5-30 21:45:55

yklstudent 发表于 2013-5-30 20:55 static/image/common/back.gif
uint8 i;
       for(i=0;i

额求指教!!!!

一棵葱 发表于 2013-5-30 22:09:53

好吧!!如果我理解的没错的话,你这个应该uint8<=255吧!!

叶子疯 发表于 2013-5-30 22:40:04

1 .AVRstudio编译之前要设置一下你用的哪种型号的单片机,编译器才能选择正确的头文件,因为io.h里面是包含了很多不同型号片子的头文件的。你设置了吗?
2. for(i=0;i<5000;i++); 这个 i 一辈子都小于5000,陷入死循环了。因为 i 最大值为255。

二进制 发表于 2013-5-31 00:01:02

6楼正解

mhlz280112 发表于 2013-5-31 08:50:30

叶子疯 发表于 2013-5-30 22:40 static/image/common/back.gif
1 .AVRstudio编译之前要设置一下你用的哪种型号的单片机,编译器才能选择正确的头文件,因为io.h里面是包含 ...

囧 !!!!原来是这个问题受教了 唉脑子不好使了 我自己的65536~嘿嘿!{:sweat:}

mhlz280112 发表于 2013-5-31 08:51:01

yklstudent 发表于 2013-5-30 20:55 static/image/common/back.gif
uint8 i;
       for(i=0;i

额   原来是范围的问题!!这个问题好低级!!!囧死了!

djnxqc 发表于 2013-5-31 09:32:49

幸好不是延时函数被优化掉了
页: [1]
查看完整版本: 求教AVRStudio6怎么编译出HEX文件用Proteus仿真出不来结果ICCAVR...