Hello,
I'm trying SCT timer for the first time, I would like to toggle pin 17 on the systemclock/10, but this code doesnt seem to work. Can anybody help me?
(I use the LPC824)
void SCT_Init(void){
/*The SCT operates as a unified 32-bit counter*/
LPC_SCT->CONFIG = (LPC_SCT->CONFIG & ~0x00060001) | 0x00000001;
LPC_SCT->MATCH[0].U = SystemCoreClock/10;
LPC_SCT->MATCHREL[0].U =SystemCoreClock/10;
LPC_SCT->EV[0].STATE =(1<<0);
LPC_SCT->EV[0].CTRL =(1<<12);
LPC_SCT->EV[1].STATE =(1<<0);
LPC_SCT->EV[1].CTRL =(1<<12);
LPC_SCT->OUT[0].SET =(1<<0);
LPC_SCT->OUT[0].CLR =(1<<1);
LPC_SCT->LIMIT_L =0x0003;
// LPC_SCT->CTRL_L &= ~(1<<2);
}
int main(void) {
// Read clock settings and update SystemCoreClock variable
SystemCoreClockUpdate();
printf("output from main clock is = %u \n", Chip_Clock_GetMainClockRate());
printf("output from system clock is = %u \n", Chip_Clock_GetSystemClockRate());
//set GPIO pin 12 as output
Chip_GPIO_SetPinDIR(LPC_GPIO_PORT,0,12,1);
//set GPIO pin 12 low, this will let LED1 burn
Chip_GPIO_SetPinState(LPC_GPIO_PORT,0,12,false);
/*Assign SCT_out to board GPIO*/
Chip_SWM_MovablePinAssign(SWM_SCT_OUT0_O,17);
/* Initialize the SCT clock and reset the SCT */
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SCT);
Chip_SYSCTL_PeriphReset(RESET_SCT);
/*Initialize SCT*/
SCT_Init();
/* Start the SCT counter by clearing Halt_L in the SCT control register */
Chip_SCT_ClearControl(LPC_SCT, SCT_CTRL_HALT_L);
}
return 0 ;
}
thanks!