#define DELAY 1000000
void init_port();
void LED_EXERCISE_1();
void LED_EXERCISE_2();
void LED_EXERCISE_3();
void LED_EXERCISE_4();
void LED_EXERCISE_5();
void LED_EXERCISE_6();
void LED_EXERCISE_7();
void LED_EXERCISE_8();
void LED_EXERCISE_9();
void LED_EXERCISE_10();
void LED_EXERCISE_11();
void LED_EXERCISE_12();
void setup()
{
init_port();
LED_EXERCISE_1();
//LED_EXERCISE_2();
//LED_EXERCISE_3();
//LED_EXERCISE_4();
//LED_EXERCISE_5();
//LED_EXERCISE_6();
//LED_EXERCISE_7();
//LED_EXERCISE_8();
//LED_EXERCISE_9();
//LED_EXERCISE_10();
}
void init_port()
{
volatile char *direction_f;
direction_f = 0x30;
*direction_f = 0xFF;
}
void delay_for()
{
volatile unsigned long i;
for(i=0;i<DELAY;i++);
}
void writef(int x)
{
volatile char *out_f;
out_f = 0x31;
*out_f = x;
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_1() /**/
{
while(1)
{
unsigned char a = 0x88,i; //1000 1000
for(i=0;i<4;i++)
{
writef(a>>i);
delay_for();
}
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_2()
{
while(1)
{
char a = 0x11,i; //00010001; 00100010; 01000100;
for(i=0;i<4;i++)
{
writef(a<<i);
delay_for();
}
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_3() /**/
{
while(1)
{
unsigned char a = 0x80,i; //00010001; 00100010; 01000100;
for(i=0;i<8;i++)
{
writef(a>>i);
delay_for();
}
a = 0x01;
for(i=0;i<8;i++)
{
writef(a<<i);
delay_for();
}
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_4()
{ // 7654 3210;
// 01; 04; 02; 08; 10; 40; 20; 80;
writef(1); delay_for();
writef(4); delay_for();
writef(2); delay_for();
writef(8); delay_for();
writef(16); delay_for();
writef(64); delay_for();
writef(32); delay_for();
writef(128); delay_for();
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_5()
{
while(1)
{
writef(0x03); delay_for();
writef(0xc0); delay_for();
writef(0x0c); delay_for();
writef(0x30); delay_for();
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_6()
{
while(1)
{
writef(0x30); delay_for();
writef(0x0c); delay_for();
writef(0xc0); delay_for();
writef(0x03); delay_for();
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_7()
{
while(1)
{
writef(0x07); delay_for();
writef(0xe0); delay_for();
writef(0x18); delay_for();
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_8()
{
while(1)
{
writef(0x18); delay_for();
writef(0xe0); delay_for();
writef(0x07); delay_for();
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_9()
{
char a=0x01,i;
while(1){
writef(0x01); delay_for();
for(i=0;i<8;i++)
{
a = ((a<<1)+1);
writef(a);
delay_for();
}
}
}
//------------------------------------------------------------------------------------------
void LED_EXERCISE_10() /**/
{
unsigned char a=0x80,i;
while(1)
{
writef(a); delay_for();
for(i=0;i<8;i++)
{
a = ((a>>1)+0x80);
writef(a);
delay_for();
}
}
}
//------------------------------------------------------------------------------------------
void loop()
{
}