#include "DSP28_Device.h"
#include "DSP28_Piectrl.h"
//子函數(shù)聲明
interrupt void T1UFINT_IS(void);
void main(void)
{
//step1:初始化系統(tǒng)控制寄存器,PLL,看門狗,時(shí)鐘等
InitSysCtrl();
EALLOW; //使能PWM引腳
GpioMuxRegs.GPAMUX.all=0x00FF; //EVA PWM1-6引腳
GpioMuxRegs.GPBMUX.all=0x00FF; //EVA PWM7-12引腳
EDIS;
//step3:初始化PIE中斷向量表vector table;
DINT;
IER=0x0000;
IFR=0x0000; //禁止和清除所有CPU中斷;
InitPieCtrl() ; //初始化Pie控制寄存器位默認(rèn)狀態(tài)
InitPieVectTable();
EvaRegs.T1CNT=0X0000;
EvaRegs.T1PR=0XFFFF;
//寄存器賦值
EvaRegs.EVAIMRA.bit.T1UFINT=1;
EvaRegs.EVAIFRA.bit.T1UFINT=1; //設(shè)置中斷寄存器
EvaRegs.T1CON.all=0X084; //設(shè)置計(jì)數(shù)模式
EvaRegs.GPTCONA.bit.TCOMPOE=1; //定時(shí)器1觸發(fā)邏輯獨(dú)立驅(qū)動(dòng)比較輸出,T1CNT的數(shù)開始有變化
EvaRegs.GPTCONA.bit.T1PIN=2;
while(1)
{EvaRegs.T1CMPR=0X3C00;
EALLOW;
PieVectTable.T1UFINT=&T1UFINT_IS;
EDIS;
PieCtrl.PIEIER2.all=M_INT6;
IER|=M_INT2;
EINT;
ERTM;
for(;;);
}
}
void T1UFINT_IS(void)
{
EvaRegs.T1CMPR++;
EvaRegs.EVAIMRA.bit.T1UFINT=1;
EvaRegs.EVAIFRA.all=BIT9; //清中斷標(biāo)志位
PieCtrl.PIEACK.all=PIEACK_GROUP2;
}
我是想通過下溢中斷進(jìn)中斷子函數(shù)來更新T1CMPR的值,從而改變占空比,可是我這個(gè)進(jìn)了中斷函數(shù)就出不來,占空比不改變,大家?guī)臀铱纯丛撛趺唇鉀Q呢?
看看這個(gè)2812 PWM程序
全部回復(fù)(0)
正序查看
倒序查看
現(xiàn)在還沒有回復(fù)呢,說說你的想法