displayHandler.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. NutDelay(100);
  41. char str[12];
  42. sprintf(str, " %02d:%02d:%02d", alarmtime.tm_hour, alarmtime.tm_min - 80, alarmtime.tm_sec);
  43. if (line_number > -1 && line_number < 2){
  44. (*write_display_ptr[line_number])(str, 12);
  45. }
  46. char str2[16];
  47. sprintf(str2," Wekker ");
  48. if (line_numberTwo > -1 && line_numberTwo < 2){
  49. (*write_display_ptr[line_numberTwo])(str2, 16);
  50. LcdBacklightKnipperen(startLCD);
  51. }
  52. }