Forráskód Böngészése

RTC get function added, LCDArray functions added

guusvdongen 9 éve
szülő
commit
1668cc7c2d
5 módosított fájl, 31 hozzáadás és 11 törlés
  1. 12 4
      display.c
  2. 3 2
      display.h
  3. 9 5
      main.c
  4. 6 0
      rtc.c
  5. 1 0
      rtc.h

+ 12 - 4
display.c

@@ -223,12 +223,20 @@ void ClearLcd()
 	LcdWriteByte(WRITE_COMMAND, 0x01);
 }
 
-void LcdArray(char *data, int size)
+void LcdArrayLineOne(char *data, int size)
 {
 	int i;
-	
-	ClearLcd();
-	NutSleep(5);
+	LcdWriteByte(WRITE_COMMAND, 0x80);
+	NutSleep(2);
+	for(i = 0; i < size; i = i + 1){
+		LcdChar(data[i]);
+	}
+}
+
+void LcdArrayLineTwo(char *data, int size){
+	int i;
+	LcdWriteByte(WRITE_COMMAND, 0xC0);
+	NutSleep(2);
 	for(i = 0; i < size; i = i + 1){
 		LcdChar(data[i]);
 	}

+ 3 - 2
display.h

@@ -53,8 +53,9 @@ extern void LcdChar(char);
 extern void LcdBackLight(u_char);
 extern void LcdInit(void);
 extern void LcdLowLevelInit(void);
-void ClearLcd(void);
-void LcdArray(char*, int);
+extern void ClearLcd(void);
+extern void LcdArrayLineOne(char*, int);
+extern void LcdArrayLineTwo(char*, int);
 
 #endif /* _Display_H */
 /*  ÍÍÍÍ  End Of File  ÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */

+ 9 - 5
main.c

@@ -225,7 +225,8 @@ int main(void)
 	 * Kroeske: time struct uit nut/os time.h (http://www.ethernut.de/api/time_8h-source.html)
 	 *
 	 */
-	tm gmt;
+	struct _tm gmt;
+	
 	/*
 	 * Kroeske: Ook kan 'struct _tm gmt' Zie bovenstaande link
 	 */
@@ -256,10 +257,10 @@ int main(void)
 	 * Kroeske: sources in rtc.c en rtc.h
 	 */
     X12Init();
-    if (X12RtcGetClock(&gmt) == 0)
-    {
-		LogMsg_P(LOG_INFO, PSTR("RTC time [%02d:%02d:%02d]"), gmt.tm_hour, gmt.tm_min, gmt.tm_sec );
-    }
+
+	
+    gmt = GetRTCTime();
+	LogMsg_P(LOG_INFO, PSTR("RTC current time [%02d:%02d:%02d]"), gmt.tm_hour, gmt.tm_min, gmt.tm_sec );
 
 
     if (At45dbInit()==AT45DB041B)
@@ -281,6 +282,9 @@ int main(void)
 
 	/* Enable global interrupts */
 	sei();
+	char text[3] = {gmt.tm_hour, ':',gmt.tm_min};
+	LcdArrayLineOne(text,3);
+	LcdArrayLineTwo(text,3);
     for (;;)
     {		
 		if (checkOffPressed() == 1){

+ 6 - 0
rtc.c

@@ -468,4 +468,10 @@ int X12Init(void)
     return (rc);
 }
 
+struct _tm GetRTCTime(){
+	struct _tm gmt;
+	X12RtcGetClock(&gmt);
+	return gmt;
+}
+
 

+ 1 - 0
rtc.h

@@ -153,6 +153,7 @@ extern int X12RtcWrite(int nv, CONST u_char *buff, size_t len);
 
 extern int X12EepromRead(u_int addr, void *buff, size_t len);
 extern int X12EepromWrite(u_int addr, CONST void *buff, size_t len);
+extern tm GetRTCTime(void);
 
 /* End of prototypes */
 #endif