yelan 发表于 2024-5-21 17:33:40

STC8G1K08 pwm

如何用STC8G1K08生成一个125KHZ频率的pwm波形

神农鼎 发表于 2024-5-21 17:44:56

如果只是 要 125KHz的时钟,
可以用 定时器的对外时钟分频管脚,不需要产生中断
T0CLKO, T1CLKO, T2CLKO, T4CLKO, MCLKO




yelan 发表于 2024-5-21 18:20:47

神农鼎 发表于 2024-5-21 17:44
如果只是 要 125KHz的时钟,
可以用 定时器的对外时钟分频管脚,不需要产生中断
T0CLKO, T1CLKO, T2CLKO, T ...

好的,我去看看,谢谢

yelan 发表于 2024-5-21 18:40:44

神农鼎 发表于 2024-5-21 17:44
如果只是 要 125KHz的时钟,
可以用 定时器的对外时钟分频管脚,不需要产生中断
T0CLKO, T1CLKO, T2CLKO, T ...

这个可以用PCA来实现吗

梁工 发表于 2024-5-21 19:16:16

本帖最后由 梁工 于 2024-5-22 11:08 编辑

使用定时器高速脉冲输出或主频分频输出最方便,不占用CPU时间。
如果你是读RF-ID,一个定时器或主频分频输出125KHz方波,通过NPN+PNP缓冲驱动线圈,同时用比较器恢复调制信号,直接软件解曼彻斯特编码,连LM358都不用,单个MCU就解决了,读取距离可以达到8cm以上。

神农鼎 发表于 2024-5-21 19:31:27

yelan 发表于 2024-5-21 18:40
这个可以用PCA来实现吗

PCA 不方便,要反复进中断修改比较值,太复杂了,我已不会;
用T0CLKO, T1CLKO, T2CLKO,对CPU时钟直接分频输出,不用中断

yelan 发表于 2024-5-22 08:24:35

神农鼎 发表于 2024-5-21 19:31
PCA 不方便,要反复进中断修改比较值,太复杂了,我已不会;
用T0CLKO, T1CLKO, T2CLKO,对CPU时钟直接分 ...

好的好的,十分感谢

yelan 发表于 2024-5-22 08:25:11

梁工 发表于 2024-5-21 19:16
使用定时器最方便,不占用CPU时间。
如果你是读RF-ID,一个定时器发出125KHz方波,通过NPN+PNP缓冲驱动线圈 ...

好的好的,十分感谢

yelan 发表于 2024-5-22 09:13:30

梁工 发表于 2024-5-21 19:16
使用定时器最方便,不占用CPU时间。
如果你是读RF-ID,一个定时器发出125KHz方波,通过NPN+PNP缓冲驱动线圈 ...
"C:\Users\Admin\Desktop\1.png"
那如果是要这个引脚输出方波呢,CCPO/TxD2/ADC1/P1.1

梁工 发表于 2024-5-22 11:07:43

yelan 发表于 2024-5-22 09:13
那如果是要这个引脚输出方波呢,CCPO/TxD2/ADC1/P1.1

那就要用CCP0输出高速脉冲或PWM,输出高速脉冲要用250KHz的速度(4us)中断处理,基本耗掉CPU时间,不建议。
建议使用CCP0输出PWM,使用7位PWM,时钟为125*128=16000KHz=16MHz,使用外部晶振比较好,频率准确。使用内部ORC时钟的话,16MHz可能是频率死区,有部分IC调整不到16M。
所以最方便的是定时器自动脉冲输出或主频分频输出。定时器0、1、2均可以输出125K方波并且不耗CPU时间。
通过主频分频从P5.4也可以输出125K时钟,也不占CPU时间,比如12MHz经过96分频就可以输出125KHz方波,这是最推荐的方式。
页: [1]
查看完整版本: STC8G1K08 pwm