Winavr gcc 和studio 仿真问题

单个文件的仿真(用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 { PORTD<<= 1; } delay(); }}文件delay.c如下:void delay(void);void delay(void){ unsigned int i; i=0; for(;i<0xfff0;i++) { asm("NOP"); }}文件int.h如下:#include <avr/io.h>#include <avr/iom8.h> #include <delay.c>是因为外部文件的原因,还是还有什么属性没有设置?studio 可以里面也可以直接用C编程的,只是编译的时候用WINAVR GCC 是怎么操作的呢?麻烦大虾帮忙一下!·#¥
2026年09月25日 05:20
有1个网友回答
网友(1):

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