- 打卡等级:偶尔看看I
- 打卡总天数:11
- 最近打卡:2025-03-10 12:50:25
已绑定手机
中级会员
- 积分
- 254
|
//(CC3捕获TI4上升沿,CC2捕获TI4下降沿),在CC4中断里用CC4捕获值减去CC3的捕获值,得到高电平宽度。
PWMA_CCER2 = 0x00;
PWMA_CCMR3 = 0x02; // CC3为输入模式,且映射到TI4FP3上
PWMA_CCMR4 = 0x01; // CC4为输入模式,且映射到TI4FP4上
PWMA_CCER2 = 0x11; // 使能CC3/CC4上的捕获功能
PWMA_CCER2 |= 0x00; // 设置捕获极性为CC3的上升沿
PWMA_CCER2 |= 0x20; // 设置捕获极性为CC4的下降沿
PWMA_CR1 = 0x01;
PWMA_IER = 0x10; // 使能CC4捕获中断
void PWMA_ISR_Handler(void) interrupt PWMA_VECTOR
{
unsigned int cnt, cnt1, cnt2;
if (PWMA_SR1 & 0x10) // CC4IF 捕获/比较中断
{
PWMA_SR1 &= ~0x10;
cnt1 = (PWMA_CCR3H << 8) + PWMA_CCR3L;
cnt2 = (PWMA_CCR4H << 8) + PWMA_CCR4L;
cnt = cnt2 - cnt1;
}
}
上面的代码是根据样例修改的,不知为何无法进入中断。 是哪里设置的问题吗?
|
|