專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

嵌入式問題之(數(shù)組定義)

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月10日   【字體:

    今天調(diào)出來了跑馬燈用數(shù)組和指針實現(xiàn)。
    之前出現(xiàn)過幾個問題:
    程序描述:s3c2440addr.h中定義了LED1_ON,LED2_ON,LED3_ON和LED4_ON;將他們放入數(shù)組中這樣定義:unsigned char const arrange[]={LED1_ON,LED2_ON,LED3_ON,LED4_ON};然后調(diào)用數(shù)組中的值是,led第三和第四個等一直是亮的,沒有實現(xiàn)跑馬燈的效果,而且在數(shù)組處出現(xiàn)了警告。于是定義了一個指針,看看是數(shù)組出了問題還是函數(shù)體里出了問題;指針式這樣定義的,unsigned char *p,p=arrange;此時出現(xiàn)錯誤(原因是沒有const,因為定義數(shù)組時有一個const,將指針改成unsigned char const *p沒有錯誤依然是數(shù)組處有4個警告);后來發(fā)現(xiàn),我的LED1_ON等都是數(shù)字而數(shù)組定義的卻是字符,于是將數(shù)組定義為: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++;


  //}
 }
}
   

關(guān)閉窗口

相關(guān)文章