DebugLab 发表于 2024-8-17 12:35:06

vb2002 发表于 2024-8-17 12:32
只要用定时器生成pwm就有
直接用pwm没有

提高PWM频率可以解决

vb2002 发表于 2024-8-17 12:46:08

DebugLab 发表于 2024-8-17 12:35
提高PWM频率可以解决

已经用 1us了.还是不行
就是有
用1us以后,按键也有些延迟了

soma 发表于 2024-8-17 13:16:12

用逻辑分析仪比较直观观察

vb2002 发表于 2024-8-17 13:52:02

本帖最后由 DebugLab 于 2024-8-18 18:34 编辑

wnagming 发表于 2024-8-17 13:09
这条纹与单片机没什么关系,是摄像头与LED闪烁频率吻合导致的,你可以改变一下PWM周期试试,话说你肉眼能看 ...
肉眼看不到,就是手机拍照看得到,
用自带的硬件pwm就没有,
然后用官方那个15里面的示例16位pwm也没

网老四 发表于 2024-8-17 14:53:04

这不叫嘿嘿的纹波,
这是LED灯驱动的频闪现象.
你中断函数里面代码处理花时间太多了,导致实际输出PWM不稳定,或者实际PWM调节周期过慢引起.定时器时钟越快,中断影响越大.
你用定时器做PWM时候,没有必要另加计数器变量做控制,定时器本身就能实现PWM输出,不需要每次进中断处理

vb2002 发表于 2024-8-17 18:37:49

本帖最后由 DebugLab 于 2024-8-18 18:32 编辑

网老四 发表于 2024-8-17 14:53
这不叫嘿嘿的纹波,
这是LED灯驱动的频闪现象.
你中断函数里面代码处理花时间太多了,导致实际输出PWM不稳定, ...
我见以前那些89c52教程都是这样处理的

vb2002 发表于 2024-8-17 18:45:03

网老四 发表于 2024-8-17 14:53
这不叫嘿嘿的纹波,
这是LED灯驱动的频闪现象.
你中断函数里面代码处理花时间太多了,导致实际输出PWM不稳定, ...

周期不慢了,最快就是 1us了,,

网老四 发表于 2024-8-17 19:06:12

vb2002 发表于 2024-8-17 18:45
周期不慢了,最快就是 1us了,,

定时器的1us不是PWM周期,是PWM时钟哈,你代码里的PWM周期理论是150个PWM时钟
但每次定时器中断处理时间就远不止1us,所以,实际PWM周期要大得多,还不稳定,跟求余语句执行时间相关

hyjs 发表于 2024-8-17 21:11:36

{:4_165:}类似于小的杂波信号

hyjs 发表于 2024-8-17 21:12:27

基本都有的{:4_165:},小的纹波别纠结,大的在考虑{:4_165:}
页: 1 2 [3] 4
查看完整版本: 我定时器生成的pwm有波纹怎么回事