#include "LPC15xx.h"
void SCT0_Init(void)
{
LPC_SYSCON->SYSAHBCLKCTRL1 |= EN1_SCT0; // enable the SCT0 clock
LPC_SCT0->CONFIG = (1 << 0) | (1 << 17); // unified 32-bit timer, auto limit
// Timer Limit set to 10msec
LPC_SCT0->MATCH[0].U = (SystemCoreClock/100)-1; // match 0 @ 100 Hz
LPC_SCT0->MATCHREL[0].U = (SystemCoreClock/100)-1;
// Check MATCH and MATCHRELOAD reg work
LPC_SCT0->MATCH[1].U = (SystemCoreClock/10000)-1;
LPC_SCT0->MATCHREL[1].U = (SystemCoreClock/1000)-1;
LPC_SCT0->EVENT[0].STATE = 0xFFFFFFFF; // event 0 happens in all states
LPC_SCT0->EVENT[0].CTRL = (1 << 12); // match 0 condition only
LPC_SCT0->EVEN = (1 << 0); // event 0 generates an interrupt
NVIC_EnableIRQ(SCT0_IRQn); // enable SCT0 interrupt
LPC_SCT0->CTRL_U &= ~(1 << 2); // clear HALT status
}
|