水星自动化 发表于 2023-4-4 08:57:40

PWM改变输出引脚

老师好,请教下STC8G1K08做PWM时引脚可以更改I定义到P1.3上吗?我是看到有个案例用这个芯片的P1.3输出固定频率,可调占空比的PWM来调整电压输出,一直没搞懂。请老师指点。

乘风飞扬 发表于 2023-4-4 09:12:04

本帖最后由 乘风飞扬 于 2023-4-4 10:19 编辑

STC8G1K08芯片的P1.3口没有PWM功能,T2CLKO可以输出定时器2的分频时钟,但是不能调占空比



如果必须使用这个脚输出PWM的话,可以考虑一下STC8H1K08:


WHX 发表于 2023-4-4 09:32:22

你也可以映射到别的引脚输出的,无非就是寄存器设置问题,STC官方有不少示例程序可供参考!

水星自动化 发表于 2023-4-4 09:47:42

wenhuixuan 发表于 2023-4-4 09:32
你也可以映射到别的引脚输出的,无非就是寄存器设置问题,STC官方有不少示例程序可供参考! ...

您是说,STC8G1K08的PWM输出正常是CCP0(P1.1),我可以把这个角映射到P1.3吗?

水星自动化 发表于 2023-4-4 09:52:11

乘风飞扬 发表于 2023-4-4 09:12
STC8G1K08芯片的P1.3口没有PWM功能,T2CLKO可以输出定时器2分频时钟,但是不能调占空比




就是没想明白,案例是怎么实现的,想弄明白。我在示波器上看到案例确实是固定频率,占空比变化。用STC8G1K08的P1.3脚实现的。

乘风飞扬 发表于 2023-4-4 10:21:17

本帖最后由 乘风飞扬 于 2023-4-4 10:22 编辑

水星自动化 发表于 2023-4-4 09:52
就是没想明白,案例是怎么实现的,想弄明白。我在示波器上看到案例确实是固定频率,占空比变化。用STC8G1 ...
如果输出频率不高的话通过定时器也能够实现,不过这么做比较占用CPU资源,建议更换芯片或者脚位使用硬件PWM模块来实现。

水星自动化 发表于 2023-4-4 10:35:21

乘风飞扬 发表于 2023-4-4 10:21
如果输出频率不高的话通过定时器也能够实现,不过这么做比较占用CPU资源,建议更换芯片或者脚位使用硬件PW ...

频率700Hz,您是说通过一个T2能实现频率不变,占空比变化的PWM吗?通过P1.3脚。

神农鼎 发表于 2023-4-4 10:48:37

可以的


水星自动化 发表于 2023-4-4 11:21:07

神农鼎 发表于 2023-4-4 10:48
可以的

您好,我看到的案例用的是STC8G1K08 TSSOP20。用P1.3实现的频率不变,占空比变化的PWM输出。没想明白怎样实现的,请多指教。

梁工 发表于 2023-4-4 11:49:37

水星自动化 发表于 2023-4-4 11:21
您好,我看到的案例用的是STC8G1K08 TSSOP20。用P1.3实现的频率不变,占空比变化的PWM输出。没想明白怎样 ...

STC8G1K08有硬件PWM的啊,直接使用不就可以了。
实在要用Timer2做PWM,则每个PWM周期要中断两次,允许Timer2高速输出,允许中断,在中断中不断重装高低电平的时间。注意,由于中断处理要点时间,所以最小占空比和最大占空比受限制,一般要留至少60个主频周期的时间(就是中断处理时间),对于24MHz,至少预留2.5us,对于700Hz,最小占空比0.175%,最大占空比99.825%。由于Timer2中断不能设置优先级,所以不要开启别的中断。
页: [1] 2
查看完整版本: PWM改变输出引脚