Pārlūkot izejas kodu

Merge pull request #1 from jancoow/guus-&-sander

Guus & sander
Janco Kock 9 gadi atpakaļ
vecāks
revīzija
5de13aa415
5 mainītis faili ar 49 papildinājumiem un 12 dzēšanām
  1. 12 4
      display.c
  2. 3 2
      display.h
  3. 27 6
      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  ÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ */

+ 27 - 6
main.c

@@ -191,6 +191,22 @@ static void SysControlMainBeat(u_char OnOff)
     }
 }
 
+void displayDate(){
+	struct _tm gmt;
+	gmt = GetRTCTime();
+	char str[13];
+	sprintf(str, "   %02d/%02d/%04d", gmt.tm_mday, gmt.tm_mon, gmt.tm_year+1900);
+	LcdArrayLineOne(str,13);
+}
+
+void displayTime(){
+	struct _tm gmt;
+	gmt = GetRTCTime();
+	char str[12];
+	sprintf(str, "    %02d:%02d:%02d", gmt.tm_hour, gmt.tm_min, gmt.tm_sec);
+	LcdArrayLineTwo(str,12);
+}
+
 int timer(time_t start){
 	time_t diff = time(0) - start;
 	return diff;
@@ -225,7 +241,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
 	 */
@@ -236,7 +253,7 @@ int main(void)
     WatchDogDisable();
 
     NutDelay(100);
-
+	
     SysInitIO();
 	
 	SPIinit();
@@ -256,10 +273,9 @@ 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 time [%02d:%02d:%02d]"), gmt.tm_hour, gmt.tm_min, gmt.tm_sec );
+	
 
 
     if (At45dbInit()==AT45DB041B)
@@ -281,19 +297,24 @@ int main(void)
 
 	/* Enable global interrupts */
 	sei();
+	
     for (;;)
     {		
+		//Check if a button is pressed
 		if (checkOffPressed() == 1){
 			start = time(0);
 			running = 1;
 		}
 		
+		//Check if background LED is on, and compare to timer
 		if (running == 1){
 			if (timer(start) >= 10){
 				running = 0;
 				LcdBackLight(LCD_BACKLIGHT_OFF);
 			}
 		}
+		displayTime();
+		displayDate();
 		
         WatchDogRestart();
     }

+ 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