Added CONFIG_LCD_4BIT.
authormarco <marco@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 20 Sep 2006 19:55:01 +0000 (19:55 +0000)
committermarco <marco@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 20 Sep 2006 19:55:01 +0000 (19:55 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@720 38d2e660-2303-0410-9eaa-f027e97ec537

app/demo/appconfig.h
drv/lcd_hd44.c
drv/lcd_hd44.h

index f1ff38fb95980eb516b3e4ade1bae521a41dd8ed..d46212dd7582e17991061f86ba7aca50aea0c896 100755 (executable)
@@ -46,6 +46,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.5  2006/09/20 19:55:01  marco
+ *#* Added CONFIG_LCD_4BIT.
+ *#*
  *#* Revision 1.4  2006/09/13 18:29:22  bernie
  *#* Add a few missing CONFIG_ definitions.
  *#*
 /// Accept input implicitly after this amount of time.
 #define CONFIG_LEVELEDIT_TIMEOUT 3000 /* ms */
 
+/// LCD bus size. If 0 use 8bit bus.
+#define CONFIG_LCD_4BIT 0
+
 #endif /* APPCONFIG_H */
index de7bdf7af4f0e9910afa81a11d5162c83545cfad..0bd7b3440e115640727afe24f48ef52f7fd6c7b8 100755 (executable)
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.3  2006/09/20 19:55:01  marco
+ *#* Added CONFIG_LCD_4BIT.
+ *#*
  *#* Revision 1.2  2006/07/19 12:56:25  bernie
  *#* Convert to new Doxygen style.
  *#*
  *#*/
 
 #include "lcd_hd44.h"
-#include "lcd_bus_pz.h"
-#include <arch_config.h>
+#include "hw_lcd.h"
+#include <cfg/arch_config.h>
 #include <drv/timer.h>
 
-#if defined(LCD_READ_H) && defined(LCD_READ_L) && defined(LCD_WRITE_H) && defined(LCD_WRITE_L)
-       #define CONFIG_LCD_4BIT 1
-#elif defined(LCD_READ) && defined(LCD_WRITE)
-       #define CONFIG_LCD_4BIT 0
-#else
-       #error Incomplete or missing LCD_READ/LCD_WRITE macros
-#endif
-
 /** Flag di stato del display */
 #define LCDF_BUSY  BV(7)
 
@@ -184,7 +179,7 @@ INLINE uint8_t lcd_dataRead(void)
        /* Read data */
        LCD_SET_E;
        LCD_DELAY_READ;
-       data |= LCD_READ;
+       data = LCD_READ;
        LCD_CLR_E;
        LCD_DELAY_READ;
 
@@ -391,8 +386,9 @@ void lcd_hw_init(void)
        lcd_regWrite(LCD_CMD_CLEAR);
        timer_delay(2);
 
-       //lcd_regWrite(LCD_CMD_RESET_DDRAM); 4 bit mode doesn't allow char reprogramming
-
+#if !CONFIG_LCD_4BIT
+       lcd_regWrite(LCD_CMD_RESET_DDRAM); // 4 bit mode doesn't allow char reprogramming
+#endif
        lcd_regWrite(LCD_CMD_DISPLAYMODE);
        timer_delay(2);
 }
index 9a0d4b121e9a114563bacf02dcdd914c581c6d82..bcab214e20730aa4ae29138a28d3a46f555e182e 100755 (executable)
@@ -14,6 +14,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.3  2006/09/20 19:55:01  marco
+ *#* Added CONFIG_LCD_4BIT.
+ *#*
  *#* Revision 1.2  2006/07/19 12:56:25  bernie
  *#* Convert to new Doxygen style.
  *#*
@@ -39,6 +42,7 @@
 #ifndef DRV_LCD_HD44_H
 #define DRV_LCD_HD44_H
 
+#include <appconfig.h>
 #include <cfg/compiler.h> /* For stdint types */
 
 /**
  * \{
  */
 #define LCD_CMD_DISPLAY_INI      0x30
-//#define LCD_CMD_SETFUNC        0x38   /**< 8 bits, 2 lines, 5x7 dots */
-#define LCD_CMD_SETFUNC          0x28   /**< 4 bits, 2 lines, 5x7 dots */
+
+#if CONFIG_LCD_4BIT
+       #define LCD_CMD_SETFUNC  0x28   /**< 4 bits, 2 lines, 5x7 dots */
+#else
+       #define LCD_CMD_SETFUNC  0x38   /**< 8 bits, 2 lines, 5x7 dots */
+#endif
+
 #define LCD_CMD_DISPLAY_ON       0x0F   /**< Switch on display */
 #define LCD_CMD_DISPLAY_OFF      0x08   /**< Switch off display */
 #define LCD_CMD_CLEAR            0x01   /**< Clear display */