// (C) 2020 Philip Endecott.
// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENCE.txt or copy at https://www.boost.org/LICENSE_1_0.txt

#ifndef lipstick_rtc_hh
#define lipstick_rtc_hh

#include "registers.hh"
#include "clocks.hh"


inline void setup_rtc()
{
  *CCR = 2;  // Set CTCRST, clear CLKEN.
  *CCR = 0;  // Clear CTCRST.
  constexpr int preint  = (f_pclk/32768) - 1;
  constexpr int prefrac = f_pclk - ((preint+1) * 32768);
  *PREINT = preint;
  *PREFRAC = prefrac;
  *CCR = 1;  // Set CLKEN.
}


inline int rtc_read_hours()
{
  return *HOUR;
}
inline int rtc_read_minutes()
{
  return *MIN;
}
inline int rtc_read_seconds()
{
  return *SEC;
}


#endif

