#include <12F675.h>

#use delay(internal=4000000)

#FUSES INTRC_IO,NOWDT,NOCPD,NOPROTECT,NOMCLR,NOBROWNOUT

#byte TRISIO = 0x85
#byte GPIO = 0x05

#bit Q1 = GPIO.1
#bit Q2 = GPIO.0
#bit Q3 = GPIO.5
#bit Q4 = GPIO.4

int8  paso;

const int8 dato[32]=25,50,74,98,120,142,162,180,197,212,225,235,244,250,254,255,\
255,254,250,244,235,225,212,197,180,162,142,120,98,74,50,25;

//const int8 dato[32]=31,56,80,92,115,136,157,176,193,208,222,233,242,249,253,255,\
//255,253,249,242,233,222,208,193,176,157,136,115,92,80,56,31;



void main()
{

   TRISIO = 0b00000000;

      
    while(true)
    
      {
 
       
      for(paso=0; paso<32; paso++)
      
         {
            Q4=1;
            Q2=1;
 
            delay_us(dato[paso]);
            
            Q2=0;
            delay_us(262-dato[paso]);          
            Q4=0;
            
         }
 
                  
                  
       for(paso=0; paso<32; paso++)
      
         {
         
            Q1=1;
            Q3=1;
            
            delay_us(dato[paso]);
            
            Q3=0;
            delay_us(262-dato[paso]);            
            Q1=0;
            
         }
      
      }

}
