锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

嵌入式问题之(数组定义)

时间:2024-04-29 22:37:11

今天调出来了跑马灯用数组和指针实现。
之前出现过几个问题:
程序描述:s3c2440addr.h中定义了LED1_,LED2_ON,LED3_ON和LED4_ON;将他们放入数组中这样定义:unsigned char const arrange[]={LED1_ON,LED2_ON,LED3_ON,LED4_ON};然后调用数组中的值是,led第第四个等一直是亮的,没有实现跑马灯的效果,而且在数组处出现了警告。于是定义了一个指针,看看是数组出了问题还是函数体里出了问题;指针式这样定义的,unsigned char *p,p=arrange;此时出现错误(原因是没有const,因为定义数组时有一个const,将指针改成unsigned char const *p没有错误依然是数组处有4个警告);后来发现,我的LED1_ON等都是数字而数组定义的却是字符,于是将数组定义为:unsigned int arrange[]={LED1_ON,LED2_ON,LED3_ON,LED4_ON}4个警告消失,程序运行成功。
#include"s3c2440addr.h"
//unsigned char const arrange[]={LED1_ON,LED2_ON,LED3_ON,LED4_ON}; //这里的char用错了
//可以这样定义 unsigned int const arrange[]={LED1_ON,LED2_ON,LED3_ON,LED4_ON};
//但是指针就要这样定义:unsigned int const *p;
unsigned int arrange[]={LED1_ON,LED2_ON,LED3_ON,LED4_ON};
void delay(unsigned int x)
{
unsigned int i,y;
for(i=x;i>0;i--)
for(y=10000;y>0;y--);
}
void main()
{
int num;
unsigned int *p;
p=arrange;
GPBCON=0x1DD7FC;
while(1)
{
//for(num=0;num<4;num++)
//{
if(p==arrange+5)
{
p=arrange;
}
GPBDAT=*p;
delay(5000);
p++;


//}
}
}


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章