Accendere Led in sequenza

12 Anni 7 Mesi fa #1 da Lello Guidi
Accendere Led in sequenza è stato creato da Lello Guidi
Salve, volevo accendere i led in sequenza sulla Freedom II con questo programma, ma mi rimane acceso solo il led0.
Non da nessun errore di compilazione.
Come micro uso il 16F877A e il listato e' questo:

#define _LEGACY_HEADERS
#include <htc.h>
#define XTAL_FREQ 20MHZ // questo è utilizzato dalle routine di ritardo contenute in Delay.C
#include "delay.c" // routine per ritardi

// Fuses di configurazione
__CONFIG (HS & WDTDIS & PWRTEN & BORDIS & LVPDIS & DUNPROT & WRTEN & DEBUGDIS & UNPROTECT);

//#define LED(a) PORTD=1<<(a) //in alternativa al define seguente

#define LED(a) PORTD=2^(a)

// funzione principale
void main(void)
{
CMCON=0b00000111; // Disabilito i comparatori e i convertitori
PORTD=0b00000000; // Setto porte D a livello basso
TRISD=0b00000000; // Imposto i registri tristato come uscite
char a=0;

while(1) // eseguo un ciclo finito
{
PORTD=1;
DelayMs(100);
for (a=0; a>7; a++)
{
LED(a); // shift a sinistra di una posizione
DelayMs(250);
}
}
} // Fine main

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
12 Anni 7 Mesi fa #2 da Lello Guidi
Risposta da Lello Guidi al topic Re: Accendere Led in sequenza
E' bastato cambiare il ciclo del "for", su consiglio di un "Amico", in questo modo e il tutto funziona:

for(a=0;a<8;a++)

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
12 Anni 7 Mesi fa #3 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Accendere Led in sequenza
...mi ero perso il Thread,
In questi giorni ero fuori e ho letto alcuni messaggi con il cellulare dimenticando di mettere il Tag...

In effetti il ciclo for che avevi fatto e' errato.

Guarda il testo C18 Step by Step in particolare il capitolo dedicato al ciclo if.
in particolare e' eseguito solo la prima volta poi il test interno e' FALSE ed esce.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 7 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Accendere Led in sequenza
...smentita...
avevo messo il Tag...! :(

E' meglio se vado a letto!

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login