librerie laurtec per diplay hd44780

  • Raban
  • Autore della discussione
  • Nuovo Utente
  • Nuovo Utente
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 ?

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

  • Raban
  • Autore della discussione
  • Nuovo Utente
  • Nuovo Utente
Di più
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
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
  • Nuovo Utente
Di più
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 :
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);
La notazione corretta non dovrebbe essere la seguente ?
Code:
itoa (value, (char *convertedInt), 10);
Forse itoa non e' supportata dal c30 ?
Ultima Modifica 12 Anni 9 Mesi fa da Raban.

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

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
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

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

  • Raban
  • Autore della discussione
  • Nuovo Utente
  • Nuovo Utente
Di più
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 LaurentiMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.