大家好,
我在进行两块TMS320F28069之间的SPI通信, 中断机制。
当主从的程序都只有RX和TX中断时, 主从收发都正确。
但是,当程序中加入采样ADCINT1和EPWMINT1中断后, 丢失数据或者收到错误的数据。这是因为中断优先级造成的吗?
大家有没有碰到过这种问题,一般该怎么样解决呢?
我的想法是把ADC采样得到的数据通过SPI在主从之间互传。
谢谢!
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.
大家好,
我在进行两块TMS320F28069之间的SPI通信, 中断机制。
当主从的程序都只有RX和TX中断时, 主从收发都正确。
但是,当程序中加入采样ADCINT1和EPWMINT1中断后, 丢失数据或者收到错误的数据。这是因为中断优先级造成的吗?
大家有没有碰到过这种问题,一般该怎么样解决呢?
我的想法是把ADC采样得到的数据通过SPI在主从之间互传。
谢谢!
谢谢您的回复!所以我是应该在初始化以后的for loop里处理采样的数据吗?
PWM波的中断里我进行了PI控制和svpwm的计算,这样合适吗,还是也应该放到主程序里去?
你可以用PWM1触发ADC 采样,然后在PWM中断中先读取ADC的采样值,如果PWM太快,可以设置三个周期触发一次ADC的采样。这样只需要一个PWM中断就可以完成采样和处理过程了。
如果你的SPI没有实时性要求非常高,可以放进状态机查询读取,如果还是需要中断接受,那首先去掉ADC或者PWM中断中一个,将他们合并,然后打开SPI四级FIFO深度,同时测试对于你的系统的带宽不会有影响的SPI波特率。