#spwm使用C++写出的自动重装载的值
#include "math.h"
#include "stdio.h"
#define POINT 180
#define ARRMAX 512
int main()
{
int cnt[POINT];
double pi = acos(-1);
double x = pi / (POINT-1);
printf("{");
for (int i = 0; i < POINT; i++)
{
cnt[i] = sin(i*x) * ARRMAX+0.5;
if (i % 10 == 0 && i != 0)
{
printf("\r\n");
}
printf(" %d,", cnt[i]);
}
printf("}");
}
#补充呼吸灯的算法
#include "stdio.h"
#include "math.h"
#define Point 4000
#define NubMax 12 //(2**10)
int main()
{
int Data[Point];
int i;
for (i = 0; i < Point / 2; i++)
{
Data[i] = pow(2, 1.0 * NubMax * i / (Point / 2 - 1)) + 0.5;
}
for (i = 0; i < Point / 2; i++)
{
Data[Point / 2 + i] = pow(2, NubMax - 1.0 * NubMax * i / (Point / 2 - 1)) + 0.5;
}
printf("#define Point %d \r\nconst uint16_t PointData[Point]= { \r\n", Point);
for (i = 0; i < Point; i++)
{
printf(" %d,", Data[i]);
if (i % 16 == 0 && i != 0)
{
printf("\r\n");
}
}
printf("};");
}