displayHandler.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // Created by Jordy Sipkema on 26/02/16.
  3. //
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <time.h>
  7. #include "display.h"
  8. #include "displayHandler.h"
  9. #include "ntp.h"
  10. #include "rtc.h"
  11. #define MONTH_OFFSET 1
  12. #define YEAR_OFFSET 1900
  13. void (*write_display_ptr[2])(char*, int) = {LcdArrayLineOne, LcdArrayLineTwo};
  14. void displayTime(int line_number){
  15. tm time;
  16. X12RtcGetClock(&time);
  17. char str[12];
  18. sprintf(str, " %02d:%02d:%02d", time.tm_hour, time.tm_min, time.tm_sec);
  19. if (line_number > -1 && line_number < 2){
  20. (*write_display_ptr[line_number])(str, 12);
  21. }
  22. }
  23. void displayDate(int line_number){
  24. tm *time;
  25. X12RtcGetClock(time);
  26. char str[13];
  27. sprintf(str, " %02d-%02d-%04d", time->tm_mday, time->tm_mon+MONTH_OFFSET, time->tm_year+YEAR_OFFSET);
  28. if(NtpIsSyncing())
  29. str[1] = 'S';
  30. if (line_number > -1 && line_number < 2){
  31. (*write_display_ptr[line_number])(str, 13);
  32. }
  33. }
  34. void displayAlarm(int line_number, int line_numberTwo)
  35. {
  36. struct _tm alarmtime;
  37. alarmtime = GetRTCTime();
  38. long flags;
  39. X12RtcGetAlarm(0,&alarmtime,0b11111111);
  40. char str[12];
  41. sprintf(str, " %02d:%02d:%02d", alarmtime.tm_hour, alarmtime.tm_min - 80, alarmtime.tm_sec);
  42. if (line_number > -1 && line_number < 2){
  43. (*write_display_ptr[line_number])(str, 12);
  44. }
  45. char str2[16];
  46. sprintf(str2," Wekker ");
  47. if (line_numberTwo > -1 && line_numberTwo < 2){
  48. (*write_display_ptr[line_numberTwo])(str2, 16);
  49. LcdBacklightKnipperen(startLCD);
  50. }
  51. }