#define PORTA_DDR (*(volatile char*)0x21)
#define PORTA_DATA (*(volatile char*)0x22)
#define PORTC_DDR (*(volatile char*)0x27)
#define PORTC_DATA (*(volatile char*)0x28)
#define PORTC_PIN (*(volatile char*)0x26)
int main()
{
volatile long i;
char led=0x01;
char direction=1;
PORTA_DDR=0xFF;
PORTC_DDR=0x00;
PORTC_DATA=0x01;
while(1)
{
PORTA_DATA=led;
if((PORTC_PIN&0x01)==0)
{
for(i=0;i<400000;i++){}
if((PORTC_PIN&0x01)==0)
{
direction=!direction;
while((PORTC_PIN&0x01)==0){}
}
}
if(direction==1)
{
led=led<<1;
if(led==0x00)
led=0x01;
}
else
{
if(led == 0x01)
led = 0x80;
else
led = led >> 1;
}
for(i=0;i<400000;i++){}
}
}