- Messaggi: 19
- Ringraziamenti ricevuti 0
librerie laurtec per diplay hd44780
- Raban
- Autore della discussione
- Nuovo Utente
Less
Di più
12 Anni 9 Mesi fa #1
da Raban
librerie laurtec per diplay hd44780 è stato creato da Raban
siccome la libreria funziona , volevo convertirla per un dspic30f4011 ...
In linea teorica basta solo cambiare gli header mettendo quello giusto per il pic in uso e ricompilare ?
In linea teorica basta solo cambiare gli header mettendo quello giusto per il pic in uso e ricompilare ?
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Raban
- Autore della discussione
- Nuovo Utente
Less
Di più
- Messaggi: 19
- Ringraziamenti ricevuti 0
12 Anni 9 Mesi fa - 12 Anni 9 Mesi fa #2
da Raban
Risposta da Raban al topic Re: librerie laurtec per diplay hd44780
Cerchiamo di andare piu' nel dettaglio ...
questo e' un estratto del sorgente di Laurenti
C30 non mi accetta le direttive const rom quindi ho corretto in :
Corretto ?
Il compilatore me lo compila e il codice gira , sul display pare tutto ok
questo e' un estratto del sorgente di Laurenti
Code:
//************************************************************
// WriteStringLCD Implementation
//************************************************************
void WriteStringLCD(const rom char *buffer) {
// Write data to LCD up to null
while(*buffer) {
// Write character to LCD
WriteCharLCD(*buffer);
// Increment buffer
buffer++;
}
}
C30 non mi accetta le direttive const rom quindi ho corretto in :
Code:
//************************************************************
// WriteStringLCD Implementation
//************************************************************
void WriteStringLCD( char *buffer) {
// Write data to LCD up to null
while(*buffer) {
// Write character to LCD
WriteCharLCD(*buffer);
// Increment buffer
buffer++;
}
}
Corretto ?
Il compilatore me lo compila e il codice gira , sul display pare tutto ok
Ultima Modifica 12 Anni 9 Mesi fa da Raban.
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Raban
- Autore della discussione
- Nuovo Utente
Less
Di più
- Messaggi: 19
- Ringraziamenti ricevuti 0
12 Anni 9 Mesi fa - 12 Anni 9 Mesi fa #3
da Raban
Risposta da Raban al topic Re: librerie laurtec per diplay hd44780
il problema invece sta nella seguente funzione :
Che serve a convertire un int in stringa ed a stampare la stringa .
Cosi' com'e' non ne vuole sapere di funzionare , non mi da errori di compilazione , pero' se la uso
mi manda a pallino il micro
Secondo me l'errore sta qua :
La notazione corretta non dovrebbe essere la seguente ?
Forse itoa non e' supportata dal c30 ?
Code:
//************************************************************
// WriteIntLCD Implementation
//************************************************************
void WriteIntLCD(int value, char number_of_digits){
// The array size is 5 plus end of string \0
unsigned char convertedInt [6];
// Index used to shift to the right the digit
char index;
// Integer is converted to string
itoa (value, (char*) convertedInt);
if (number_of_digits >0 ) {
convertedInt[number_of_digits] = '\0';
// Shift the digit to the right removing the empty one
while (!isdigit(convertedInt[number_of_digits-1])) {
for (index = number_of_digits-1; index > 0; index--){
convertedInt[index] = convertedInt[index-1];
convertedInt[index-1] = ' ';
}
}
}
WriteVarLCD (convertedInt);
}
Che serve a convertire un int in stringa ed a stampare la stringa .
Cosi' com'e' non ne vuole sapere di funzionare , non mi da errori di compilazione , pero' se la uso
mi manda a pallino il micro
Secondo me l'errore sta qua :
Code:
itoa (value, (char*) convertedInt);
Code:
itoa (value, (char *convertedInt), 10);
Ultima Modifica 12 Anni 9 Mesi fa da Raban.
Si prega Accesso o Crea un account a partecipare alla conversazione.
12 Anni 9 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: librerie laurtec per diplay hd44780
Cioa,
le librerie LCD sono quasi standard C ma richiedono qualche accorgimento.
L'header file e il nome delle porte devono essere cambiati in funzione del microcontrollore utilizzato sia esso Microchip che non.
l'area rom e' un altro punto. Scrivere nella memoria flash può variare da microcontrollore a microcontrollore.
La modifica che hai fatto ha in realtà trasformato il puntatore in un char posizionato in RAM a meno che non avvenga un casting.
la funzione itoa e' una funzione standard C ma puo' essere implementata in maniera diversa.
Per i dsPIC hai la seguente libreria e funzione
Include: <libq.h>
Prototype: void _itoaQ15(_Q15 x, char *s);
trovi maggiori dettagli nella directory docs del C30 (16-Bit_Language_Tools_Libraries_51456G.pdf)
realizzare una propria funzione itoa non e' comunque complicatissimo.
Saluti,
Mauro
le librerie LCD sono quasi standard C ma richiedono qualche accorgimento.
L'header file e il nome delle porte devono essere cambiati in funzione del microcontrollore utilizzato sia esso Microchip che non.
l'area rom e' un altro punto. Scrivere nella memoria flash può variare da microcontrollore a microcontrollore.
La modifica che hai fatto ha in realtà trasformato il puntatore in un char posizionato in RAM a meno che non avvenga un casting.
la funzione itoa e' una funzione standard C ma puo' essere implementata in maniera diversa.
Per i dsPIC hai la seguente libreria e funzione
Include: <libq.h>
Prototype: void _itoaQ15(_Q15 x, char *s);
trovi maggiori dettagli nella directory docs del C30 (16-Bit_Language_Tools_Libraries_51456G.pdf)
realizzare una propria funzione itoa non e' comunque complicatissimo.
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Raban
- Autore della discussione
- Nuovo Utente
Less
Di più
- Messaggi: 19
- Ringraziamenti ricevuti 0
12 Anni 9 Mesi fa #5
da Raban
Risposta da Raban al topic Re: librerie laurtec per diplay hd44780
ho risolto senza sconvolgere nulla , stasera posto il codice modificato
Si prega Accesso o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- Aggiornamento sito completato
- da Mauro Laurenti
-
- registro a scorrimento PIPO in cascata
- da Mauro Laurenti
-
- FORMULA PER LINEARIZZARE TERMOCOPIA
- da Mauro Laurenti
-
- Spostamento impronte
- da Mauro Laurenti