Étape 5: Police personnalisée
8K flash n’a aucun assez de place pour stocker tous les caractères en grande taille. (par exemple, la hauteur de police 24 pixels)
Comme le montre seulement exigent 10 caractères numériques, nous pouvons travailler-faire un type de police sélectionnée binaire pour tenir dans un espace limité.
Je vais utiliser les outils de ligne de commande imagicmagick pour montrer comment faire pour convertir des caractères personnalisés dans un fichier d’en-tête c.
Ce programme a besoin à 10 chiffres dans 2 tailles de polices, un avec des pixels de hauteur 8 polices pour montrer les chiffres de la date et l’autre avec hauteur police 24 pixels pour afficher le temps chiffres :
convert -depth 1 -font Lucida-Sans-Unicode -pointsize 11 label:00123456789 -crop 70x8+7+4 -flip -rotate 90 watch_digit.xbm convert -depth 1 -font Cooper-Black -pointsize 25 label:00123456789 -crop 150x24+14+4 -flip -rotate 90 watch_3x_digit.xbm
Lucida Sans Unicode et Cooper-noir sont le type de polices dans Windows 7, vous pouvez utiliser votre type de police sélectionnée dans votre système d’exploitation.
Le corp, la flip et l’option rotate aident à ajuster les données binaires dans la bonne position et la direction. Vous pouvez modifier le format de sortie de xbm en png pour afficher un aperçu de l’image bitmap de sortie.
Après avoir exporter les fichiers xbm, nous pouvons copier le code binaire de polices dans le fichier source watchdigit.h :
#include <avr/pgmspace.h> #define FONTWIDTH 7#define FONT3XWIDTH 15 static const uint8_t watch_digit[] PROGMEM = {//watch_digit.xbm binary code}; static const uint8_t watch_3x_digit[] PROGMEM = {//watch_3x_digit.xbm binary code};
Ref. :