From 80ad6d155c1b974590f0c96b6291b0baa70b09d5 Mon Sep 17 00:00:00 2001 From: reinelt <> Date: Thu, 24 Jul 2003 04:48:09 +0000 Subject: [lcd4linux @ 2003-07-24 04:48:09 by reinelt] 'soft clear' needed for virtual rows --- HD44780.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'HD44780.c') diff --git a/HD44780.c b/HD44780.c index 5367ac2..a35d7b5 100644 --- a/HD44780.c +++ b/HD44780.c @@ -1,4 +1,4 @@ -/* $Id: HD44780.c,v 1.28 2003/04/07 06:02:58 reinelt Exp $ +/* $Id: HD44780.c,v 1.29 2003/07/24 04:48:09 reinelt Exp $ * * driver for display modules based on the HD44780 chip * @@ -20,6 +20,9 @@ * * * $Log: HD44780.c,v $ + * Revision 1.29 2003/07/24 04:48:09 reinelt + * 'soft clear' needed for virtual rows + * * Revision 1.28 2003/04/07 06:02:58 reinelt * further parallel port abstraction * @@ -247,7 +250,7 @@ static void HD_define_char (int ascii, char *buffer) } -int HD_clear (void) +int HD_clear (int full) { int row, col; @@ -260,8 +263,12 @@ int HD_clear (void) bar_clear(); GPO=0; - HD_setGPO (GPO); // All GPO's off - HD_command (0x01, 1640); // clear display + + if (full) { + HD_command (0x01, 1640); // clear display + HD_setGPO (GPO); // All GPO's off + } + return 0; } @@ -325,7 +332,7 @@ int HD_init (LCD *Self) bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank bar_add_segment(255,255,255,255); // ASCII 255 = block - HD_clear(); + HD_clear(1); return 0; } -- cgit v1.2.3