ARDUINO et OSD (On Screen Display)
Pour aller plus loin

Caractères spéciaux:

Le MAX 7456 , dans sa configuration de base, contient sa propre table de caractères dont  les adresses ne correspondent pas la table ASCII. Un certain nombre de caractères enregistrés  ne nous sont pas utiles et d'autres sont absents Le signe + et le signe ° par exemple.  Nous allons donc accéder à l'EEPROM afin de la modifier.

Chaque nouveau caractère sera dessiné, ce qui laissera libre cours à la création. Il sera ainsi possible de créer un logo ou des signes qui,  appelés  au fure et à mesure par le programme,  simuleront  l'évolution d'un appareil de mesure.

Une solution.
Télécharger le programmes  d'évaluation de chez Maxim
 ici  . Il est portable: il n'est pas nécessaire de l'installer.
Une fois lancé, aller directement à la page "Character Memory File Builder" ... dessiner....et enregistrer.  Le programme va alors créer dans le répertoire un fichier  *.mcm. C'est ce fichier contenant votre propre table que vous allez utiliser pour modifier l'EEPROM du MAX7456.

En rouge les caractères modifiés  avec le fichier F5MNA4.mcm    ici     

Programmation de l'EEPROM.
Le module arduino équipé de la carte MAX7456 doit être branché au port USB.
1)  
Télécharger dans l'Arduino le programme Arduino_memo  
 ici   puis fermer le programme arduino.exe afin de libérer le port. La platine reste sous tension.
2)  
L'EEPROM est prête à recevoir la nouvelle table.  Pour cela j'utilise en émulateur terminal le logiciel  
"Tera Term" . Une fois lancé (port série à 9600 bauds), Tera Term va vous indiquer  "Prèt pour télécharger un fichier .mcm". Choisir alors votre nouvelle table puis  l'envoyer à  l'EEPROM ("File" "Send file") ce qui peut prendre trois bonnes minutes. Ensuite, votre programme, modifié en conséquence,  peut être "téléversé" normalement.

Utilisation de la nouvelle table dans un  programme:
Dans les programmes précédemment donnés en exemple, vous verrez un certain nombre de lignes sous le titre
// Transposition de la table ASCII (non standard) intégrée à l'EEPROM du MAX7456. Si vous utilisez le fichier F5MNA1.mcm  (ci-dessus ) pour completer la table avec les signes  * °  + , les lignes suivantes sont  ajoutées en complément de la fonction:  

  else if (character == 43)
    lookup_char = 0x4e; // +
  else if (character == 42)
    lookup_char = 0x4d ; // *
    else if (character == 176)
    lookup_char = 0x4f ; // °

Dans la première ligne 43 correspond à la valeur ASCII décimale du signe +  
Dans la seconde ligne 0x4e correspond à sa nouvelle adresse dans l'EEPROM. (Voir + haut la façon de déterminer cette adresse).

Heureusement, une fois créee selon ses besoins, il n'y aura plus à revenir sur cette manipulation. Il sera bon cependant de conserver le fichier .mcm avec une copie d'écran de sa  table personnelle  !

 

 Liens: Le site Arduino en français