- 打卡等级:初来乍到
- 打卡总天数:4
- 最近打卡:2025-06-25 16:37:57
新手上路
- 积分
- 46
|
发表于 2025-6-17 13:29:12
|
显示全部楼层
楼主刚才的问题应该是解决了,144MHz作为计数器的基频,现在问题是,测量低一点的频率,计数器溢出,那么计数器溢出中断怎么配置的?WritePWMA((char)&PWMA_CR1, 0x03); //开始计时,允许计时器溢出更新中断这个配置对吗?中断里面 sta = ReadPWMA((char)&PWMA_SR1);
if(sta & 0X01)//计时器溢出事件中断
{
jishiyichunum++;
}这样检测对吗?实测没有效果
我是捕获cc1的周期的,中断程序如下:
/*捕获中断、事件更新中断*/
void PWMA_ISR() interrupt 26
{
u32 cnt;
u8 sta;
sta = ReadPWMA((char)&PWMA_SR1);
if(sta & 0X01)//计时器溢出事件中断
{
jishiyichunum++;
}
if(sta & 0X02)//CC1捕获中断
{
P07 = ~P07;
// PWMA_SR1 &=~0X02;
cnt = ReadPWMA((char)&PWMA_CCR1H);
cnt = (cnt<<8)+ReadPWMA((char)&PWMA_CCR1L)+jishiyichunum*0xffff;//CC1捕获周期宽度
zhuce_time_interval = cnt;
jishiyichunum = 0;
// TIM1CH1_CAPTURE_VAL[TIM1CH1_CAPTURE_num]= cnt;
// TIM1CH1_CAPTURE_num++;
}
WritePWMA((char)&PWMA_SR1, 0x00); //清除完成标志
}
|
|