Go Down

Topic: lcd Caractères perso progmem (Read 713 times) previous topic - next topic

Zarb94

Bonjour,
Je suis en quette de mémoire dans mon projet. J'utilise un LCD 2004 i2c avec 8 caractères perso.
Je me demande donc si il est possible de placer (je sais le faire), mais surtout d''accéder aux caractère perso en mémoire Flash et de les afficher.

Voici quelques pistes que j'explore
Code: [Select]
PROGMEM const byte M1 [ ] = {
  B00001,  B00011,  B00111,  B01111,  B11001,  B01001,  B01001,  B01001};


Code: [Select]
lcd.createChar((pgm_read_byte_near (0)), M1);  <= BUG

Code: [Select]
lcd.setCursor(1, 3); lcd.write(pgm_read_byte_near (0));

Mais bien entendu, ça ne fonctionne pas.
Avez vous une idée sur la méthode?
Merci.

_pepe_

#1
Jun 05, 2017, 09:51 am Last Edit: Aug 19, 2018, 06:47 am by _pepe_
Supprimé

Zarb94

Bonjour,
Oui, j'ai déjà appliqué cette méthode qui fonctionne très bien, mais j'aimerai gagner de la place. Est il possible d'utiliser la Flash?

_pepe_

#3
Jun 05, 2017, 09:12 pm Last Edit: Aug 19, 2018, 06:47 am by _pepe_
Supprimé

Artouste

#4
Jun 05, 2017, 09:33 pm Last Edit: Jun 05, 2017, 09:37 pm by Artouste
Bonjour,
Je suis en quette de mémoire dans mon projet. J'utilise un LCD 2004 i2c avec 8 caractères perso.
Je me demande donc si il est possible de placer (je sais le faire), mais surtout d''accéder aux caractère perso en mémoire Flash et de les afficher.
bonsoir zarb94
Il faut "vraiment" être à la "quête"  8)  pour vouloir "passer par cette voie"

Perso , j'ai tendance à penser que vouloir absolument traquer "les derniers bytes dispos ici ou là " est en code  une source excessivement probable d'embrouilles/instabiltés qui ne vont surement pas manquer de survenir en exploitation. :smiley-mr-green:

Sur le sujet de la relecture d'un motif "perso" injecté dans un LCD "44780"
je ne suis pas sur que ce soit possible en mode 4 Bits
Mais je prend un "joker" ;D




Zarb94

bonsoir zarb94
Il faut "vraiment" être à la "quête"  8)  pour vouloir "passer par cette voie"

Perso , j'ai tendance à penser que vouloir absolument traquer "les derniers bytes dispos ici ou là " est en code  une source excessivement probable d'embrouilles/instabiltés qui ne vont surement pas manquer de survenir en exploitation. :smiley-mr-green:

Sur le sujet de la relecture d'un motif "perso" injecté dans un LCD "44780"
je ne suis pas sur que ce soit possible en mode 4 Bits
Mais je prend un "joker" ;D




Je pense que tu à raison,cela fait des économies de bout de chandelle finalement. Et en plus, à force de recherche,
Je viens de trouver un bout de code qui donne l'espace libre dans la SRAM et mon problème n'est pas la donc pas la peine d'insister.


Si ça intéresse:

Code: [Select]
// Mémoire dispo entre la stack & la heap
 int freeRam ()
{
    extern int __heap_start, *__brkval;
    int v;
    Serial.print(F("SRAM dispo entre la stack & la heap= "));
    Serial.println((int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval));
}


Bonne soirée!

Go Up