#include"header.h"
void setup() {
  // put your setup code here, to run once:
  init_port();
}

void loop() {
  // put your main code here, to run repeatedly:

  char x;
   //volatile 
  volatile long i,j,k;
  


  //1. Glow LSB LED only (bit 0)
   //output(0x01);

  //2. Glow MSB LED only (bit 7)
   //output(0x80);
   //output(0b11111111);
   //output(0b00000011);
   //output(0x03);
   //output(0xC0);

   //output(0b00000111);
  //output(0x07);


  //output(0b11110000);
 // output(0xf0);


 //output(0b11111111);
 // output(0xff);


  //output(0b01010101);
  //output(0x55);


  //output(0b10101010);
 // output(0xAA);


  //output(0b10011010);
  //output(0x9A);


  /*for(i = 0; i<=100000; ++i);
  output(0x00);

   for(i = 0; i<=100000; ++i);
  output(0x01);*/


  /*12. Blink all the 8 LEDs (with delay)
  for(i = 0; i<=100000; ++i);
  output(0x00);

   for(i = 0; i<=100000; ++i);
  output(0xff); */


  /*3. Glow the LEDs one by one (Do not off the LED)

  for(i = 1; i<=256; i++)
  {

    output(i);
    for(j = 0; j<=100000; ++j);
    i = i * 2 ;
     
  } */
  
  /*14. Glow the LEDs one by one(at a time one LED should glow)

   for(i = 0; i<=8; i++)
  {

    output(1<<i);
    for(j = 0; j<=100000; ++j);
     
  } */

  //15. Glow the EVEN LEDs one by one (Do not off the LED)

   
 // for(i = 1; i<=8; i++)
  
  
    //  if((i%2)== 0){
      // output(1<<i-1);
      // for(j = 0; j<=1000000; ++j);
     // }  
       
        /*output(2);
         for(j = 0; j<=1000000; ++j);
        output(10);
         for(j = 0; j<=1000000; ++j);
        output(42);
         for(j = 0; j<=1000000; ++j);
        output(170);
         for(j = 0; j<=1000000; ++j); */



     /* 0 1 2 3 4 5 6 7 
      0 1 0 0 0 0 0 0  ===> 2 
      0 1 0 1 0 0 0 0  ===> 10
      0 1 0 1 0 1 0 0  ===> 42
      0 1 0 1 0 1 0 1  ===> 170 */

      /*2   10      42     170
         8    32     128   */


     /* for(i = 2; i<=256;  i = i+2){
         output(i);
        for(j = 0; j<=1000000; ++j);
            i = i * 4 ;
      }*/
       
       /* output(i=0x00);
         for(j = 0; j<=1000000; ++j);
        i = 2;
        while(i<=256){

          output(i);
          for(j = 0; j<=
          1000000; ++j);
           i = (i * 4) +  2;

        }*/


   /*   0 1 2 3 4 5 6 7 
      1 0 0 0 0 0 0 0  ===> 1
      1 0 1 0 0 0 0 0  ===> 5
      1 0 1 0 1 0 0 0  ===> 21
      1 0 1 0 1 0 1 0  ===> 85


        1  5  21  85
  
        4   16   64 */
       
        /*output(i=0x00);
         for(j = 0; j<=1000000; ++j);
        i = 1;
        while(i<=256){

          output(i);
          for(j = 0; j<=1000000; ++j);
           i = (i * 4) +  1;

        }
       
           i = 1;
          while(i<=15)
          {
          for(j = 0; j<=1000000; ++j);
            output(i);
            i = (i * 2) + 1;

          }*/
          /*volatile long led  = 0x00;
            i = 3;
            while(i>=0){

                led = led | (1<<i);
                for(j = 0; j<=100000; ++j);
                output(led);
                for(j = 0; j<=100000; ++j);
                i--;

            } */
          /* volatile long led;
            led = 0x00;
            i = 7;
            while(i>=0){

              led = led | (1<<i);
               for(j = 0; j<=100000; ++j);
                output(led);
                for(j = 0; j<=100000; ++j);

              i--;

            }
            i = 0;
            led = 0x00;
            while(i<=8){

              led = led | (1<<i);
               for(j = 0; j<=100000; ++j);
                output(led);
                for(j = 0; j<=100000; ++j);

              i++;

            } */

            /*i = 0;
            j = 4;
            k = 0;
            volatile long led = 0x00;
            //for(k = 0; k<1000000; k++);
            while(i<=3 && j<=7)
            {
                led = led | (1<<i) | (1<<j); ;
                //for(k = 0; k<1000000; k++);
                output(led);
                //output(0x00);
                for(k = 0; k<1000000; k++);
                i++;
                j++;
                //led = 0x00;
            }*/

         /*  i = 0;
     volatile  long led = 0x00;
     while(i<=7){
      
      led = led | (1<<i);
      output(led);
      for(j = 0; j<1000000; ++j);
      led = 0x00;
      i++;
     }
      i = i - 2;
      led = 0x00;
      while(i>=0){ 
      led = led | (1<<i);
      output(led);
      for(j = 0; j<1000000; ++j);
      led = 0x00;
      i--;
     }*/
      
      //without  turnoff the leds 

     /*i = 0;
     volatile  long led = 0x00;
     while(i<=7){
      
      led = led | (1<<i);
      output(led);
      for(j = 0; j<1000000; ++j);
      //led = 0x00;
      i++;
     }
      i = i - 2;
      led = 0x00;
      while(i>=0){ 
      led = led | (1<<i);
      output(led);
      for(j = 0; j<1000000; ++j);
      //led = 0x00;
      i--;
     }*/


           /* i = 3;
            j = 7;
            k = 0;
            volatile long led = 0x00;
            for(k = 0; k<1000000; k++);
            while(i>=0 && j>=4)
            {
                led = led | (1<<i) | (1<<j);
                //for(k = 0; k<1000000; k++);
                output(led);
                for(k = 0; k<1000000; k++);
                i--;
                j--;
                led = 0x00;


            } */


  /*volatile long led = 0x00;
  i = 0;
  while(i<=7){
     
    if( i == 1 )
    {
       // set i = 2;
       i = 2;
       for(j = 0 ; j<1000000; ++j);
       output(1<< i);
       i = 1;
    }
    else if( i == 2 )
    {
       // set i = 1;
       i = 1;
       for(j = 0 ; j<1000000; ++j);
       output(1<< i);
       i = 2;
    }
    else if( i == 5 )
    {
       // set i = 6;
       i = 6;
       for(j = 0 ; j<1000000; ++j);
       output(1<< i);
       i = 5;
    }
    else if( i == 6 )
    {
       // set i = 6;
       i = 5;
       for(j = 0 ; j<1000000; ++j);
       output(1<< i);
       i = 6;
    }
    else
    {
       for(j = 0 ; j<1000000; ++j);
       output(1<< i); 

    }
     
    i++;
  }*/

 /* i = 0;
  j = 1;
  k = 6;
   volatile long led = 0x00;
  while( k!= 0){

    for(i = 0 ; i<=1000000; ++i);
    led = led | (1<< j-1) | (1<<j);
    output(led);
    led = 0x00;
    j = j + k;
    k = k - 2;

  }*/

/*volatile char led = 0x00;
i = 4;
//volatile long k = 0;
while(k<=3)
{
  if(k == 0)
  {
    led = led | (1<<i) |(1<<i+1);
    for(j=0; j<1000000; ++j);
    output(led);
    k++;
    i= i - 2;
  }
  if(k == 1)
  {
    led = led | (1<<i) |(1<<i+1);
    for(j=0; j<1000000; ++j);
    output(led);
    k++;
    i= i + 4;
  }
   if(k == 2)
  {
    led = led | (1<<i) |(1<<i+1);
    for(j=0; j<1000000; ++j);
    output(led);
    k++;
    i= 0;
  }
   if(k == 3)
  {
    led = led | (1<<i) |(1<<i+1);
    for(j=0; j<1000000; ++j);
    output(led);
    k++;
    i= 0;
  }

}  */     

/*volatile long led = 0x00;
i = 0;
while(i<3){

if(i == 0){

  led = led | (1<<i) | (1<<i+1) | (1<<i+2);
  output(led);
  for(j = 0; j<=1000000; ++j);
  i++;
}
if(i == 1){

  led = led | (1<<i+4) | (1<<i+5) | (1<<i+6);
  output(led);
  for(j = 0; j<=1000000; ++j);
  i++;
}
if(i == 2){

  led = led | (1<<i+1) | (1<<i+2);
  output(led);
  for(j = 0; j<=1000000; ++j);
  led = 0x00;
  i++;
}


    output(led);
   for(j = 0; j<=1000000; ++j);



} */

volatile  long led = 0x00;
volatile long dela = 0x00;
i = 7;

while(i>=0){

 led = led |(1<<i);

output(led);
for(j = 0; j<1000000; ++j);

output(dela);
for(j = 0; j<100000; ++j);


i--;
}




} 








