一笔长空 发表于 2023-7-11 16:49:10

【已解决】PCA模块关闭后电平如何控制

本帖最后由 一笔长空 于 2023-7-15 16:33 编辑

现在启用了PCA模块的PWM功能,使用CR=0;代码进行关闭,现在关闭后仅仅是没了脉冲,但io口的电平完全是随机的,这次停止后是高,下次有可能是低,不可控。在CR=0后面加了P26=0也不行有时还是会高电平。来请教各位老师如何解决。自己想的是在停止前先设置占空比为0然后停止,下次启动时再重新赋值占空比,感觉这样有些麻烦,有没有简单的办法{:handshake:}

乘风飞扬 发表于 2023-7-11 19:05:06



规格书里有介绍PCA PWM模式如何固定输出高低电平:


一笔长空 发表于 2023-7-11 23:03:52

乘风飞扬 发表于 2023-7-11 19:05
规格书里有介绍PCA PWM模式如何固定输出高低电平:

非常感谢您{:handshake:},成功了,现在是停止时给CCAPnH赋值0XFF使之持续为低电平,开启时给CCAPnH再赋初值调整占空比,除CCAPnH之外的都不管,原理这样对不对

梁工 发表于 2023-7-13 15:55:21

PCA-PWM连续输出0或1的方法,以PCA0(PWM0-CCP0)为例:
PCA_PWM0 &= ~0x02;        // PWM0正常输出
PCA_PWM0 |= 0x3f, CCAP0H = 0xff, CCAP0L = 0xff;        // PWM0一直输出0
PCA_PWM0 &= 0xc0, CCAP0H = 0,    CCAP0L = 0;        // PWM0一直输出1

也可以直接关闭这一路PCA,关闭后就是一个普通IO,直接输出高低电平即可。

你执行使用CR=0; 并没有关闭PCA,只是让计数器停止,则所有PCA输出就凝固,保持高电平或低电平输出。
页: [1]
查看完整版本: 【已解决】PCA模块关闭后电平如何控制