#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;
}
PWM 正玄波形 通过C语言生成
FW_G8Z2023-12-03 11:31