Ce module permet de gérer un afficheur LCD alphanumérique.
Le développement de ce module a été fait de façon modulaire en séparant l'interface vers l'afficheur et le contrôleur graphique utilisé par l'afficheur (les 2 objets, interface et contrôleur sont complétement indépendants).
Les contrôleurs graphiques pris en charge sont :
Les interfaces prises en charge sont :
- Port parallèle AVR, données sur 4 bits
- Port parallèle AVR, données sur 8 bits
- Interface I2C avec PCF8574 relie à un afficheur parallèle (4 bits)
- Interface I2C standard (Octet de contrôle RS, CO)
Le module peut être configuré facilement grâce au fichier avrio-board-lcd.h et peut evoluer aussi facilement grâce à sa stucture clairement découpée.
|
typedef uint8_t | xLcdCoord |
| Coordonnée d'un point ou d'un caractère.
|
|
typedef struct xLcdPos | xLcdPos |
|
|
FILE | xLcd |
| Descripteur de fichier du LCD permettant son utilisation avec les fonctions de la libc. Plus de détails...
|
|
Constantes utilisées pour spécifier le type de curseur à vLcdEnableCursor()
Valeurs énumérées |
---|
LCD_CURSOR_NONE |
Pas de curseur affiché (défaut)
|
LCD_CURSOR_UNDERSCORE |
Curseur souligné
|
LCD_CURSOR_BLINK |
Curseur clignotant
|
Définition à la ligne 41 du fichier lcd_defs.h.
eLcdCursor
Constantes utilisées pour spécifier le type de curseur à vLcdEnableCursor()
Initialise le module LCD.
Initialise l'ensemble des éléments nécessaires au fonctionnement de l'afficheur, règle le contraste à mi-course (16) et efface l'écran.
- Renvoie
- 0 succès, une valeur négative si erreur.
- Exemples:
- lcd/demo_lcd.c, et sensor/mq135/demo/demo_sensor_mq135.c.
uint8_t ucLcdBacklightSet |
( |
uint8_t |
ucLevel | ) |
|
uint8_t ucLcdContrastSet |
( |
uint8_t |
ucContrast | ) |
|
void vLcdBargraph |
( |
uint16_t |
uValue, |
|
|
uint16_t |
uMax, |
|
|
xLcdCoord |
uWidth |
|
) |
| |
Affiche ou mets à jour un bargraph.
- Paramètres
-
uValue | Valeur à afficher entre 0 et uMax |
uMax | Valeur max de la barre correspondant à 100 % |
uWidth | Longueur de la barre en nombre de caractères |
- Note
- La fonction vLcdCtrlSetIcon() doit être prise en charge par le contrôleur du LCD.
void vLcdBargraphInit |
( |
const uint8_t * |
pucBarPatterns | ) |
|
Initialise un bargraph à la position courante.
- Paramètres
-
pucBarPatterns | Pointeur sur un tableau de patterns en mémoire FLASH permettant d'afficher un bloc de largeur 0 à LCD_PATTERN_WIDTH+1 |
Efface les caractères.
- Paramètres
-
xX | colonne du premier caractère |
xY | ligne du premier caractère |
uLen | de caractères à effacer |
- Note
- Après l'effacement le curseur est repositionner en (xX, xY)
Modifie l'affichage du curseur.
- Paramètres
-
eCursor | Type de curseur à afficher |
- Note
- Cette fonction ne fait rien si l'afficheur ne dispose pas de cette fonctionnalité.
Changement de la position courante.
- Paramètres
-
xX | valeur de la colonne (0 pour la colonne de gauche) |
xY | valeur de la ligne (0 pour la ligne du haut) |
- Exemples:
- lcd/demo_lcd.c.
void vLcdPutChar |
( |
char |
cChar | ) |
|
Affiche un caractère sur le LCD.
Cette fonction prend en charge les caractères CR/LF et les sauts de lignes automatiques
- Paramètres
-
cChar | caractère ASCII (code étendu non pris en charge) |
- Note
- Pour les affichages complexes, il peut être plus interessant d'utiliser les fonctions de la libc (putc, puts, printf, fprintf ... )
void vLcdPutString |
( |
const char * |
pcString | ) |
|
Affiche une chaîne caractères sur le LCD.
- Paramètres
-
pcString | chaîne caractères |
- Note
- Pour les affichages complexes, il peut être plus interessant d'utiliser les fonctions de la libc (puts, printf, fprintf ... )
void vLcdSetIcon |
( |
uint8_t |
ucCode, |
|
|
const uint8_t * |
pucIconPattern |
|
) |
| |
Chargement d'un caractère personnalisé en CGRAM.
- Paramètres
-
ucCode | Code du caractère en CGRAM |
pucIconPattern | Pointeur sur la matrice des points du caractère en mémoire FLASH |
- Note
- Le contrôleur du LCD doit prendre en charge cette fonctionnalité.
Lecture de la colonne du curseur
Descripteur de fichier du LCD permettant son utilisation avec les fonctions de la libc.
Pour utiliser le LCD comme sortie par défaut, on mettra au début du main() :
On pourra dans le cas contraire passer &xLcd à la fonction fprintf :
3 fprintf (&xLcd, "Choix ? ");
- Exemples:
- lcd/demo_lcd.c, et sensor/mq135/demo/demo_sensor_mq135.c.