找回密码
 立即注册
查看: 850|回复: 9

STC8G1K08 pwm

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-04-01 19:59:51

4

主题

9

回帖

926

积分

高级会员

积分
926
发表于 2024-5-21 17:33:40 | 显示全部楼层 |阅读模式
如何用STC8G1K08生成一个125KHZ频率的pwm波形
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15646
发表于 2024-5-21 17:44:56 | 显示全部楼层
如果只是 要 125KHz的时钟,
可以用 定时器的对外时钟分频管脚,不需要产生中断
T0CLKO, T1CLKO, T2CLKO, T4CLKO, MCLKO

截图202405211744217498.jpg

截图202405211744521646.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-04-01 19:59:51

4

主题

9

回帖

926

积分

高级会员

积分
926
发表于 2024-5-21 18:20:47 | 显示全部楼层
神*** 发表于 2024-5-21 17:44
如果只是 要 125KHz的时钟,
可以用 定时器的对外时钟分频管脚,不需要产生中断
T0CLKO, T1CLKO, T2CLKO, T ...

好的,我去看看,谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-04-01 19:59:51

4

主题

9

回帖

926

积分

高级会员

积分
926
发表于 2024-5-21 18:40:44 | 显示全部楼层
神*** 发表于 2024-5-21 17:44
如果只是 要 125KHz的时钟,
可以用 定时器的对外时钟分频管脚,不需要产生中断
T0CLKO, T1CLKO, T2CLKO, T ...

这个可以用PCA来实现吗

点评

PCA 不方便,要反复进中断修改比较值,太复杂了,我已不会; 用T0CLKO, T1CLKO, T2CLKO,对CPU时钟直接分频输出,不用中断  详情 回复 发表于 2024-5-21 19:31
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2024-5-21 19:16:16 | 显示全部楼层
本帖最后由 梁工 于 2024-5-22 11:08 编辑

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15646
发表于 2024-5-21 19:31:27 | 显示全部楼层
yel*** 发表于 2024-5-21 18:40
这个可以用PCA来实现吗

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-04-01 19:59:51

4

主题

9

回帖

926

积分

高级会员

积分
926
发表于 2024-5-22 08:24:35 | 显示全部楼层
神*** 发表于 2024-5-21 19:31
PCA 不方便,要反复进中断修改比较值,太复杂了,我已不会;
用T0CLKO, T1CLKO, T2CLKO,对CPU时钟直接分 ...

好的好的,十分感谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-04-01 19:59:51

4

主题

9

回帖

926

积分

高级会员

积分
926
发表于 2024-5-22 08:25:11 | 显示全部楼层
梁*** 发表于 2024-5-21 19:16
使用定时器最方便,不占用CPU时间。
如果你是读RF-ID,一个定时器发出125KHz方波,通过NPN+PNP缓冲驱动线圈 ...

好的好的,十分感谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-04-01 19:59:51

4

主题

9

回帖

926

积分

高级会员

积分
926
发表于 2024-5-22 09:13:30 | 显示全部楼层
梁*** 发表于 2024-5-21 19:16
使用定时器最方便,不占用CPU时间。
如果你是读RF-ID,一个定时器发出125KHz方波,通过NPN+PNP缓冲驱动线圈 ...


那如果是要这个引脚输出方波呢,CCPO/TxD2/ADC1/P1.1

点评

那就要用CCP0输出高速脉冲或PWM,输出高速脉冲要用250KHz的速度(4us)中断处理,基本耗掉CPU时间,不建议。 建议使用CCP0输出PWM,使用7位PWM,时钟为125*128=16000KHz=16MHz,使用外部晶振比较好,频率准确。使用  详情 回复 发表于 2024-5-22 11:07
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2024-5-22 11:07:43 | 显示全部楼层
yel*** 发表于 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方波,这是最推荐的方式。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 15:14 , Processed in 0.161785 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表