This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

求问:28335 DMA中断源选择设置

DMA头文件中

Uint16 PERINTSEL:1; // 4:0 Peripheral Interrupt and Sync Select Bits (R/W):
// 0 no interrupt
// 1 SEQ1INT & ADCSYNC
// 2 SEQ2INT
// 3 XINT1
// 4 XINT2
// 5 XINT3
// 6 XINT4
// 7 XINT5
// 8 XINT6
// 9 XINT7
// 10 XINT13
// 11 TINT0
// 12 TINT1
// 13 TINT2
// 14 MXEVTA & MXSYNCA
// 15 MREVTA & MRSYNCA
// 16 MXEVTB & MXSYNCB
// 17 MREVTB & MRSYNCB
// 18 ePWM1SOCA

如何将DMA触发源设置为PWM的SOC触发,将Uint16 PERINTSEL:1;改为18就报错,谢谢

  • 直接定义吧,我想这个:1是用来节省空间的。

  • Seven Han!

                         

                          你好,但是PERINTSEL这一位的功能就是外设触发事件源选择,还是不太明白

  • struct MODE_BITS { // bits description
    Uint16 PERINTSEL:4; // 4:0 Peripheral Interrupt and Sync Select Bits (R/W):
    // 0 no interrupt
    // 1 SEQ1INT & ADCSYNC
    .
    .
    .
    // 16 MXEVTB & MXSYNCB
    // 17 MREVTB & MRSYNCB
    // 18 ePWM1SOCA
    .
    .
    .
    Uint16 CHINTE:1; // 15 Channel Interrupt Enable Bit (R/W):
    // 0 channel interrupt disabled
    // 1 channel interrupt enabled
    }modedma;
    struct MODE_BIT modedma;
    mkdedma.PERINTSEL=18;
  • 是不是你不小心改动了.h文件,PERINTSEL应该是5位的,不然怎么可能支持到15以上的数据呢?

    struct MODE_BITS { // bits description
    Uint16 PERINTSEL:5; // 4:0 Peripheral Interrupt and Sync Select Bits (R/W):
    // 0 no interrupt
    // 1 SEQ1INT & ADCSYNC
    // 2 SEQ2INT
    // 3 XINT1
    // 4 XINT2
    // 5 XINT3
    // 6 XINT4
    // 7 XINT5
    // 8 XINT6
    // 9 XINT7
    // 10 XINT13
    // 11 TINT0
    // 12 TINT1
    // 13 TINT2
    // 14 MXEVTA & MXSYNCA
    // 15 MREVTA & MRSYNCA
    // 16 MXEVTB & MXSYNCB
    // 17 MREVTB & MRSYNCB
    // 18 ePWM1SOCA