mega:SCL
mega:SDA
mega:AREF
mega:GND.1
mega:13
mega:12
mega:11
mega:10
mega:9
mega:8
mega:7
mega:6
mega:5
mega:4
mega:3
mega:2
mega:1
mega:0
mega:14
mega:15
mega:16
mega:17
mega:18
mega:19
mega:20
mega:21
mega:5V.1
mega:5V.2
mega:22
mega:23
mega:24
mega:25
mega:26
mega:27
mega:28
mega:29
mega:30
mega:31
mega:32
mega:33
mega:34
mega:35
mega:36
mega:37
mega:38
mega:39
mega:40
mega:41
mega:42
mega:43
mega:44
mega:45
mega:46
mega:47
mega:48
mega:49
mega:50
mega:51
mega:52
mega:53
mega:GND.4
mega:GND.5
mega:IOREF
mega:RESET
mega:3.3V
mega:5V
mega:GND.2
mega:GND.3
mega:VIN
mega:A0
mega:A1
mega:A2
mega:A3
mega:A4
mega:A5
mega:A6
mega:A7
mega:A8
mega:A9
mega:A10
mega:A11
mega:A12
mega:A13
mega:A14
mega:A15
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
led7:A
led7:C
led8:A
led8:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
r6:1
r6:2
r7:1
r7:2
r8:1
r8:2