view target-utils/pirexplore/rtc.c @ 821:16bee7b6bd6b
buzplayer: PWT needs to be turned on in order to not hang
author |
Mychaela Falconia <falcon@freecalypso.org> |
date |
Sun, 30 May 2021 04:01:33 +0000 (2021-05-30) |
parents |
e7502631a0f9 |
children |
|
line source
#include "types.h"
#include "rtc.h"
static void
read_time(tm)
struct rtctime *tm;
{
tm->year = RTC_REGS.rtc_cur.year;
tm->month = RTC_REGS.rtc_cur.month;
tm->day_of_month = RTC_REGS.rtc_cur.day_of_month;
tm->day_of_week = RTC_REGS.rtc_cur.day_of_week;
tm->hours = RTC_REGS.rtc_cur.hours;
tm->minutes = RTC_REGS.rtc_cur.minutes;
tm->seconds = RTC_REGS.rtc_cur.seconds;
}
void
cmd_rtc()
{
u8 ctrl;
struct rtctime time1, time2;
int c;
ctrl = RTC_REGS.rtc_ctrl_reg;
printf("RTC_CTRL_REG = %02X ", ctrl);
switch (ctrl) {
case 0x00:
printf("(frozen)\n");
break;
case 0x01:
printf("(running)\n");
break;
default:
printf("(unexpected)\n");
return;
}
printf("Reading RTC time");
for (;;) {
c = serial_in_poll();
if (c >= 0) {
printf("<INTERRUPT>\n");
return;
}
read_time(&time1);
read_time(&time2);
if (!bcmp(&time1.minutes, &time2.minutes, 6))
break;
}
printf("\nDATE %02X-%02X-%02X DOW %02X TIME %02X:%02X:%02X\n",
time2.year, time2.month, time2.day_of_month, time2.day_of_week,
time2.hours, time2.minutes, time2.seconds);
}
void
cmd_rtccomp()
{
printf("%04X\n", (RTC_REGS.rtc_comp_msb_reg << 8) |
RTC_REGS.rtc_comp_lsb_reg);
}