#include <stdio.h>
#include <proto/dos.h>
#include <proto/timer.h>



int main(int argc, char** argv)
{

	union {
		struct EClockVal   e;
		unsigned long long u;
	} ev1, ev2;

	unsigned long rate, ticks;
	double measured;

	printf("EClock test...\n");

	rate = ReadEClock(&ev1.e);
	Delay(500);
	ReadEClock(&ev2.e);
	
	ticks = (unsigned long)(ev2.u - ev1.u); 
	
	measured = (double)ticks/(double)rate;
	
	
	printf(
		"Reported EClock rate %lu Hz\n"
		"EClockVal ev1   = 0x%08X:%08X\n"
		"EClockVal ev2   = 0x%08X:%08X\n"
		"EClockVal ticks = %lu\n"
		"Measured duration of requested 10s delay: %0.3fs\n",
		rate,
		ev1.e.ev_hi, ev1.e.ev_lo,
		ev2.e.ev_hi, ev2.e.ev_lo,
		ticks,
		measured
	);
	return 0;
}