DSP28x芯片兩電平SPWM
0.png (55.89 KB, 下載次數: 66)
下載附件
2018-3-16 18:11 上傳
dsp源程序如下:
- #include "DSP28_Device.h"
- #include "DSP28_Globalprototypes.h"
- #include "math.h"
- #define pi 3.141592653
- #define N 480 //正弦采樣點個數
- #define m 0.8 //調制比
- float sina[N];
- /*
- float sina[120]={0.000000, 0.026177, 0.052336, 0.078459, 0.104528,
- 0.130526, 0.156434, 0.182236, 0.207912, 0.233445,
- 0.258819, 0.284015, 0.309017, 0.333807, 0.358368,
- 0.382683, 0.406737, 0.430511, 0.453990, 0.477159,
- 0.500000, 0.522499, 0.544639, 0.566406, 0.587785,
- 0.608761, 0.629320, 0.649448, 0.669131, 0.688355,
- 0.707107, 0.725374, 0.743145, 0.760406, 0.777146,
- 0.793353, 0.809017, 0.824126, 0.838671, 0.852640,
- 0.866025, 0.878817, 0.891007, 0.902585, 0.913545,
- 0.923880, 0.933580, 0.942641, 0.951057, 0.958820,
- 0.965926, 0.972370, 0.978148, 0.983255, 0.987688,
- 0.991445, 0.994522, 0.996917, 0.998630, 0.999657,
- 1.000000, 0.999657, 0.998630, 0.996917, 0.994522,
- 0.991445, 0.987688, 0.983255, 0.978148, 0.972370,
- 0.965926, 0.958820, 0.951057, 0.942641, 0.933580,
- 0.923880, 0.913545, 0.902585, 0.891007, 0.878817,
- 0.866025, 0.852640, 0.838671, 0.824126, 0.809017,
- 0.793353, 0.777146, 0.760406, 0.743145, 0.725374,
- 0.707107, 0.688355, 0.669131, 0.649448, 0.629320,
- 0.608761, 0.587785, 0.566406, 0.544639, 0.522499,
- 0.500000, 0.477159, 0.453990, 0.430511, 0.406737,
- 0.382683, 0.358368, 0.333807, 0.309017, 0.284015,
- 0.258819, 0.233445, 0.207912, 0.182236, 0.156434,
- 0.130526, 0.104528, 0.078459, 0.052336, 0.026177};//定義正弦函數
- */
- int16 i = 0;
- void main ()
- {
-
- InitSysCtrl();
- DINT;
- IER = 0x0000;
- IFR = 0x0000;
-
- InitPieCtrl();
- InitPieVectTable();
- InitGpio();
- InitEv(); //開外設定時器中斷
- PieCtrl.PIEIER2.bit.INTx4 = 1;//開PIE定時器中斷
- IER = 0x0002;//開CPU中斷
- EINT;//開全局中斷
- ERTM;//開實時中斷
-
- EvaRegs.T1CON.bit.TENABLE = 1;//使能T1定時器
- while(1)
- {
-
- }
- }
- ///////////////////////EVA定時器中斷//////////////////////
- interrupt void T1PINT_ISR(void) // EV-A
- {
- if((i>=0)&&(i<=N))
- {
- sina[i] = sin(i * 2 * pi/N);
- EvaRegs.CMPR1 = EvaRegs.T1PR * m * sina[i];
- }//比較寄存器的值更新
- i++;
- if(i > N)
- {
- i = 0;
- }
- PieCtrl.PIEACK.all = PIEACK_GROUP2;//響應同組其余中斷
- EvaRegs.EVAIFRA.bit.T1PINT = 1;//清中斷標志位
- }
復制代碼
所有資料51hei提供下載:
SPWM.zip
(610.67 KB, 下載次數: 48)
2018-3-16 15:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|