int1 funcionando;
int8 i=0,j=0;
int8 val_portb[8]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};
int8 varl_porta[2]={0x02,0x03};
void detener();
void main(){
trisa=0b01100;
trisb=0x00;
porta=0x00;
portb=0x00;
while(1)
{
if(on==0 && stop ==1) // COndicion para que no arranque cuando no deberia
{
funcionando=1; // Esto es un flag de un solo bit nomas
}
if(funcionando==0) // Se presiono start y se da inicio
{
if(j<=7) { portb=val_portb[j];} // Me fijo si ya complete lo del portb, estan los primeros 8 valores ? y paso al porta
else { porta=val_porta[j-8]; }
j++; //Aca incremento para saber cuantos valores pasaron
for(i=0;i<20;i++) //Espera
{
delay_ms(250);
if(stop==0) // En caso que tenga que detenerse
detener();
}
if (j==10) { j=0; porta=0;} // En caso que ya pasaron TODOS los datos limpio y comienzo de nuevo
// No limpio portb ya que en unos microsegundos se va a asignar el nuevo valor
}
}
}
void detener()
{
porta=0x00;
portb=0x00;
j=0;
funcionando=0;
}