资讯详情

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

今天调出来了跑马灯用数组和指针实现。 之前出现过几个问题: 程序描述: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百科大全!

锐单商城 - 一站式电子元器件采购平台