找回密码
 立即注册
查看: 4367|回复: 13

使用 8G1K08A-36I-SOP8 输出50% 占空比的pwm波形

[复制链接]

1

主题

2

回帖

11

积分

新手上路

积分
11
发表于 2022-12-9 13:19:40 来自手机 | 显示全部楼层 |阅读模式
8G1K08A-36I-SOP8 是一种微控制器(MCU)。它有一个内置的PWM(脉宽调制)模块,可用于产生PWM波形。

要产生PWM波形,首先需要在软件中配置PWM模块。在STC8G1K08A中,可以通过两个寄存器来配置PWM模块:PWM_CLOCK和PWM_CTL。

PWM_CLOCK寄存器用于配置PWM时钟,它可以设置PWM的频率。PWM_CTL寄存器用于配置PWM的控制,它可以设置PWM的占空比。

具体的配置方式可以参考STC8G1K08A的用户手册。通常情况下,需要先设置PWM时钟,然后设置PWM的占空比。

例如,如果要将PWM的频率设置为1kHz,并将占空比设置为50%,可以使用以下代码进行配置:

PWM_CLOCK = 0x00; // 设置PWM时钟为1kHz
PWM_CTL = 0x80; // 设置PWM占空比为50%

在这个例子中,PWM_CLOCK寄存器的值为0x00,表示将PWM时钟设置为1kHz。PWM_CTL寄存器的值为0x80,表示将PWM的占空比设置为50%。

当PWM模块配置完成后,就可以使用它来产生PWM波形了。

下面是一个使用C语言编写的通过STC8G1K08A输出50%占空比的PWM波形的函数示例:

void outputPWM()
{
// 配置PWM时钟为1kHz
PWM_CLOCK = 0x00;
// 配置PWM占空比为50%
PWM_CTL = 0x80;
// 输出PWM波形
PWM_OUT = 0x80;
}

在这个函数中,首先使用PWM_CLOCK寄存器将PWM时钟设置为1kHz,然后使用PWM_CTL寄存器将PWM占空比设置为50%,最后使用PWM_OUT寄存器输出PWM波形。

注意,上面的代码仅作为示例,实际应用中可能需要根据实际情况进行调整。例如,可以将PWM时钟和PWM占空比作为函数参数传入,以便更好地满足不同的需求。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2022-12-9 18:37:48 | 显示全部楼层
我原以为自己对STC的芯片已经挺熟悉的了,可是看了楼主的帖子后,我发现自己突然变得不会了,因为楼主提到的那些寄存器,我居然一个都不认识。:L
  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2022-12-9 20:06:04 | 显示全部楼层
出50% 占空比的pwm波形===那就是输出时钟吗,用MCLKO, T0CLKO, T1CLKO 的时钟分频输出
1.png

2.png
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2022-12-10 17:51:26 | 显示全部楼层
乘风*** 发表于 2022-12-9 18:37
我原以为自己对STC的芯片已经挺熟悉的了,可是看了楼主的帖子后,我发现自己突然变得不会了,因为楼主提到 ...

:lol:lol:lol被你这一说,我也才发现这些寄存器我好像也没见过!
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-04-14 07:09:01

15

主题

51

回帖

577

积分

高级会员

积分
577
发表于 2024-6-12 19:07:29 | 显示全部楼层
STC8H呢

点评

你想问什么问题吗?  详情 回复 发表于 2024-6-12 22:09
回复

使用道具 举报 送花

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

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2024-6-12 22:09:08 | 显示全部楼层

你想问什么问题吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-04-14 07:09:01

15

主题

51

回帖

577

积分

高级会员

积分
577
发表于 2024-6-13 09:50:38 | 显示全部楼层
梁*** 发表于 2024-6-12 22:09
你想问什么问题吗?

现在STC单片机系列非常多 功能也增加了不少 是名副其实的增强型单片机 不知道哪些寄存器通用 哪些不通用

点评

相同外设的寄存都是通用的,要看你具体使用的MCU。  详情 回复 发表于 2024-6-13 10:31
回复 支持 反对

使用道具 举报 送花

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

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2024-6-13 10:31:28 | 显示全部楼层
天*** 发表于 2024-6-13 09:50
现在STC单片机系列非常多 功能也增加了不少 是名副其实的增强型单片机 不知道哪些寄存器通用 哪些不通用  ...

相同外设的寄存都是通用的,要看你具体使用的MCU。
回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-04-14 07:09:01

15

主题

51

回帖

577

积分

高级会员

积分
577
发表于 2024-6-13 10:37:22 | 显示全部楼层
梁*** 发表于 2024-6-13 10:31
相同外设的寄存都是通用的,要看你具体使用的MCU。

谢谢梁工
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-05-02 09:05:39

45

主题

176

回帖

1735

积分

金牌会员

积分
1735
发表于 2024-8-16 09:58:02 | 显示全部楼层
神*** 发表于 2022-12-9 20:06
出50% 占空比的pwm波形===那就是输出时钟吗,用MCLKO, T0CLKO, T1CLKO 的时钟分频输出

毫不意外的又找到了解决问题的方法,带着问题翻老帖总能得到想要的方案,最近用STC8H8K64U测试一个硬件电路,需要一个频率可调的脉冲输出,感觉需要在PWM应用上下功夫,过来翻贴竟然找到了不一样的方法,“时钟分频输出”或许真的能解决我的问题。

点评

定时器分频输出50%占空比的方波时钟是硬件分频输出的,不占用CPU时间,可以输出最高fosc/2的频率,有预分频器的MCU最低可以输出fosc/(2*12*65536*256)的频率,没有预分频器的MCU最低可以输出fosc/(2*12*65536)的频率  详情 回复 发表于 2024-8-16 10:20
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 13:06 , Processed in 0.157910 second(s), 116 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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