找回密码
 立即注册
查看: 113|回复: 2

STC8G1K08A 的 PCA ECF、ECCFn(捕获、软定时)中断全正常,就PWM既无输出、也不中断

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-02-09 13:48:31
已绑定手机

2

主题

3

回帖

16

积分

新手上路

积分
16
发表于 2026-2-7 13:57:37 | 显示全部楼层 |阅读模式
《STC8G1K08A 的 PCA ECF、ECCFn(捕获、软定时、高速输出)中断全正常,就PWM既无输出、也不中断》
程序就是【STC8G1K08A.PDF】18.4.1 PCA输出PWM(6/7/8/10 位)示范【汇编代码】。注意 STC8G1K08A 是8Pin,
无关的P0、P1、P2、P4、及10 位PWM 相关代码 全可删除。CCAPM2相关代码也全删除(8Pin-8G1K08A)没有。
求问者偏爱 STC408AS 及 8G1K08 的【汇编语言】编程已多年,检验了RS(包括MOD0的半双工准双向2线SPI)、SPI、I2C等接口的各项功能全符合。
检验了仅占用1个定时器实现监控单个按键的单击、双击、长按、及断电控制操作功能(使电器仅需1个按键或电源开关就可切换功能)、同时ADC定时采样或PWM控制(舵机)的底层程序框架【实质是4组R0-R7及20H-2FH位寻址16字节的巧妙应用分配,及中断程序的短指令标记法在主休闲循环判标记执行】。
【奇怪的是惟独这么简单的 CCP0 ,1=P3.2, P3.3 PWM】不行找不到原因 ?


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:693
  • 最近打卡:2026-03-21 14:40:05
已绑定手机
已实名认证

130

主题

3383

回帖

8815

积分

版主

积分
8815
发表于 2026-2-7 14:47:22 | 显示全部楼层
考虑有没有可能是I/O口未设置为输出模式?STC8G系列单片机:除 P3.0 和 P3.1 外,其余所有 I/O 口上电后的状态均为高阻输入状态,用户在使用 I/O 口前必须先设置 I/O 口模式
默认的高阻是可以正常读取信号之类的进行操作,但是,输出就需要主动设置了
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2026-02-09 13:48:31
已绑定手机

2

主题

3

回帖

16

积分

新手上路

积分
16
发表于 2026-2-9 13:48:31 | 显示全部楼层
非常感谢两位提示、或帮助把问题归类。问题找到:《STC8G1K08调试PWM特别注意手册中未注明的要点》

1、MOV        CCAPM0, #010x001xB 是开启PWM模式,但要看出效果,CCP0【P3.2-8Pin 或 P1.1-20Pin】必须先设置强上拉输出模式。而不象《STC15W408AS手册.pdf》中所说的“准双向(弱上拉)输出模式在PWM时会自动转强上拉输出模式”。更意外的是《STC8G1K08[A]手册.pdf》中的PWM程序范例,也初始化为准双向(弱上拉)输出模式,那在 CCP0【P3.2-8Pin 或 P1.1-20P】脚通常测不到PWM方波,特别是加了RC低通滤波测量(但当 MOV CCAP0H, #0 会见到总是输出1;只要 EPC0H=1,PWM总是输出低。而所有《STC手册.pdf》说还要CCAP0H=FFH也是错的)。

2、MOV        CCAPM0, #01010011B 是开启PWM中断,在中断处理程序中不能有 MOV CCAP0H/L, #0。否则无论 CL=0-255,PWM输出都是1,没有上下沿变化,也就没有中断。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-22 06:34 , Processed in 0.101153 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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