找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1441|回复: 6
收起左侧

STC15系列单片机CCP为6位PWM输出,正弦波计算占空比

[复制链接]
ID:883031 发表于 2022-12-17 18:30 | 显示全部楼层 |阅读模式
下边是STC15系列CCP为6位PWM输出,正弦波计算占空比的函数

//CCP为6位PWM输出
BYTE xdata Sin_Num[256] = {0};
#define STEP ((2.0 * PI) / 64.0)//正弦波采样步长
#define PWM_DUTY_MIN 0X01
#define PWM_DUTY_MAX 0X3E

void GetReloadNum()
{
        int i;
        float Value = 0.0,aa = 0.0;
        
        for(i = 0;i < 64;i++)
        {
                Value = 32.0 * (1 - sin(aa));
                Sin_Num[i ] = (unsigned int)Value;
                if(Sin_Num[ i] < PWM_DUTY_MIN) Sin_Num[ i] = PWM_DUTY_MIN;
                else if(Sin_Num[ i] > PWM_DUTY_MAX) Sin_Num[ i] = PWM_DUTY_MAX;
                aa += STEP;
        }
}
1.png
这是输出的波形,不够漂亮。

回复

使用道具 举报

ID:1034262 发表于 2022-12-19 15:02 | 显示全部楼层
你要适当的滤波,才有漂亮的波形出来。
回复

使用道具 举报

ID:961114 发表于 2022-12-19 17:31 | 显示全部楼层
STC核心板有示波器模块   波形很漂亮 可以去申请 免油费
STC老梁开源示波器-STC32G12K128.jpg
回复

使用道具 举报

ID:883031 发表于 2022-12-22 08:36 | 显示全部楼层
STC庄伟 发表于 2022-12-19 17:31
STC核心板有示波器模块   波形很漂亮 可以去申请 免油费

怎么申请?
回复

使用道具 举报

ID:879348 发表于 2022-12-22 08:48 | 显示全部楼层
为什么用6位呢,6位才64个点,颗粒度肯定大
回复

使用道具 举报

ID:883031 发表于 2022-12-22 14:18 | 显示全部楼层
wufa1986 发表于 2022-12-22 08:48
为什么用6位呢,6位才64个点,颗粒度肯定大

六位的频率高些。
回复

使用道具 举报

ID:1042619 发表于 2022-12-22 16:04 | 显示全部楼层
楼主可以试试我们STC-ISP 6.91C及以上版本一体化软件里面参考STC15系列实验箱范例程序
jip...png

jip.....png

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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