// Power on 32-bit timers
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<10);
LPC_IOCON->PIO0_6 &= ~0x07;
LPC_IOCON->PIO0_6 |= 0x04; //C32B1_MAT0
LPC_IOCON->PIO0_7 &= ~0x07;
LPC_IOCON->PIO0_7 |= 0x04; //C32B1_MAT1
LPC_IOCON->PIO0_8 &= ~0x07;
LPC_IOCON->PIO0_8 |= 0x04; //C32B1_MAT2
LPC_IOCON->PIO0_9 &= ~0x07;
LPC_IOCON->PIO0_9 |= 0x04; //C32B1_MAT3
/// Setup the external match register
LPC_CT32B0->EMR = (1<<EMC0) | MATCH0 | (1<<EMC1) | MATCH1 | (1<<EMC2) | MATCH2 | (1<<EMC3) | MATCH3;
/// Set prescaler
LPC_CT32B0->PR = ((SystemCoreClock/PWM_FREQUENCY)/1024)-1;
/* Enable the selected PWMs */
LPC_CT32B0->PWMC = MATCH3 | MATCH0 | MATCH1 | MATCH2;
/// Set PWM period on MATCH3
LPC_CT32B0->MR3 = MAXSPEED;
LPC_CT32B0->MR0 = 0x00;
/// Set match control register
LPC_CT32B0->MCR = 1<<10;
/// Reset pwm
LPC_CT32B0->TCR = 0x02;
/// Enable pwm
LPC_CT32B0->TCR = 0x01;
|