对于您提到的问题,以下是专业的解答:
问题分析
您提到在P2上同时输出多个PWM引脚时,会导致其他引脚不稳定。您还提到当P23配置PWM时,PID控制不正常,电压不够,但示波器显示没问题,因此怀疑是配置问题。以下是详细分析:
1.PWM引脚不稳定的原因
PWM引脚的不稳定通常与以下因素有关:
引脚电压设置错误:通常,PWM引脚的电压设置为逻辑高(1V左右)。如果引脚电压异常(如漏电或引脚处于低电平),会导致PWM不正常工作。
引脚状态错误:引脚状态(如开、关或不工作)可能影响PWM的正常运行。例如,如果引脚处于低电平,可能需要调整PWM位模式。
频率设置不一致:如果多个PWM引脚需要不同的频率,可能需要使用不同的频率设置或调制器(如MPLAB MTD)来实现。然而,您提到未屏蔽时P23的PWM波形异常,可能是引脚电压或频率设置的问题。
引脚与引脚之间的干扰:P2的结构可能导致多个PWM引脚之间存在耦合效应(Crosstalk)。如果未屏蔽P23的PWM,可能导致引脚之间的电压干扰,从而影响整体控制。
2. 检查Mian函数中的设置
您提到工程文件已发,所有配置均在Mian函数中的MyInit()函数中。您提供的代码显示:
- c
- void pwminit(PWMCHenum pwmch, uint32 freq, uint32 duty)
- {
- uint32 matchtemp;
- uint32 periodtemp;
- uint16 freqdiv = 0;
- PSW2 |= 0x80;
- // GPIO需要设置为推挽输出
- pwmsetgpio(pwmch);
- }
复制代码
这里,PSW2 |= 0x80 通常用于设置PWM引脚的推挽状态(通常为逻辑高)。如果P2的引脚电压设置异常,可能导致PWM不正常工作。需要检查P2的引脚电压设置是否正确。
3. 检查逐飞库的设置
逐飞库的配置可能影响PWM输出。如果您未正确配置逐飞库,可能导致PWM引脚不稳定。建议检查逐飞库的PWM配置文件(如P23配置文件),确保所有引脚的频率、位模式和电压设置正确。
4. 电压异常的检查
您的示波器显示电压正常,但P23的PWM输出异常。这可能与引脚电压设置有关。建议检查P2的引脚电压设置,确保以下电压值:
常态引脚电压:+5V
推挽引脚电压:1V
如果引脚电压异常,可能需要调整P2的引脚电压设置。
5. 解决建议
1. 检查引脚电压设置:确保P2的引脚电压设置为+5V或1V,而不是异常值。
2. 检查引脚状态:确保引脚处于正确的状态(如推挽输出)。
3. 检查频率设置:如果多个PWM引脚需要不同的频率,可能需要使用不同的频率设置或调制器(如MPLAB MTD)。
4. 检查逐飞库的配置:确保逐飞库的配置正确,特别是P23的配置文件。
5. 检查P2的结构:P2的结构可能导致PWM引脚之间存在耦合效应,可能需要使用低伏或高伏引脚来减少耦合。
6. 建议查阅文档
查阅P2的PWM配置文档,确保所有引脚的设置正确。
查阅逐飞库的PWM配置文件,确保所有引脚的频率、位模式和电压设置正确。
查阅P2的引脚电压设置文档,确保引脚电压正确。
总结
您提到的P23PWM不稳定可能是以下原因的综合结果:
引脚电压设置异常
引脚状态错误
频率设置不一致
梅花效应(Crosstalk)
逐飞库的配置问题
建议检查上述因素,确保P2的引脚电压、频率和状态设置正确。如果问题依然存在,可能需要进一步查阅P2的结构或逐飞库的配置文件。
[本文内容由国芯人工智能辅助生成,仅供参考] |