请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
/*全局(在其他文件中调用)*/
extern void int_rx_mnm1221_m (void);//在 INTRX 中断中使用*/
extern short ctrl_m1221_m (void);//在计时器中断中使用 nc */
__interrupt void x_isr (void){_mctrlecclr_m121_ect1.pecrc.eecrbt
=
void = v3ctrap.ecrc.eecrc.p3rc.pecrb.clrb.eecrb.ecr3;= void
ECap3Regs.ECCLR.bit.CEVT4 = 1;
ECap3Regs.ECCLR.bit.INT = 1;
PHASE_MONITOR = CTRL_m1221_m ();
//确认此中断以接收来自组3
的更多中断 PieCtrlRegs.PIEACk.all = PIEACK_group4;
}
SHORT MONITOR PHASE (void)
{
RETURE_MONITOR;
}
static void InitEPwm5 (
PRD){EALLOW;CIEACK_group4;}short MONITOR (void)= 0xTBRAP0000.TBR0/ TBR0.TBR0.Tbt = TBR0.Tb0.Tbt = TBR0.Tb0.TPCRd.Tbt = Tbt
EPwm5Regs.AQCTLA.bit.PRD = AQ_TOGGLE; //打开 PRD //
// TBCLK = SYSCLKOUT
//
EPwm5Regs.TBCTL.bit.HSPCLKDIV = 1;
EPwm5Regs.TBCTL.bit.CLKDIV = 0;
//EPwm5TimerDirection = ePWM_TIMER_UP;
EALLAN.0=0
;void SYECKCR0=0=0;EAPCLKCR0=0;ECC0=0=0;ECLKINT.TBIT.TCLKCR0=0=0=0
//禁用所有捕捉__interrupts
ECap3Regs.ECCLR.ALL = 0xFFFF; //清除所有 CAP __interrupt 标志
ECap3Regs.ECCTL1.bit.CAPLDEN = 0; //禁用 CAP1-CAP4寄存器载入
ECap3Regs.ECCTL2.bit.TSCTRSTOP = 0; //确保计数器被停止
//
配置外设寄存器
//
ECap3Regs.ECCTL2.bit.CONT_ONESHT = 1;//一次性
ECap3Regs.ECCTL2.bit.STOP_Wrap = 3; //在4个事件时停止
ECap3Regs.ECCTL1.bit.CAP1POL=1; //下降边沿
ECap3Regs.ECCTL1.bit.CAP2POL=0; //上升沿
ECP3Regs.ECCTL1.bit.CAP3POL=1; //下降边沿
ECap3Regs.ECCTL1.bit.CAP4POL=0; //上升沿
ECap3Regs.ECCTL1.bit.CTRST1 = 1; //差动操作
ECap3Regs.ECCTL1.bit.CTRST2 = 1; //差动操作
ECap3Regs.ECCTL1.bit.CTRST3 = 1; //差动操作
ECap3Regs.ECCTL1.bit.CTRST4 = 1; //差动操作
ECap3Regs.ECCTL2.bit.SYNCI_EN = 1; //在
ECap3Regs.ECCTL2.bit.SYNCO_SEL 中启用 SYNC = 0; //通过
ECap3Regs.ECCTL1.bit.CAPLDEN = 1; //启用捕捉单元
ECap3Regs.ECCTL2.bit.TSCTRSTOP = 1; //起始计数
器 ECap3Regs.ECCTL2.bit.rearm = 1; // arm 一次性
ECap3Regs.ECCTL1.bit.CAPLDEN = 1; //启用 CAP1-CAP4寄存器加载
ECap3Regs.ECEINT.BIT.CEVT4 = 1; //4个事件=__interrupt
}
//-------------------
static void Ctrlinit (void)
{
EALLOW;
GpioDataRegs.GPACLEAR.all= 0x3900ul;
//GpioDataRegs.GPASET.BIO8= 1;GpioDataRegs.GPO8 = 1;
GpioRegs.GPO16 =
GPIPO1.G16
位 GPOreg.GPO1.GPO1.GPO1.G16 = GPPIO1.GPO1.GPO1.GPO1.G16位 GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.GPO1.
// ccs0 = GPIO32
GpioCtrlRegs.GPBPUD.bit.GPIO32 = 0;
GpioCtrlRegs.GPUX1.bit.GPIO32 = 0;
GpioDataRegs.GPBDAT.BIM32 = 1;GpioRegs.GPBMBOL.GPIO34
= GPIO3.Gpio34
= GPIO32.GPB34位 GPB34 = GPBDIO32.GPB34位 GPB34位 GPOL.GPIOL.GPIOL.GPIO32.GPB34 = GPB34位 GPB34位 GPOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIOL.GPIO
//
UUD = GPIO28 GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0;GpioDataRegs.GPADD.bit.GPIO28 = 0;GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1;GpioCtrlRegs.GPDIR.bit.GPIO28 = 0;GPIO13 = 0 = 0 = 1;GPIO13 = 1;GPO13 = 0
= 1;GPO13 = 0 = 1;GPO13 = 1;GPIO13 = 0 = 1;GPO13 = 1 = 1;GPO13 = 1;GPO13 = 0 = 1;GPO13 = 1 = 1;GPO13 = 1 = 1
// GPIO13 = GPIO13
GpioCtrlRegs.GPADIR.bit.GPIO13 = 1;// GPIO13 =输出
//初始化 pwm和ecap
InitEPwm5Gpio ();
InitECap3Gpio (9);
GPIO_SetupPinOptions (9、GPIO_INPUT、GPIO_ASYNC_Async);
EALLOW;//这是写入 EALLOW 受保护寄存
器 PieVectTable.ECAP3_INT =&ecap3_ISR;
EDIS;//这是禁用写入 EALLOW 受保护寄存器
InitEPwm5 ();
InitECap3 ();
//XINTRX = GPXINTRX = GPIO10_INTRI
;InetX10
= GPIO10_INTRI = GPIO10_INTRI;InetX10 INTRI = INT.InetX10;InetXINT.InT.InetXINT.InT.InetX10;输入 // XINT1连接到 GPIO10
XintRegs.XINT1CR.bit.polarity = 1;
XintRegs.XINT1CR.bit.enable = 1;
//将 GPIO48配置为 GPIO 输出引脚
EALLOW;
GpioBdlRegs.GPBMUX2.bit.GPIO48 = 0;
GpioR=1|GPIOR.GPIOR=1| GPIOR.GPIOR.GPIOR.GPIOR.GPIOR.GPIOR.GPIOR.GPIO48= 1
;
//PieCtrlRegs.PIEIER1.bit.INTx4 = 1;
IER |= M_INT4;
PieCtrlRegs.PIEIER4.bit.INTx3 = 1;
EINT;
ERTM;
CreateSysTimerInterface()->Start (inport、2U);
}