18059034236 发表于 2018-5-31 13:44

中断,GPIO中data寄存器

今天看到这两种写法,看不懂是怎么回事,来请教下{:lol:}
1、        IER |= M_INT3+M_INT4+M_INT1;
2、void SPWMDisable(void)
{
        EALLOW;

        Delay(200);       
       
        EPwm1Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;
       
        GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;   // Configure GPIO0 as EPWM1A
        GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;   // Configure GPIO1 as EPWM1B
          
        Delay(200);
                   // Enable an GPIO output on GPIO6, set it high
        GpioDataRegs.GPADAT.bit.GPIO0 = 0;   // Load output latch

        Delay(200);

        GpioDataRegs.GPADAT.bit.GPIO1 = 0;   // Load output latch
       
        Delay(200);

        GpioDataRegs.GPADAT.bit.GPIO0 = 0;   // Load output latch
        GpioDataRegs.GPADAT.bit.GPIO1 = 0;   // Load output latch
       
        Delay(200);
             
        GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;   // GPIO0 = output
        GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;   // GPIO1 = output

        Delay(200);

        EDIS;
}

zhangmangui 发表于 2018-6-2 07:49

IER |= M_INT3+M_INT4+M_INT1;    这种写法你看看M_INT*是多少    然后是或运算
你关心IER最后是多少然后和寄存器位对比一下   看那些中断使能了

zhangmangui 发表于 2018-6-2 07:50

第二个确实有些矛盾   是PWM输出还是GPIO输出

airwill 发表于 2018-6-6 21:17

用    |=    的代码效率可能会高一些, 因为一次性可以设定多个位. 但代码可读性显得差一点.
页: [1]
查看完整版本: 中断,GPIO中data寄存器