TI 2000系列PWM中断问题

在用28379的PWM中断的时候,中断配置在计数值等于周期值的时候进入,但是运行的时候总是跳入了DSP默认的中断:

interrupt void EPWM1_ISR(void)
{
    //
    // Insert ISR Code here
    //

    //
    // To receive more interrupts from this PIE group,
    // acknowledge this interrupt.
    // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
    //

    //
    // Next two lines for debug only to halt the processor here
    // Remove after inserting ISR Code
    //
    asm ("      ESTOP0");
    for(;;);
}

而我自己定义的中断一直进不去后来发现是EALLOW;   EDIS;的使用问题,这两个命令必须紧挨着中断向量重定义语句:

EALLOW; 

PieVectTable.EPWM1_INT = &self_PWM1INT3_1_ISR;

 EDIS;

如下这个样子就不行了:

   EALLOW;

   语句1;

   语句2;

   ·······


   PieVectTable.EPWM1_INT = &self_PWM1INT3_1_ISR;

   语句1;

   语句2;

   ······

   EDIS;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MSP432是一个基于ARM Cortex-M4内核的微控制器,它支持多种外设,其中包括PWM模块。要使用PWM模块中断,可以按照以下步骤进行设置: 1. 配置PWM模块:使用MSP432的PWM模块之前,需要对其进行配置。可以使用MSP432的驱动库函数或者手动编写代码来进行配置。具体的配置包括选择PWM通道、设置PWM频率和占空比等。 2. 使能PWM模块中断:在PWM模块配置完成后,可以使能PWM模块中断。可以通过PWM模块的控制寄存器来设置中断使能位。 3. 编写PWM中断服务函数:一旦PWM模块中断被触发,MSP432会跳转到PWM中断服务函数中执行。在PWM中断服务函数中,可以编写处理中断的代码,例如读取PWM计数器的值或者修改PWM占空比等。 下面是一个简单的示例代码,演示如何在MSP432上实现PWM模块中断: ```c #include <ti/devices/msp432p4xx/driverlib/driverlib.h> #define PWM_FREQUENCY 1000 // PWM频率为1KHz void PWM_ISR(void) { // 处理PWM中断 } int main(void) { // 配置PWM模块 MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN4, GPIO_PRIMARY_MODULE_FUNCTION); MAP_Timer_A_generatePWM(TIMER_A0_BASE, &pwmConfig); // 使能PWM模块中断 MAP_Timer_A_enableInterrupt(TIMER_A0_BASE); MAP_Interrupt_enableInterrupt(INT_TA0_0); MAP_Interrupt_enableMaster(); // 设置PWM模块中断优先级 MAP_Interrupt_setPriority(INT_TA0_0, 0x40); while(1) { // 主循环 } } // PWM中断服务函数 void PWM_ISR(void) { MAP_Timer_A_clearCaptureCompareInterrupt(TIMER_A0_BASE, TIMER_A_CAPTURECOMPARE_REGISTER_0); // 处理PWM中断 } ``` 在上述代码中,首先通过`MAP_Timer_A_generatePWM()`函数配置PWM模块,然后使用`MAP_Timer_A_enableInterrupt()`函数使能PWM模块中断。在`PWM_ISR()`函数中编写PWM中断服务函数的代码,在其中进行PWM中断处理。最后使用`MAP_Interrupt_setPriority()`函数设置PWM模块中断的优先级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子力学和生命科学

写作提升自己,打赏更能鼓励我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值