|  | 
 
| 我自己写的蜂鸣器实验,其中初始化函数: 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函数前面不是就不用声明了吗,为什么那样也不能正常运行?
 | 
 |