打印

在线求解!!ARM 数组写的跑马灯的问题!

[复制链接]
2442|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimon|  楼主 | 2013-5-4 18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define rGPBCON (*(volatile unsigned*)0x56000010)
#define rGPBDAT (*(volatile unsinged*)0x56000014)
#define rGPBUP  (*(volatile unsigned*)0x56000018)

void delay(long z);
int main(void)
{
        rGPBCON=rGPBCON &=(~((3<<16)|(3<<14)|(3<<12)|(3<<10)|(3<<0)));
        rGPBCON |=((1<<16)|(1<<14)|(1<<12)|(1<<10));
        rGPBUP   =0x7ff;


    unsigned char led[]={0x7df,0x7bf,0x77f,0x6ff};
    unsigned int i;
        while(1)
        {
                for(i=0;i<4;i++)
                {
                        rGPBDAT=led[i];
                        delay(200000);
                }
        }
}

void delay(long z)
{
        while(z--);
}

程序如上,编译时3个错误,提示数组初始化那儿没法在下面的语句块中出现!求解!!!

相关帖子

沙发
shimon|  楼主 | 2013-5-4 18:20 | 只看该作者
晕 ,忘记给分了,头次发帖。。。。。

使用特权

评论回复
板凳
shimon|  楼主 | 2013-5-4 18:22 | 只看该作者
src\跑马灯5.C(13): error:  #268: declaration may not appear after executable statement in block

这是错误提示!有没有人啊!!!!

使用特权

评论回复
地板
我是祝大叔| | 2013-5-4 23:59 | 只看该作者
同为新人,顶一下。但是我也刚学不久,不知道是什么原因,希望有高手来帮你解决。

使用特权

评论回复
5
江枫渔火| | 2013-5-5 12:33 | 只看该作者
声明语句要放在代码块的最前面。
unsigned char led[]={0x7df,0x7bf,0x77f,0x6ff};
    unsigned int i;
这两句往往前面放看看。

使用特权

评论回复
6
weicz| | 2013-5-5 13:29 | 只看该作者
江枫渔火 发表于 2013-5-5 12:33
声明语句要放在代码块的最前面。
unsigned char led[]={0x7df,0x7bf,0x77f,0x6ff};
    unsigned int i;

正解

使用特权

评论回复
7
sweet_smile| | 2014-1-16 01:37 | 只看该作者
#define rGPBCON (*((volatile unsigned *)0x56000010))
#define rGPBDAT (*((volatile unsigned *)0x56000014))  // 你的unsigned 让我中了半天 呵呵
#define rGPBUP  (*((volatile unsigned *)0x56000018))

void delay(long z);

int main(void)
{       
                int i;
                unsigned int led[]={0x7DF, 0x7BF, 0x77F, 0x6FF}; // 确实要放在前面 unsigned char 最大到 0xFF ,芯片手册[0-10] 位, 不是[0-31]

                rGPBDAT |= (0xF<<5);

        rGPBCON &=(~((3<<16)|(3<<14)|(3<<12)|(3<<10)));
        rGPBCON |=((1<<16)|(1<<14)|(1<<12)|(1<<10));
        
                rGPBUP |=(0xF<<5);
               
        while(1)
        {
                               
                for(i=0; i<4; i++)
                {
                        rGPBDAT = led[i];
                        delay(500000);
                }
        }
}

void delay(long z)
{
        while(z--);
}
感谢楼上各位指点,我也是菜鸟~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