AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
lcd.h
1 
22 #ifndef _AVRIO_LCD_H_
23 #define _AVRIO_LCD_H_ 1
24 
25 #include <avrio/defs.h>
26 
27 __BEGIN_C_DECLS
28  /* ======================================================================== */
29 #include <stdio.h>
58 #include "lcd/lcd_defs.h"
59 #include "lcd/io/lcd_io.h"
60 #include "lcd/ctrl/lcd_ctrl.h"
61 
62 /* internal public functions ================================================ */
70 int8_t iLcdInit (void);
71 
81 void vLcdPutChar (char cChar);
82 
90 void vLcdPutString (const char *pcString);
91 
100 void vLcdClearChars (xLcdCoord xX, xLcdCoord xY, uint8_t uLen);
101 
108 void vLcdGotoXY (xLcdCoord xX, xLcdCoord xY);
109 
115 void vLcdBargraphInit (const uint8_t * pucBarPatterns);
116 
125 void vLcdBargraph (uint16_t uValue, uint16_t uMax, xLcdCoord uWidth);
126 
127 /* public variables ========================================================= */
147 extern FILE xLcd;
148 
149 #if defined(__DOXYGEN__)
150 /*
151  * __DOXYGEN__ defined
152  * Partie documentation ne devant pas être compilée.
153  * =============================================================================
154  */
155 
161 uint8_t ucLcdContrastSet (uint8_t ucContrast);
162 
168 uint8_t ucLcdBacklightSet (uint8_t ucLevel);
169 
173 void vLcdClear (void);
174 
181 void vLcdEnableCursor (eLcdCursor eCursor);
182 
186 xLcdCoord xLcdGetX (void);
187 
191 xLcdCoord xLcdWidth (void);
192 
196 xLcdCoord xLcdGetY (void);
197 
201 xLcdCoord xLcdHeight (void);
202 
206 void vLcdClearCurrentLine (void);
207 
211 void vLcdClearLine (xLcdCoord xY);
212 
220 void vLcdSetIcon (uint8_t ucCode, const uint8_t * pucIconPattern);
221 
226 #else
227 /*
228  * __DOXYGEN__ not defined
229  * Partie ne devant pas être documentée.
230  * =============================================================================
231  */
232 #include "avrio-config.h"
233 
234 #ifdef AVRIO_LCD_ENABLE
235 /* ========================================================================== */
236 #include "avrio-board-lcd.h"
237 
238  // ---------------------------------------------------------------------------
239  __STATIC_ALWAYS_INLINE (uint8_t
240  ucLcdContrastSet (uint8_t ucContrast)) {
241 
242  return ucLcdCtrlContrastSet (ucContrast);
243  }
244 
245  // ---------------------------------------------------------------------------
246  __STATIC_ALWAYS_INLINE (void
247  vLcdClear (void)) {
248 
249  vLcdCtrlClear();
250  }
251 
252  // ---------------------------------------------------------------------------
253  __STATIC_ALWAYS_INLINE (void
254  vLcdEnableCursor (eLcdCursor eCursor)) {
255 
256  vLcdCtrlEnableCursor (eCursor);
257  }
258 
259  // ---------------------------------------------------------------------------
260  __STATIC_ALWAYS_INLINE (xLcdCoord
261  xLcdGetX (void)) {
262 
263  return xLcdCtrlGetX();
264  }
265 
266  // ---------------------------------------------------------------------------
267  __STATIC_ALWAYS_INLINE (xLcdCoord
268  xLcdGetY (void)) {
269 
270  return xLcdCtrlGetY();
271  }
272 
273  // ---------------------------------------------------------------------------
274  __STATIC_ALWAYS_INLINE (xLcdCoord
275  xLcdWidth (void)) {
276 
277  return (xLcdCoord)LCD_WIDTH;
278  }
279 
280  // ---------------------------------------------------------------------------
281  __STATIC_ALWAYS_INLINE (xLcdCoord
282  xLcdHeight (void)) {
283 
284  return (xLcdCoord)LCD_HEIGHT;
285  }
286 
287  // ---------------------------------------------------------------------------
288  __STATIC_ALWAYS_INLINE (void
289  vLcdClearCurrentLine (void)) {
290 
291  vLcdClearChars (0, xLcdCtrlGetY(), LCD_WIDTH);
292  }
293 
294  // ---------------------------------------------------------------------------
295  __STATIC_ALWAYS_INLINE (void
296  vLcdClearLine (xLcdCoord xY)) {
297 
298  vLcdClearChars (0, xY, LCD_WIDTH);
299  }
300 
301  // ---------------------------------------------------------------------------
302  __STATIC_ALWAYS_INLINE (void
303  vLcdSetIcon (uint8_t ucIndex, const uint8_t * pucIconPattern)) {
304 
305  vLcdCtrlSetIcon (ucIndex, pucIconPattern);
306  }
307 
308  // ---------------------------------------------------------------------------
309  __STATIC_ALWAYS_INLINE (uint8_t
310  ucLcdBacklightSet (uint8_t ucLevel)) {
311 
312 #ifdef LCD_CTRL_BACKLIGHT_ENABLE
313  return ucLcdCtrlBacklightSet (ucLevel);
314 #else
315  return 0;
316 #endif
317  }
318 
319 /* ========================================================================== */
320 #endif /* AVRIO_LCD_ENABLE defined */
321 #endif /* __DOXYGEN__ not defined */
322 /* ========================================================================== */
323 __END_C_DECLS
324 #endif /* _AVRIO_LCD_H_ */
xLcdCoord xLcdHeight(void)
Nombre de lignes.
uint8_t xLcdCoord
Coordonnée d&#39;un point ou d&#39;un caractère.
Definition: lcd_defs.h:52
void vLcdCtrlEnableCursor(eLcdCursor eCursor)
Modifie l&#39;affichage du curseur.
void vLcdPutString(const char *pcString)
Affiche une chaîne caractères sur le LCD.
uint8_t ucLcdBacklightSet(uint8_t ucLevel)
Réglage de la luminosité du rétro-éclairage.
xLcdCoord xLcdCtrlGetY(void)
Lecture de l&#39;ordonnée de la position courante.
void vLcdClear(void)
Effacement de l&#39;afficheur et retour du curseur à l&#39;origine.
int8_t iLcdInit(void)
Initialise le module LCD.
void vLcdCtrlSetIcon(uint8_t ucIndex, const uint8_t *pucIconPattern)
Chargement d&#39;un caractère personnalisé en CGRAM.
FILE xLcd
Descripteur de fichier du LCD permettant son utilisation avec les fonctions de la libc...
eLcdCursor
Constantes utilisées pour spécifier le type de curseur à vLcdEnableCursor()
Definition: lcd_defs.h:41
void vLcdPutChar(char cChar)
Affiche un caractère sur le LCD.
void vLcdGotoXY(xLcdCoord xX, xLcdCoord xY)
Changement de la position courante.
xLcdCoord xLcdGetX(void)
Lecture de la colonne du curseur.
xLcdCoord xLcdWidth(void)
Nombre de colonnes du LCD.
void vLcdClearChars(xLcdCoord xX, xLcdCoord xY, uint8_t uLen)
Efface les caractères.
void vLcdEnableCursor(eLcdCursor eCursor)
Modifie l&#39;affichage du curseur.
xLcdCoord xLcdCtrlGetX(void)
Lecture de l&#39;abscisse de la position courante.
void vLcdClearCurrentLine(void)
Efface seulement la ligne du curseur.
void vLcdBargraph(uint16_t uValue, uint16_t uMax, xLcdCoord uWidth)
Affiche ou mets à jour un bargraph.
uint8_t ucLcdCtrlContrastSet(uint8_t ucContrast)
Réglage du constraste de l&#39;afficheur.
void vLcdBargraphInit(const uint8_t *pucBarPatterns)
Initialise un bargraph à la position courante.
void vLcdClearLine(xLcdCoord xY)
Efface une ligne.
void vLcdCtrlClear(void)
Efface l&#39;écran de l&#39;afficheur.
uint8_t ucLcdCtrlBacklightSet(uint8_t ucLevel)
Réglage de la luminosité du rétro-éclairage.
void vLcdSetIcon(uint8_t ucCode, const uint8_t *pucIconPattern)
Chargement d&#39;un caractère personnalisé en CGRAM.
xLcdCoord xLcdGetY(void)
uint8_t ucLcdContrastSet(uint8_t ucContrast)
Réglage du constraste de l&#39;afficheur.