Winavr gcc 和studio 仿真问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 23:06:32
单个文件的仿真(用winavr作编辑器,studio作仿真器),我已经试过可以(指针可以跳到delay函数里)如图片程序指针(黄色)。

但是把单文件分开成两个文件之后,为什么?程序指针没有跳到delay(而是直接闪过,没有象单个文件一样可以单步执行)。
单个文件如下:
#include <avr/io.h>
#include <avr/iom8.h>
void delay(void);
int main(void)
{
DDRD=0xff; //PD口设为输出
PORTD=0x01; //PD口低电平

while(1)
{
if(PIND==0X80)
{
PORTD=0x01; //PA口设为输出高电平,灯灭
}
else
{
PORTD<<= 1;
}
delay();
}
}
void delay(void)
{
unsigned int i;
i=0;
for(;i<0xfff0;i++)
{
asm("NOP");
}
}

分开两个文件后如下:

文件main.c如下:
#include <int.h>
extern void delay(void);
int main(void)
{
DDRD=0xff; //PD口设为输出
PORTD=0x01; //PD口低电平

while(1)
{
if(PIND==0X80)
{
PORTD=0x01; //PA口设为输出高电平,灯灭
}
else
{

软件仿真,一般不用 只是给新手玩的 你去问一下,有几个用软件仿真的,我们工程师写上万行的汇编代码,都不用仿真的。 编程要严谨
studio 可以里面也可以直接用C编程的,只是编译的时候用WINAVR GCC