- Messaggi: 8
- Ringraziamenti ricevuti 0
PIC18F452 con libreria LCD44780
12 Anni 7 Mesi fa #1
da peperlizio
Fabrizio
PIC18F452 con libreria LCD44780 è stato creato da peperlizio
è la prima volta che scrivo in un forum
perdonate la forma e l'esposizione del problema
grandi complimenti (non ruffiani) a mauro laurenti per l'ottimo lavoro
premesso ciò
sto sviluppando su pic18F452 (il modulo EE01 con modem telit)
non riuscendo a far funzionare l'LCD ho provato un esempio base (lcd_esempio1)
utilizzo la porta C al posto della D; per difficoltà di connessioni ho rimappato nel seguente modo la libreria (lcd*.h):
#define LCD_DEFAULT
#define LCD_D0 LATCbits.LATC4
#define LCD_D1 LATCbits.LATC5
#define LCD_D2 LATCbits.LATC3
#define LCD_D3 LATCbits.LATC1
#define LCD_RS LATCbits.LATC0
#define LCD_E LATCbits.LATC2
#define LCD_RW LATEbits.LATE0 //(NON COLLEGATO)
#define LCD_LED LATEbits.LATE1 //(NON COLLEGATO)
ricompilato (credo) correttamente le librerie
quarzo 10MHz
quindi:
in main.c
OpenLCD (10);
in delay.c
unsigned char delay_quartz_frequency_value = 10;
risultato:
nell'LCD la pima riga è spenta, la seconda tutta accesa
non riesco a capire dove sbaglio
sicuramente per capire saranno necessarie altre informazioni
posso postare anche l'intero progetto...
grazie
perdonate la forma e l'esposizione del problema
grandi complimenti (non ruffiani) a mauro laurenti per l'ottimo lavoro
premesso ciò
sto sviluppando su pic18F452 (il modulo EE01 con modem telit)
non riuscendo a far funzionare l'LCD ho provato un esempio base (lcd_esempio1)
utilizzo la porta C al posto della D; per difficoltà di connessioni ho rimappato nel seguente modo la libreria (lcd*.h):
#define LCD_DEFAULT
#define LCD_D0 LATCbits.LATC4
#define LCD_D1 LATCbits.LATC5
#define LCD_D2 LATCbits.LATC3
#define LCD_D3 LATCbits.LATC1
#define LCD_RS LATCbits.LATC0
#define LCD_E LATCbits.LATC2
#define LCD_RW LATEbits.LATE0 //(NON COLLEGATO)
#define LCD_LED LATEbits.LATE1 //(NON COLLEGATO)
ricompilato (credo) correttamente le librerie
quarzo 10MHz
quindi:
in main.c
OpenLCD (10);
in delay.c
unsigned char delay_quartz_frequency_value = 10;
risultato:
nell'LCD la pima riga è spenta, la seconda tutta accesa
non riesco a capire dove sbaglio
sicuramente per capire saranno necessarie altre informazioni
posso postare anche l'intero progetto...
grazie
Fabrizio
Si prega Accedi o Crea un account a partecipare alla conversazione.
- peperlizio
- Autore della discussione
- New Member
Riduci
Di più
12 Anni 7 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC18F452 con libreria LCD44780
Ciao,
Qualche appunto.
La riga e' dovuta in generale a due motivi:
1) Il modulo LCD (controller) non e' inizializzato.
2) Il contrasto e' troppo alto.
Se e' la prima volta che usi un LCD ed hai un tuo hardware e software il primo motivo e' quello piu' probabile.
LCD se usato in modalita' a 4 bit deve usare i bit D4-D7 ovvero i bit D0-D3 non sono usati.
Puoi far riferimento allo schema elettrico di Freedom II per verificare i collegamenti.
Usando un PIC diverso dal PIC18F4550 per usare le librerie e' meglio usare solo i file .c e .h (senza usare il .lib).
In questo modo il sorgente verra' compilato direttamente per il tuo PIC.
Se fai uso di pin diversi per il collegamento del modulo LCD devi impostare i vari define.
Fra 2 settimane rilascio una nuova libreria LCD per I2C. Per tale ragione ho ritoccato leggermente le costanti nella libreria LCD. e corretto impostato meglio le direttive #if.
Per tale ragione ti consiglio di usare i nuovi file della libreria 2.3 che ho allegato.
Ricorda che devi anche includere la libreria delay.
La modifica che hai fatto relativamente al quarzo e' corretta.
Saluti,
Mauro
Qualche appunto.
La riga e' dovuta in generale a due motivi:
1) Il modulo LCD (controller) non e' inizializzato.
2) Il contrasto e' troppo alto.
Se e' la prima volta che usi un LCD ed hai un tuo hardware e software il primo motivo e' quello piu' probabile.
LCD se usato in modalita' a 4 bit deve usare i bit D4-D7 ovvero i bit D0-D3 non sono usati.
Puoi far riferimento allo schema elettrico di Freedom II per verificare i collegamenti.
Usando un PIC diverso dal PIC18F4550 per usare le librerie e' meglio usare solo i file .c e .h (senza usare il .lib).
In questo modo il sorgente verra' compilato direttamente per il tuo PIC.
Se fai uso di pin diversi per il collegamento del modulo LCD devi impostare i vari define.
Fra 2 settimane rilascio una nuova libreria LCD per I2C. Per tale ragione ho ritoccato leggermente le costanti nella libreria LCD. e corretto impostato meglio le direttive #if.
Per tale ragione ti consiglio di usare i nuovi file della libreria 2.3 che ho allegato.
Ricorda che devi anche includere la libreria delay.
La modifica che hai fatto relativamente al quarzo e' corretta.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
12 Anni 7 Mesi fa - 12 Anni 7 Mesi fa #3
da peperlizio
Fabrizio
Risposta da peperlizio al topic Re: PIC18F452 con libreria LCD44780
Risolto.
La palbebra cala ma il silenzio della notte aiuta...
Ho rifatto il progetto partendo da carta e matita.
Era un problema di connessioni (ecco perché non si inizializzava).
Quando ho adattato le define sul file .h ho interpretato il LCD_D0 come se avessi dovuto utilizzare i D0-D3 dell'Lcd invece del D4-D7.
Montando il freedom ho visto che usi i secondi quattro; confermato dal ds dell'hitachi.
Cmq,
colpa mia.
Grazie cmq per l'aiuto. Sempre prezioso.
Per quanto riguarda il ricompilare tutto il progetto con i sorgenti delle librerie invece di ricompilare le librerie...
Datemi un consiglio:
copio i file .c e .h (non i .lib) nella cartella del progetto;
faccio gli include dei .h;
non c'è bisogno di aggiungere la cartella del progetto ai path del progetto, giusto?
Ma così non ho problemi quando il sorgente della libreria dell'lcd (lcd44780.c) fa anche lui l'include del delay.h?
Grazie ancora.
La palbebra cala ma il silenzio della notte aiuta...
Ho rifatto il progetto partendo da carta e matita.
Era un problema di connessioni (ecco perché non si inizializzava).
Quando ho adattato le define sul file .h ho interpretato il LCD_D0 come se avessi dovuto utilizzare i D0-D3 dell'Lcd invece del D4-D7.
Montando il freedom ho visto che usi i secondi quattro; confermato dal ds dell'hitachi.
Cmq,
colpa mia.
Grazie cmq per l'aiuto. Sempre prezioso.
Per quanto riguarda il ricompilare tutto il progetto con i sorgenti delle librerie invece di ricompilare le librerie...
Datemi un consiglio:
copio i file .c e .h (non i .lib) nella cartella del progetto;
faccio gli include dei .h;
non c'è bisogno di aggiungere la cartella del progetto ai path del progetto, giusto?
Ma così non ho problemi quando il sorgente della libreria dell'lcd (lcd44780.c) fa anche lui l'include del delay.h?
Grazie ancora.
Fabrizio
Ultima Modifica 12 Anni 7 Mesi fa da peperlizio. Motivo: imprecisione
Si prega Accedi o Crea un account a partecipare alla conversazione.
- peperlizio
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 8
- Ringraziamenti ricevuti 0
12 Anni 7 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC18F452 con libreria LCD44780
Ciao,
per includere il file puoi usare semplicemente la direttiva include per ogni file, ma devi impostare i percorsi come spiegato nel testo C18 Step by Step.
In alternativa puoi anche includere i file nel progetto (Project Manager sulla sinistra) direttamente nelle cartelle "code file" e "include file".
Per il delay, includi anche delay.h e delay.c nello stesso modo.
Formalmente delay.h e' richiamato gia' da dalla libreria LCD ma includerlo due volte non cera problemi.
Includere due volte il file .c crea invece problemi di ridefinizioni.
Saluti,
Mauro
per includere il file puoi usare semplicemente la direttiva include per ogni file, ma devi impostare i percorsi come spiegato nel testo C18 Step by Step.
In alternativa puoi anche includere i file nel progetto (Project Manager sulla sinistra) direttamente nelle cartelle "code file" e "include file".
Per il delay, includi anche delay.h e delay.c nello stesso modo.
Formalmente delay.h e' richiamato gia' da dalla libreria LCD ma includerlo due volte non cera problemi.
Includere due volte il file .c crea invece problemi di ridefinizioni.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.