PWM Pin 23 and 25 not working??

10 Dec 2011

I am trying to read in the value on pin 20 from pwm pin 23 or 25, but the values are always 0. I am not sure why.

Here is the code

  1. include "mbed.h"

AnalogIn in(p20);

void _OnPWM() {

NVIC_DisableIRQ(PWM1_IRQn);

LPC_PWM1->MR1 = 0xFF; LPC_PWM1->MR2 = 0xFF; LPC_PWM1->MR3 = 0xFF; LPC_PWM1->MR4 = 0xFF;

LPC_PWM1->LER |=0x15;

LPC_PWM1->IR |= 0x73F; NVIC_EnableIRQ(PWM1_IRQn);

return;

}

int main() {

LPC_SC->PCONP |= (1 << 6); LPC_SC->PCLKSEL0 |= (3 << 12); LPC_PINCON->PINSEL4 |= 0x044;

LPC_PINCON->PINMODE4 |= 0x555;

LPC_PINCON->PINMODE_OD2 |=0x000;

LPC_PWM1->TCR |= 0x9;

LPC_PWM1->MCR |= 0x3;

LPC_PWM1->PCR |= 0x1514;

LPC_PWM1->PR |= 0xFF; LPC_PWM1->MR0 = 0xFF;

LPC_PWM1->MR1 = 0xFF; LPC_PWM1->MR2 = 0xFF; LPC_PWM1->MR3 = 0xFF; LPC_PWM1->MR4 = 0xFF;

LPC_PWM1->LER |=0x15;

LPC_PWM1->CTCR = 0; LPC_PWM1->CCR = 0;

NVIC_DisableIRQ(PWM1_IRQn); NVIC_SetVector(PWM1_IRQn,(uint32_t)&_OnPWM); LPC_PWM1->IR |= 0x73F; NVIC_EnableIRQ(PWM1_IRQn); while(1) { printf("Value: %f\r\n", in.read());

} }