Other Parts Discussed in Thread: TMS320F28069
大家好,
我在进行两块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.
Other Parts Discussed in Thread: TMS320F28069
大家好,
我在进行两块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波特率。