天嵌 ARM开发社区

 找回密码
 注册
查看: 1759|回复: 0

裸跑函数声明问题

[复制链接]
fengel_锋 发表于 2011-8-23 10:20:34 | 显示全部楼层 |阅读模式
我自己写的蜂鸣器实验,其中初始化函数:
        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函数前面不是就不用声明了吗,为什么那样也不能正常运行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 14:43 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表