AVR 单片机的 SPWM 程序(ICC 环境,09 年电子设计大赛应用通过)
技术资料 2009-10-23 11:01 阅读 29评论 0
字号: 大 中 小
#include //程序中现在只有 SPWM 产生的相关的程序,其他的程序都已经删除
#include
#pragma interrupt_handler T0:17 //定时器 0 的溢出中断向量
unsigned int SPWM_OCR1A[101]={493,492,491,490,489,488,487,486,485,484,
483,482,481,479,478,477,476,475,474,473,
472,471,470,469,468,467,466,465,464,463,
462,462,461,460,459,458,457,456,455,454,
453,452,451,450,449,448,448,447,446,445,
444,443,442,441,440,440,439,438,437,436,
435,434,434,433,432,431,430,429,429,428,
427,426,425,424,424,423,422,421,420,420,
419,418,417,416,416,415,414,413,413,412,
411,410,410,409,408,407,407,406,405,404,404,};
//数组里面的值分别对应于从 45.0~55.0HZ 的 OCR1A 的值,(将每个周期分成 360 份,
即每一度为一份)步进为 0.1HZ 在写程序的时候,
//只要将 OCR1A 的值替换成以上相应的值就可以得到,对应于正弦波的
相应的频率
double
SPWM_sin_value[360]={1.0174,1.0348,1.0523,1.0697,1.0871,1.1045,1.1218,1.1391,1.1
564,1.1736,1.1908,1.2079,1.2249,1.2419,
1.2588,1.2756,1.2923,1.309,1.3255,1.342,1.3583,1.3746,1.3907,1.4067,1.4226,1.4383,1
.4539,1.4694,1.4848,1.4999,
1.515,1.5299,1.5446,1.5591,1.5735,1.5877,1.6018,1.6156,1.6293,1.6427,1.656,1.6691,1
.6819,1.6946,1.7071,1.7193,
1.7313,1.7431,1.7547,1.766,1.7771,1.788,1.7986,1.809,1.8191,1.829,1.8386,1.848,1.85
71,1.866,1.8746,1.8829,1.891,
1.8987,1.9063,1.9135,1.9205,1.9271,1.9335,1.9396,1.9455,1.951,1.9563,1.9612,1.9659,
1.9702,1.9743,1.9781,1.9816,
1.9848,1.9876,1.9902,1.9925,1.9945,1.9961,1.9975,1.9986,1.9993,1.9998,2,1.9998,1.99
93,1.9986,1.9975,1.9961,1.9945,
评论0