|
|
@@ -26,7 +26,7 @@
|
|
|
#include "portio.h"
|
|
|
#include "display.h"
|
|
|
#include "log.h"
|
|
|
-
|
|
|
+#include <time.h>
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
/* local defines */
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
@@ -42,6 +42,18 @@ static void LcdWriteByte(u_char, u_char);
|
|
|
static void LcdWriteNibble(u_char, u_char);
|
|
|
static void LcdWaitBusy(void);
|
|
|
|
|
|
+int timerLCD(u_char Mode){
|
|
|
+ time_t Start;
|
|
|
+ if(Mode == startLCD)
|
|
|
+ {
|
|
|
+ time_t diff = time(0) - Start;
|
|
|
+ return diff;
|
|
|
+ }
|
|
|
+ else if(Mode == stopLCD)
|
|
|
+ {
|
|
|
+ Start = time(0);
|
|
|
+ }
|
|
|
+}
|
|
|
/*!
|
|
|
* \addtogroup Display
|
|
|
*/
|
|
|
@@ -52,11 +64,11 @@ static void LcdWaitBusy(void);
|
|
|
/* start of code */
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief control backlight
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
void LcdBackLight(u_char Mode)
|
|
|
{
|
|
|
if (Mode==LCD_BACKLIGHT_ON)
|
|
|
@@ -70,7 +82,31 @@ void LcdBackLight(u_char Mode)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
+
|
|
|
+/*
|
|
|
+ * Lcdbacklight knipperen
|
|
|
+ */
|
|
|
+
|
|
|
+void LcdBacklightKnipperen(u_char Mode)
|
|
|
+{
|
|
|
+ time_t Start;
|
|
|
+ time_t Stop;
|
|
|
+ if (Mode==startLCD)
|
|
|
+ {
|
|
|
+ sbi(LCD_BL_PORT, LCD_BL_BIT); // Turn on backlight
|
|
|
+ timer(Start);
|
|
|
+ }
|
|
|
+ if (Mode==stopLCD)
|
|
|
+ {
|
|
|
+ cbi(LCD_BL_PORT, LCD_BL_BIT); // Turn off backlight
|
|
|
+ timer(Stop);
|
|
|
+ }
|
|
|
+}
|
|
|
+/*
|
|
|
+
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Write a single character on the LCD
|
|
|
*
|
|
|
@@ -78,14 +114,14 @@ void LcdBackLight(u_char Mode)
|
|
|
*
|
|
|
* \param LcdChar character to write
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
void LcdChar(char MyChar)
|
|
|
{
|
|
|
LcdWriteByte(WRITE_DATA, MyChar);
|
|
|
}
|
|
|
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level initialisation function of the LCD-controller
|
|
|
*
|
|
|
@@ -94,7 +130,7 @@ void LcdChar(char MyChar)
|
|
|
* 1 line dislay, 10 dots high characters
|
|
|
*
|
|
|
*/
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
void LcdLowLevelInit()
|
|
|
{
|
|
|
u_char i;
|
|
|
@@ -127,7 +163,7 @@ void LcdChar(char MyChar)
|
|
|
}
|
|
|
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level routine to write a byte to LCD-controller
|
|
|
*
|
|
|
@@ -139,7 +175,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 +184,7 @@ static void LcdWriteByte(u_char CtrlState, u_char LcdByte)
|
|
|
|
|
|
}
|
|
|
|
|
|
-/* ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */
|
|
|
+/* ����������������������������������������������������������������������� */
|
|
|
/*!
|
|
|
* \brief Low-level routine to write a nibble to LCD-controller
|
|
|
*
|
|
|
@@ -160,7 +196,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 +222,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 +230,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;
|