lcd_text.c File Reference

Generic text LCD driver (impl. More...

#include "lcd_text.h"
#include "lcd_hd44.h"
#include <drv/timer.h>
#include <mware/formatwr.h>
#include <mware/list.h>
#include <cfg/macros.h>
#include <cfg/debug.h>
#include <string.h>

Go to the source code of this file.


Defines

#define LCD_LAYERS   6
 Maximum number of layers.

Functions

static void lcd_putCharUnlocked (char c, Layer *layer)
 Write one character to the display at the current cursor prosition, then move the cursor right.
static void lcd_enqueueLayer (Layer *layer, char pri)
 Internal function to move a layer between two positions.
static void lcd_refresh (void)
 Redraw the display (internal).
void lcd_setLayerDepth (Layer *layer, char pri)
 Rearrange layer depth and refresh display accordingly.
void lcd_init (void)
 Initialize LCD subsystem.

Detailed Description

Generic text LCD driver (impl.

).

Version:
Id
lcd_text.c 841 2007-10-08 17:35:23Z marco
Author:
Bernardo Innocenti <bernie@develer.com>

Stefano Fedrigo <aleph@develer.com>

Definition in file lcd_text.c.


Define Documentation

#define LCD_LAYERS   6

Maximum number of layers.

Definition at line 88 of file lcd_text.c.


Function Documentation

static void lcd_enqueueLayer ( Layer layer,
char  pri 
) [static]

Internal function to move a layer between two positions.

Note:
The layer must be *already* enqueued in some list.

The display must be already locked!

Definition at line 321 of file lcd_text.c.

void lcd_init ( void   ) 

Initialize LCD subsystem.

Note:
The PWM used for LCD contrast is initialized in drv/pwm.c because it is the same PWM used for output attenuation.

Definition at line 471 of file lcd_text.c.

static void lcd_putCharUnlocked ( char  c,
Layer layer 
) [static]

Write one character to the display at the current cursor prosition, then move the cursor right.

The cursor is wrapped to the next line when it moves beyond the end of the current line.

Note:
Does _NOT_ lock the display semaphore.

Definition at line 151 of file lcd_text.c.

static void lcd_refresh ( void   )  [static]

Redraw the display (internal).

Note:
The display must be already locked.

Definition at line 370 of file lcd_text.c.

void lcd_setLayerDepth ( Layer layer,
char  pri 
)

Rearrange layer depth and refresh display accordingly.

Note:
Setting a priority of LAYER_HIDDEN makes the layer invisible.

Definition at line 403 of file lcd_text.c.