PWM 正玄波形 通过C语言生成

复制代码
#include <stdio.h>
#include <math.h>
#include <stdint.h>

#define SAMPLE_POINT_NUM            (200)        /* 需要生成的点的个数 */
#define SINE_MAX                    (255)       /* sin 函数幅值 */
#define PI                          (3.1415926) /* 数学中的常量:Π */
#define POINT_BUFFER_LEN            (400)

int generate_data[POINT_BUFFER_LEN]; /* 生成的数据放在此数组中 */

void get_sin_data(unsigned int point)
{
    unsigned int i = 0;
    float step = 0.0;
    float data = 0.0;
    int tem = 0;

    step = 1 * PI / point; /* 将 sin 函数从 [0-2Π] 等分为 N 个点,则每个点的步长为 2Π/point_num */

    for (i = 0; i < point; i++)
    {
        data = SINE_MAX * sin(step * i);
        tem = (int)data;
        generate_data[i] = tem;
    }
}

int main(int argc, char *argv[])
{
    get_sin_data(SAMPLE_POINT_NUM);

    for (int i = 0; i < SAMPLE_POINT_NUM; i++)
    {
        printf("%d ,", generate_data[i]);
    }

    printf("\r\n");

    return 0;
}
相关推荐
yuyuyuliang002 分钟前
python笔记1
开发语言·笔记·python
摇滚侠4 分钟前
Groovy 如何给集合中添加元素
java·开发语言·windows·python
~plus~4 分钟前
C# 事件溯源与 CQRS 架构:用 EventStoreDB 打造可靠系统
开发语言·架构·c#
江奖蒋犟7 分钟前
【C++】红黑树
开发语言·c++
雒珣10 分钟前
Qt实现命令行参数功能示例:QCommandLineParser
开发语言·数据库·qt
无巧不成书021819 分钟前
Java异常体系与处理全解:核心原理、实战用法、避坑指南
java·开发语言·异常处理·java异常处理体系
大尚来也31 分钟前
Go性能调优实战:用pprof精准定位瓶颈
开发语言
User_芊芊君子32 分钟前
2026 Python+AI入门|0基础速通,吃透热门轻量化玩法
开发语言·人工智能·python
aq553560035 分钟前
Laravel7.x重磅升级:十大新特性解析
开发语言·汇编·c#·html
大鹏说大话36 分钟前
Go语言Channel并发编程实战:从基础通信到高级模式
开发语言·后端·golang