32G8K64-42I-LQFP48比较器输出结果的电瓶转换和中断波形对不上。
1.我使用比较器做的BLDCM电机的过零检测,手动旋转转子测试中发现比较器结果输出P3.4口的波形是对的,但在比较器中断中做电瓶反转,测试出来的波形理应和P3.4能对的上,但是结果却是差别很大,麻烦看下是什么原因。
其中CH1(黄色)是P2.3中断电平反转测试, CH2(蓝色)是比较器结果输出口P3.4
1、CMP_config()这个函数没有看到在哪里调用;
2、V_COM_NIE,应该只需要调用一次就可以了吧,不用放在while里面吧;
3、芯片上电后除了P3.0,P3.1外都是高阻输入状态,直接使用IO取反是否合适。
设置一下P23的属性,再试下,如果还有问题中间可以使用一个标志位试下;
bit flag;
flag = !flag;
P23 = flag;
类似这种 templeton 发表于 2024-10-16 09:25
1、CMP_config()这个函数没有看到在哪里调用;
2、V_COM_NIE,应该只需要调用一次就可以了吧,不用放在wh ...
1.这个是用的官网参考例程,调用是再mian函数中的SYS_Init()函数中,在系统初始化函数中,
2.IO口的初始化P5.0 P5.1 P3.7 P3.6和比较器相关的使用的是高阻输入, P3.4和P2.3使用的是标准的输入输出设置,
3.P2.3电平反转我在mian函数中的while(1)中测试过是没问题的
4.P2.3电平反转放在中断中和P3.4口比较输出波形对不上,应该是进入中断有问题,但是我已经将中断优先级由0改到3还是没有改变,所以很奇怪。 估计是示波器测量问题,带宽不够或者开了滤波,很窄的干扰尖脉冲没有显示出来. 检查边沿是否有抖动导致多次进入中断 网老四 发表于 2024-10-16 11:35
估计是示波器测量问题,带宽不够或者开了滤波,很窄的干扰尖脉冲没有显示出来. ...
示波器带宽应该是够得,因为测试比较结果输出P3.4的波形是没有问题的。 DebugLab 发表于 2024-10-16 12:53
检查边沿是否有抖动导致多次进入中断
现在问题应该不是多次进入中断,而是进入中断的次数不足,CH2(蓝色)通道是比较器结果输出P3.4的波形, 黄色是进入中断IO口反转的波形,比较器设置下降沿触发进入中断,理应在蓝色波形每次由高电平转到低电平的时候要进去一次中断(中断中的IO口电平反转),但是实际看起来好像是没有规律的。 P3.4输出是硬件输出的,不会受到软件运行的影响。
比较器中断取反输出则受到软件运行的影响(比如别的同级或更高优先级中断程序执行时间比较长),
对毛刺的响应也很快(上升沿、下降沿时的毛刺、抖动),
所以才出现你这种情况。
你可以允许比较器内部的回差电压,外部电路增加适当的RC滤波。
页:
[1]