今天調(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++;
//}
}
}