level 9
#include "at91sam7s64.h" void delay(unsigned long int i)
{
for(;i>0;i--);
}
void main(void)
{
unsigned char i;
ledshow();
for(;;)
{
i=getkey();
if(i==0)
ledalloff();
else if(i==1)
ledon(1);
else if(i==2)
ledon(2);
else if(i==3)
ledon(3);
else if(i==4)
ledallon();
else
;
}
}
void ledshow(void)
{
ledrun();
delay(2000000);
ledalloff();
delay(2000000);
ledon(1);
delay(2000000);
ledon(2);
delay(2000000);
ledon(3);
delay(2000000);
ledoff(3);
delay(2000000);
ledoff(2);
delay(2000000);
ledoff(1);
delay(2000000);
ledallon();
delay(2000000);
ledalloff();
delay(2000000);
} void ledinit(void)
{
*AT91C_PMC_PCER=0x00000007;
*AT91C_PIOA_PER=0x00000007;
*AT91C_PIOA_OER=0x00000007;
}
void ledrun(void)
{
unsigned char i;
ledinit();
for(i=0;i<8;i++)
{
*AT91C_PIOA_SODR=i;
delay(500000);
*AT91C_PIOA_CODR=i;
delay(500000);
} }
void ledoff(unsigned char no)
{
ledinit();
if(no==1)
*AT91C_PIOA_SODR=0x00000001;
if(no==2)
*AT91C_PIOA_SODR=0x00000002;
if(no==3)
*AT91C_PIOA_SODR=0x00000004; }
void ledon(unsigned char no)
{
ledinit();
if(no==1)
*AT91C_PIOA_CODR=0x00000001;
if(no==2)
*AT91C_PIOA_CODR=0x00000002;
if(no==3)
*AT91C_PIOA_CODR=0x00000004; }
void ledalloff(void)
{
ledinit();
*AT91C_PIOA_SODR=0x00000007;
} void ledallon(void)
{
ledinit();
*AT91C_PIOA_CODR=0x00000007;
}
麻烦帮我看看这代码 为什么无限的循环有问题
2012年06月05日 03点06分
14