/*------------------------------------------------------------------------- RTC library Written by Michael C. Miller. I invest time and resources providing this open source code, please support me by dontating (see https://github.com/Makuna/Rtc) ------------------------------------------------------------------------- This file is part of the Makuna/Rtc library. Rtc is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Rtc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with Rtc. If not, see . -------------------------------------------------------------------------*/ #include #include "RtcUtility.h" uint8_t BcdToUint8(uint8_t val) { return val - 6 * (val >> 4); } uint8_t Uint8ToBcd(uint8_t val) { return val + 6 * (val / 10); } uint8_t BcdToBin24Hour(uint8_t bcdHour) { uint8_t hour; if (bcdHour & 0x40) { // 12 hour mode, convert to 24 bool isPm = ((bcdHour & 0x20) != 0); hour = BcdToUint8(bcdHour & 0x1f); if (isPm) { hour += 12; } } else { hour = BcdToUint8(bcdHour); } return hour; }