Pagina 1 di 1

accensione consecutiva con ciclo for pic184620

MessaggioInviato: 22 apr 2012, 17:40
da elettrokimbo
salve a tutti..dopo aver effettuato la visione delle uscite sui 4 led della scheda picdem2 plus con pic18f4620..vorrei snellire il lavoro adottando un ciclo for che mi permetta di accendere consecutivamente i led tipo knight rider..in effetti l'ho fatto,ma usando queste istruzioni un po dispersive..come potrei abbreviare il tutto ???
grazie

Codice: Seleziona tutto
#include <p18f4620.h>   
#include <delays.h>

const int a=40;

void main (void){








  LATB = 0x00;
  TRISB = 0x11110000; //imposto uscite i bit dei 4 led RB3,RB2,RB1,RB0


for (;;)
{


PORTBbits.RB0=1;
Delay10KTCYx(a); //Delay di 0,5s
PORTBbits.RB0=0;
Delay10KTCYx(a);

PORTBbits.RB1=1;
Delay10KTCYx(a); //Delay di 0,5s
PORTBbits.RB1=0;
Delay10KTCYx(a);

PORTBbits.RB2=1;
Delay10KTCYx(a); //Delay di 0,5s
PORTBbits.RB2=0;
Delay10KTCYx(a);

PORTBbits.RB3=1;
Delay10KTCYx(a); //Delay di 0,5s
PORTBbits.RB3=0;
Delay10KTCYx(a);

PORTBbits.RB2=1;
Delay10KTCYx(a);
PORTBbits.RB2=0;
Delay10KTCYx(a);

PORTBbits.RB1=1;
Delay10KTCYx(a); //Delay di 0,5s
PORTBbits.RB1=0;
Delay10KTCYx(a);
}         
                                   
while (1) {
}

}

Re: accensione consecutiva con ciclo for pic184620

MessaggioInviato: 23 apr 2012, 0:47
da TardoFreak
Uozz "knight rider" :-M

Re: accensione consecutiva con ciclo for pic184620

MessaggioInviato: 23 apr 2012, 0:47
da simo85
Devi usare una variabile di controllo per quando il valore di PORTB è 0x01 o 0xf0.. E poi fare lo shift a sinistra e destra..