Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

58 rindas
856 B

  1. #include "Rtc.h"
  2. #include <Wire.h>
  3. #include <MD_DS3231.h>
  4. #define LOGGER_NAME "Rtc"
  5. namespace rtc {
  6. void powerOn() {
  7. digitalWrite(RTC_PWR, HIGH);
  8. pinMode(RTC_PWR, OUTPUT);
  9. Wire.begin();
  10. }
  11. void powerOff() {
  12. pinMode(RTC_PWR, INPUT);
  13. digitalWrite(RTC_PWR, LOW);
  14. //turn off i2c
  15. TWCR &= ~(bit(TWEN) | bit(TWIE) | bit(TWEA));
  16. //disable i2c internal pull ups
  17. digitalWrite(A4, LOW);
  18. digitalWrite(A5, LOW);
  19. }
  20. void setup() {
  21. RTC.control(DS3231_12H, DS3231_OFF); //24 hours clock
  22. RTC.control(DS3231_INT_ENABLE, DS3231_ON); //INTCN ON
  23. }
  24. Time getTime() {
  25. RTC.readTime();
  26. return {
  27. RTC.yyyy,
  28. RTC.mm,
  29. RTC.dd,
  30. RTC.h,
  31. RTC.m,
  32. RTC.s
  33. };
  34. }
  35. void setTime(Time time) {
  36. RTC.yyyy = time.yyyy;
  37. RTC.mm = time.mm;
  38. RTC.dd = time.dd;
  39. RTC.h = time.h;
  40. RTC.m = time.m;
  41. RTC.s = time.s;
  42. RTC.writeTime();
  43. }
  44. }