- 打卡等级:初来乍到
- 打卡总天数:8
- 最近打卡:2025-03-02 14:37:49
注册会员
- 积分
- 85
|
思路是,通过引脚的切换,检测两个风机的PWM输入。可以在主程序中没2S切换一次,两个风机都检测不到了,在初始化过程中设定固定一个,都可以检测到脉冲信号。
如果切换,两路都是0 ,单独一路都有用,请前辈指点一下!!!
主程序这样的:
while (1)
{
if(SystemTick%2000 == 0) //2S一次
{
if(isPWM4_Moto4 == 0)
{
isPWM4_Moto4 = 1;
//PWMA_PS |= PWM4_2; //风机1
PWMA_PS |= PWM4_3; //风机4
}
else
{
PWMA_PS |= PWM4_2; //风机1
//PWMA_PS |= PWM4_3; //风机4
}
for(i=0;i<5;i++)
{
printf("CH%d: %u ",(int)i,Cycles);
}
}
}
中断中这样处理的:
void PWMA_ISR() interrupt PWMA_VECTOR
{
u16 ccr;
if(PWMA_SR1 &0x10) //PWM4 风机1或风机4
{
PWMA_SR1 &= ~0x10;
ccr = (PWMA_CCR4H<<8)+PWMA_CCR4L;
if(isPWM4_Moto4 == 1)
{
Cycles[3] = ccr;
}
else
{
Cycles[0] = ccr;
}
}
}
|
|