Hi,
Regarding how to generate the event based on SCTimer, you can refer to the SDK example

This is the code to generate event with match mechanism.
#define SCTIMER_CLK_FREQ CLOCK_GetFreq(kCLOCK_Irc)
#define DEMO_FIRST_SCTIMER_OUT kSCTIMER_Out_2
#define DEMO_SECOND_SCTIMER_OUT kSCTIMER_Out_4
int main(void)
{
sctimer_config_t sctimerInfo;
uint32_t eventCounterL, eventCounterH;
uint32_t sctimerClock;
uint32_t matchValueL, matchValueH;
/* Board pin, clock, debug console init */
/* Enable clock of uart0. */
CLOCK_EnableClock(kCLOCK_Uart0);
/* Ser DIV of uart0. */
CLOCK_SetClkDivider(kCLOCK_DivUsartClk, 1U);
BOARD_InitPins();
BOARD_BootClockIRC12M();
BOARD_InitDebugConsole();
/* Enable clock of sct. */
/* Enable clock of sct. */
CLOCK_EnableClock(kCLOCK_Sct);
sctimerClock = SCTIMER_CLK_FREQ;
/* Print a note to terminal */
PRINTF("\r\nSCTimer example to use it in 16-bit mode\r\n");
PRINTF("\r\nThe example shows both 16-bit counters running and toggling an output periodically ");
SCTIMER_GetDefaultConfig(&sctimerInfo);
/* Switch to 16-bit mode */
sctimerInfo.enableCounterUnify = false;
/* Calculate prescaler and match value for Counter L for 100ms interval */
matchValueL = MSEC_TO_COUNT(100U, sctimerClock);
sctimerInfo.prescale_l = matchValueL / 65536;
matchValueL = matchValueL / (sctimerInfo.prescale_l + 1) - 1;
/* Calculate prescaler and match value for Counter H for 200ms interval */
matchValueH = MSEC_TO_COUNT(200U, sctimerClock);
sctimerInfo.prescale_h = matchValueH / 65536;
matchValueH = matchValueH / (sctimerInfo.prescale_h + 1) - 1;
/* Initialize SCTimer module */
SCTIMER_Init(SCT0, &sctimerInfo);
/* Schedule a match event for Counter L every 0.1 seconds */
if (SCTIMER_CreateAndScheduleEvent(SCT0, kSCTIMER_MatchEventOnly, matchValueL, 0, kSCTIMER_Counter_L,
&eventCounterL) == kStatus_Fail)
{
return -1;
}
SCT->DMAREQ0|=1<<eventCounterL; //Rong wrote
/* Toggle first output when Counter L event occurs */
SCTIMER_SetupOutputToggleAction(SCT0, DEMO_FIRST_SCTIMER_OUT, eventCounterL);
/* Reset Counter L when Counter L event occurs */
SCTIMER_SetupCounterLimitAction(SCT0, kSCTIMER_Counter_L, eventCounterL);
........
}
Hope it can help you
BR
XiangJun Rong