裸跑函数声明问题
我自己写的蜂鸣器实验,其中初始化函数:AREA |DATA|,CODE,READONLY
ENTRY
ldr r13,=0x1000
IMPORT Main
b Main
END
主函数:
#define GPBCON (*(volatile unsigned *)0x56000010)
#define GPBDAT (*(volatile unsigned *)0x56000014)
#define GPBUP (*(volatile unsigned *)0x56000018)
void Main()
{
void Delay(unsigned int);
GPBUP=0XFFE; //使能上拉F3-6
GPBCON=0XFFFFFD; //将F3-6设为输出口
while(1)
{
GPBDAT=0xfff;
Delay(40);
GPBDAT=0xffe;
Delay(40);
}
}
void Delay(unsigned int x )
{
unsigned int i,j,k;
for(i=0;i<=x;i++)
for(j=0;j<=0xff;j++)
for(k=0;k<=0xff;k++);
}
本人用JTAG在线调试,如果把void Delay(unsigned int);声明语句放在Main函数里面,就能正常听到蜂鸣器声音,如果把它放到Main函数外面,就不能正常工作了,这是为什么呢?还有就是把延时函数全部放在Main函数前面不是就不用声明了吗,为什么那样也不能正常运行?
页:
[1]