From 6c425cc7908de03324f7e86ae6096ef8d2bb76a9 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 24 May 2018 13:39:28 -0700 Subject: [PATCH] H316: Expose RTC INTERVAL and QUANTUM values in registers update testrtc.cmd testrtc.cmd updated with dynamically computed timing information --- H316/h316_rtc.c | 2 ++ H316/tests/testrtc.cmd | 24 ++++++++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/H316/h316_rtc.c b/H316/h316_rtc.c index 0eaa3440..e9a26934 100644 --- a/H316/h316_rtc.c +++ b/H316/h316_rtc.c @@ -116,6 +116,8 @@ REG rtc_reg[] = { { FLDATA (IRQ, dev_ext_int, INT_V_RTC-INT_V_EXTD) }, { DRDATA (TPS, rtc_tps, 32), PV_LEFT }, { DRDATA (WAIT, rtc_unit.wait, 24), REG_NZ + PV_LEFT }, + { DRDATA (INTERVAL, rtc_interval, 32), PV_LEFT | REG_RO }, + { DRDATA (QUANTUM, rtc_quantum, 32), PV_LEFT | REG_RO }, { NULL } }; diff --git a/H316/tests/testrtc.cmd b/H316/tests/testrtc.cmd index d4f9bc73..ff342b66 100644 --- a/H316/tests/testrtc.cmd +++ b/H316/tests/testrtc.cmd @@ -36,7 +36,23 @@ d -m 1015 177766 ; That's it... d p 1000 -echo Start your stopwatch and at the same moment type "GO". -echo The program should halt in exactly 65 seconds ... - - +set env -a RTC_INTERVAL=RTC.INTERVAL +set env -a RTC_QUANTUM=RTC.QUANTUM +set env -a RTC_TPS=RTC.TPS +set env -a RTC_DELAY=(1000*(10*(65536/RTC_QUANTUM)))/RTC_TPS +set env -a RTC_DELAY_SECS=RTC_DELAY/1000 +set env -a RTC_DELAY_MSECS=RTC_DELAY%1000 +echo The RTC runs at %RTC_TPS% ticks per second an increment of %RTC_QUANTUM% +echo on each tick. +echo The program should halt in approximately %RTC_DELAY_SECS%.%RTC_DELAY_MSECS% seconds ... +echo Starting at: %TIME%.%TIME_MSEC% +set env -a S_TIME_MSEC=((UTIME%1000000)*1000)+TIME_MSEC +GO +set env -a E_TIME_MSEC=((UTIME%1000000)*1000)+TIME_MSEC +echo Done at: %TIME%.%TIME_MSEC% +set env -a D_TIME_MSEC=E_TIME_MSEC-S_TIME_MSEC +set env -a ESECS=D_TIME_MSEC/1000 +set env -a EMSECS=D_TIME_MSEC%1000 +echo Elapsed Time: %ESECS%.%EMSECS% seconds +set env -a IPS=TICK_RATE_0*TICK_SIZE_0 +echo Running at %IPS% instructions per second