最近弄了点程序(尤小翠编写)改了改,半周期256个点 是不是有点多?还有就是如何计算SPWM的频率,以及输出正弦波频率?256个点是用软件生成的,如果自己计算的话怎样算,还请各位帮忙!!!!!!以下是RC滤波双通道相加得到的波形。。附带程序
#include
#define uint unsigned int
#define uchar unsigned char
uint pwm_1,pwm_2,m;
uint pwm_1,pwm_2,m;
uchar code pwm[256]={
1 , 2 , 4 , 5 , 7 , 8 , 10 , 11 , 13 , 14 ,
16 , 17 , 19 , 20 , 22 , 23 , 25 , 26 , 28 , 29 ,
31 , 32 , 33 , 35 , 36 , 38 , 39 , 41 , 42 , 43 ,
45 , 46 , 48 , 49 , 50 , 52 , 53 , 55 , 56 , 57 ,
59 , 60 , 61 , 62 , 64 , 65 , 66 , 68 , 69 , 70 ,
71 , 73 , 74 , 75 , 76 , 77 , 78 , 80 , 81 , 82 ,
83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 , 91 , 92 ,
93 , 94 , 95 , 96 , 97 , 98 , 99 , 100 , 101 , 102 ,
102 , 103 , 104 , 105 , 106 , 106 , 107 , 108 , 109 , 109 ,
110 , 111 , 111 , 112 , 113 , 113 , 114 , 114 , 115 , 115 ,
116 , 116 , 117 , 117 , 118 , 118 , 119 , 119 , 119 , 120 ,
120 , 120 , 121 , 121 , 121 , 121 , 122 , 122 , 122 , 122 ,
122 , 122 , 122 , 123 , 123 , 123 , 123 , 123 , 123 , 123 ,
123 , 123 , 123 , 122 , 122 , 122 , 122 , 122 , 122 , 122 ,
121 , 121 , 121 , 121 , 120 , 120 , 120 , 119 , 119 , 119 ,
118 , 118 , 117 , 117 , 116 , 116 , 115 , 115 , 114 , 114 ,
113 , 113 , 112 , 111 , 111 , 110 , 109 , 109 , 108 , 107 ,
106 , 106 , 105 , 104 , 103 , 102 , 102 , 101 , 100 , 99 ,
98 , 97 , 96 , 95 , 94 , 93 , 92 , 91 , 90 , 89 ,
88 , 87 , 86 , 85 , 84 , 83 , 82 , 81 , 80 , 78 ,
77 , 76 , 75 , 74 , 73 , 71 , 70 , 69 , 68 , 66 ,
65 , 64 , 62 , 61 , 60 , 59 , 57 , 56 , 55 , 53 ,
52 , 50 , 49 , 48 , 46 , 45 , 43 , 42 , 41 , 39 ,
38 , 36 , 35 , 33 , 32 , 31 , 29 , 28 , 26 , 25 ,
23 , 22 , 20 , 19 , 17 , 16 , 14 , 13 , 11 , 10 ,
8 , 7 , 5 , 4 , 2 , 1
};
//延时函数//
void delay(uint time){
uint a=0,b;
for(a=0;a