AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
LCD alphanumérique

Description détaillée

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 :

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.

Graphe de collaboration de LCD alphanumérique:

Modules

 Contrôleur graphique
 
 Interface matérielle
 
 Rétroéclairage
 

Structures de données

struct  xLcdPos
 Coordonnées d'un point ou d'un caractère. Plus de détails...
 

Fonctions

int8_t iLcdInit (void)
 Initialise le module LCD. Plus de détails...
 
uint8_t ucLcdBacklightSet (uint8_t ucLevel)
 Réglage de la luminosité du rétro-éclairage. Plus de détails...
 
uint8_t ucLcdContrastSet (uint8_t ucContrast)
 Réglage du constraste de l'afficheur. Plus de détails...
 
void vLcdBargraph (uint16_t uValue, uint16_t uMax, xLcdCoord uWidth)
 Affiche ou mets à jour un bargraph. Plus de détails...
 
void vLcdBargraphInit (const uint8_t *pucBarPatterns)
 Initialise un bargraph à la position courante. Plus de détails...
 
void vLcdClear (void)
 Effacement de l'afficheur et retour du curseur à l'origine.
 
void vLcdClearChars (xLcdCoord xX, xLcdCoord xY, uint8_t uLen)
 Efface les caractères. Plus de détails...
 
void vLcdClearCurrentLine (void)
 Efface seulement la ligne du curseur.
 
void vLcdClearLine (xLcdCoord xY)
 Efface une ligne.
 
void vLcdEnableCursor (eLcdCursor eCursor)
 Modifie l'affichage du curseur. Plus de détails...
 
void vLcdGotoXY (xLcdCoord xX, xLcdCoord xY)
 Changement de la position courante. Plus de détails...
 
void vLcdPutChar (char cChar)
 Affiche un caractère sur le LCD. Plus de détails...
 
void vLcdPutString (const char *pcString)
 Affiche une chaîne caractères sur le LCD. Plus de détails...
 
void vLcdSetIcon (uint8_t ucCode, const uint8_t *pucIconPattern)
 Chargement d'un caractère personnalisé en CGRAM. Plus de détails...
 
xLcdCoord xLcdGetX (void)
 Lecture de la colonne du curseur.
 
xLcdCoord xLcdGetY (void)
 
xLcdCoord xLcdHeight (void)
 Nombre de lignes.
 
xLcdCoord xLcdWidth (void)
 Nombre de colonnes du LCD.
 

Définitions de type

typedef uint8_t xLcdCoord
 Coordonnée d'un point ou d'un caractère.
 
typedef struct xLcdPos xLcdPos
 

Énumérations

enum  eLcdCursor { LCD_CURSOR_NONE = 0, LCD_CURSOR_UNDERSCORE = 0x02, LCD_CURSOR_BLINK = 0x03 }
 Constantes utilisées pour spécifier le type de curseur à vLcdEnableCursor() Plus de détails...
 

Variables

FILE xLcd
 Descripteur de fichier du LCD permettant son utilisation avec les fonctions de la libc. Plus de détails...
 

Documentation du type de l'énumération

enum eLcdCursor

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.

41  {
42 
43  LCD_CURSOR_NONE = 0,
44  LCD_CURSOR_UNDERSCORE = 0x02,
45  LCD_CURSOR_BLINK = 0x03
46 } eLcdCursor;
eLcdCursor
Constantes utilisées pour spécifier le type de curseur à vLcdEnableCursor()
Definition: lcd_defs.h:41

Documentation des fonctions

int8_t iLcdInit ( void  )

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)

Réglage de la luminosité du rétro-éclairage.

Paramètres
ucLevelLa luminosité entre 0 et 63
Renvoie
La valeur effectivement réglée
Exemples:
sensor/mq135/demo/demo_sensor_mq135.c.
uint8_t ucLcdContrastSet ( uint8_t  ucContrast)

Réglage du constraste de l'afficheur.

Paramètres
ucContrastLe contraste entre 0 et 31
Renvoie
La valeur effectivement réglée
Exemples:
sensor/mq135/demo/demo_sensor_mq135.c.
void vLcdBargraph ( uint16_t  uValue,
uint16_t  uMax,
xLcdCoord  uWidth 
)

Affiche ou mets à jour un bargraph.

Paramètres
uValueValeur à afficher entre 0 et uMax
uMaxValeur max de la barre correspondant à 100 %
uWidthLongueur 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
pucBarPatternsPointeur sur un tableau de patterns en mémoire FLASH permettant d'afficher un bloc de largeur 0 à LCD_PATTERN_WIDTH+1
void vLcdClearChars ( xLcdCoord  xX,
xLcdCoord  xY,
uint8_t  uLen 
)

Efface les caractères.

Paramètres
xXcolonne du premier caractère
xYligne du premier caractère
uLende caractères à effacer
Note
Après l'effacement le curseur est repositionner en (xX, xY)
void vLcdEnableCursor ( eLcdCursor  eCursor)

Modifie l'affichage du curseur.

Paramètres
eCursorType de curseur à afficher
Note
Cette fonction ne fait rien si l'afficheur ne dispose pas de cette fonctionnalité.
void vLcdGotoXY ( xLcdCoord  xX,
xLcdCoord  xY 
)

Changement de la position courante.

Paramètres
xXvaleur de la colonne (0 pour la colonne de gauche)
xYvaleur 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
cCharcaractè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
pcStringchaî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
ucCodeCode du caractère en CGRAM
pucIconPatternPointeur sur la matrice des points du caractère en mémoire FLASH
Note
Le contrôleur du LCD doit prendre en charge cette fonctionnalité.
xLcdCoord xLcdGetY ( void  )

Lecture de la colonne du curseur

Documentation des variables

FILE xLcd

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() :

1 int main(void) {
2  iLcdInit ();
3  stdout = &xLcd;
4  ...

On pourra dans le cas contraire passer &xLcd à la fonction fprintf :

1 int choix;
2 ...
3 fprintf (&xLcd, "Choix ? ");
4 ...
Exemples:
lcd/demo_lcd.c, et sensor/mq135/demo/demo_sensor_mq135.c.