×
嵌入式 > 技术百科 > 详情

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

发布时间:2020-06-09 发布时间:
|

    今天调出来了跑马灯用数组和指针实现。
    之前出现过几个问题:
    程序描述:s3c2440addr.h中定义了LED1_ON,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++;


  //}
 }
}

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
iPhone将是质的飞跃:苹果A14处理器+高通X55基带