本帖最后由 wlfbuaa 于 2013-8-25 17:58 编辑
程序要实现的功能:
同时采集两路信号输入:
A、通过芯片内部AD转换外部测量信号,将转换结果通过UART0发送到PC;
B、通过UART1接收外部信号,将结果通过UART0发送到PC。
现在涉及两个中断:AD和UART1串口中断。AD采样率比串口传输速率快挺多。
经过试验,程序只能进入AD中断,始终不能进入串口中断。单独接受信号两路都能接收。
搜寻网上,可能的问题是:430中断函数运行是当中断在执行的时候不接收其他中断。程序运行时AD中断先到,又由于AD中断的频率高,导致前一次AD中断结束之后,再次请求中断的时候又进入AD中断。不知道该如何解决这个问题,能够合理的执行两个中断,求指导谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
多个中断请求发生时,响应最高优先级中断。响应中断时,MSP430会将不可屏蔽中断控制位SR.GIE复位。因此,一旦响应了中断,即使有优先级更高的可屏蔽中断出现,也不会中断当前正在响应的中断,去响应另外的中断。但SR.GIE复位不影响不可屏蔽中断,所以仍可以接受不可屏蔽中断的中断请求。
这个是网上查询到的信息,我不知道是不是一定正确,不过根据对程序的执行结果来看,貌似中间不能再执行优先级更高的中断。谢谢!
刚看了下,是串口0的优先级高于AD高于串口1的优先级,之前一直以为串口的优先级高,修改下程序试试。谢谢提醒!
一周热门 更多>