Newer
Older
#include <ts7200.h>
void ClockInit(Clock *MyClock)
{
MyClock->ClockCount = 0;
MyClock->LastTimerValue = CLOCK_LOAD_VALUE;
unsigned int* Clock3LoadRegister = (unsigned int *)(TIMER3_BASE + LDR_OFFSET);
unsigned int* Clock3ControlRegister = (unsigned int *)(TIMER3_BASE + CRTL_OFFSET);
// set interval
*Clock3LoadRegister = CLOCK_LOAD_VALUE;
// enable clock
*Clock3ControlRegister = ENABLE_MASK | ClockConfig;
}
void ClockUpdate(Clock *MyClock)
{
unsigned int *ValRegister = (unsigned int *)(TIMER3_BASE+VAL_OFFSET);
unsigned int CurrentTimerValue = *ValRegister;
if(CurrentTimerValue > MyClock->LastTimerValue){
MyClock->ClockCount = MyClock->ClockCount + 1;
MyClock->bChanged = 1;
} else {
MyClock->bChanged = 0;
}
MyClock->LastTimerValue = CurrentTimerValue;
}