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
- 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());
}
}
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
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());
} }