|
|
@@ -42,6 +42,18 @@ static void LcdWriteByte(u_char, u_char);
|
|
|
static void LcdWriteNibble(u_char, u_char);
|
|
|
static void LcdWaitBusy(void);
|
|
|
|
|
|
+int timer(u_char Mode){
|
|
|
+ time_t Start;
|
|
|
+ if(Mode == start)
|
|
|
+ {
|
|
|
+ time_t diff = time(0) - Start;
|
|
|
+ return diff;
|
|
|
+ }
|
|
|
+ else if(Mode == stop)
|
|
|
+ {
|
|
|
+ Start = time(0);
|
|
|
+ }
|
|
|
+}
|
|
|
/*!
|
|
|
* \addtogroup Display
|
|
|
*/
|
|
|
@@ -52,16 +64,17 @@ static void LcdWaitBusy(void);
|
|
|
/* start of code */
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief control backlight
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
void LcdBackLight(u_char Mode)
|
|
|
{
|
|
|
if (Mode==LCD_BACKLIGHT_ON)
|
|
|
{
|
|
|
sbi(LCD_BL_PORT, LCD_BL_BIT); // Turn on backlight
|
|
|
+
|
|
|
}
|
|
|
|
|
|
if (Mode==LCD_BACKLIGHT_OFF)
|
|
|
@@ -70,22 +83,42 @@ void LcdBackLight(u_char Mode)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
-/*!
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
+
|
|
|
+/*
|
|
|
+ * Lcdbacklight knipperen
|
|
|
+ */
|
|
|
+
|
|
|
+void LcdBacklightKnipperen(u_char Mode)
|
|
|
+{
|
|
|
+ time_t start;
|
|
|
+ time_t stop;
|
|
|
+ if (Mode==LCD_BACKLIGHT_ON)
|
|
|
+ {
|
|
|
+ sbi(LCD_BL_PORT, LCD_BL_BIT); // Turn on backlight
|
|
|
+ timer(start);
|
|
|
+ }
|
|
|
+ if (Mode==LCD_BACKLIGHT_OFF)
|
|
|
+ {
|
|
|
+ cbi(LCD_BL_PORT, LCD_BL_BIT); // Turn off backlight
|
|
|
+ timer(stop);
|
|
|
+ }
|
|
|
+}
|
|
|
+/*
|
|
|
* \brief Write a single character on the LCD
|
|
|
*
|
|
|
* Writes a single character on the LCD on the current cursor position
|
|
|
*
|
|
|
* \param LcdChar character to write
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
void LcdChar(char MyChar)
|
|
|
{
|
|
|
LcdWriteByte(WRITE_DATA, MyChar);
|
|
|
}
|
|
|
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level initialisation function of the LCD-controller
|
|
|
*
|
|
|
@@ -94,7 +127,7 @@ void LcdChar(char MyChar)
|
|
|
* 1 line dislay, 10 dots high characters
|
|
|
*
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
void LcdLowLevelInit()
|
|
|
{
|
|
|
u_char i;
|
|
|
@@ -127,7 +160,7 @@ void LcdChar(char MyChar)
|
|
|
}
|
|
|
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level routine to write a byte to LCD-controller
|
|
|
*
|
|
|
@@ -139,7 +172,7 @@ void LcdChar(char MyChar)
|
|
|
* \param LcdByte byte to write
|
|
|
*
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
static void LcdWriteByte(u_char CtrlState, u_char LcdByte)
|
|
|
{
|
|
|
LcdWaitBusy(); // see if the controller is ready to receive next byte
|
|
|
@@ -148,7 +181,7 @@ static void LcdWriteByte(u_char CtrlState, u_char LcdByte)
|
|
|
|
|
|
}
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level routine to write a nibble to LCD-controller
|
|
|
*
|
|
|
@@ -160,7 +193,7 @@ static void LcdWriteByte(u_char CtrlState, u_char LcdByte)
|
|
|
* \param LcdNibble nibble to write (upper 4 bits in this byte
|
|
|
*
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
static void LcdWriteNibble(u_char CtrlState, u_char LcdNibble)
|
|
|
{
|
|
|
outp((inp(LCD_DATA_DDR) & 0x0F) | 0xF0, LCD_DATA_DDR); // set data-port to output again
|
|
|
@@ -186,7 +219,7 @@ static void LcdWriteNibble(u_char CtrlState, u_char LcdNibble)
|
|
|
outp((inp(LCD_DATA_PORT) & 0x0F) | 0xF0, LCD_DATA_PORT); // enable pull-ups in data-port
|
|
|
}
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level routine to see if the controller is ready to receive
|
|
|
*
|
|
|
@@ -194,7 +227,7 @@ static void LcdWriteNibble(u_char CtrlState, u_char LcdNibble)
|
|
|
* has become '0'. If a '0' is detected on bit 7 the function returns.
|
|
|
*
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
static void LcdWaitBusy()
|
|
|
{
|
|
|
u_char Busy = 1;
|