
?这个我也不是很清楚。应该是没用了,因为FIFO模式下他有自己的中断标志位TXFFINT
FLAG。要读接收到的数据是否还是和普通模式下一样直接读SciaRegs.SCIRXBUF.all的数值,只不过是要注意,可以一次读入多个字的数据而不是仅仅一个字节。2:2楼3:没搞懂FIFO模式下接收和中断的机制,具体来说,TXFIFO和普通模式下的TXINT是否共用一个中断,RXFIFO和普通模式下的RXINT是否共用一个中断,即产生中断后都调用相同的中断处理函数?都调用相同的中断处理函数,因为他们的中断向量地址是同一个,即发送的是同一个,接收的是同一个。一个SCIA的TX只能用FIFO和标准模式的一种。我完全是自己的理解,有错误请批评指正。
实时系统在调试的时候,已经不是实时系统了,只是用调试器在模拟罢了,虽然调试器中程序已经停下来了,但是目标机还在运行当中,特别是中断也还在不断产生中.你看到的CAP1FIFO的状态已经不是中断发生时的状态了.
---------------------------------------------
上面说的要稍微更正一下,
FIFO堆栈实际上是在不断被送入新值的,捕获中断1标志位清空之前,是不会发生新的中断的。所以当你在调试时,因为FIFO堆栈已经被送入的新值取代了,所以通过寄存器CAP1FIFO,你是看不到中断发生时的值了。
至于如何调试,看你的断点设在哪里了。
if(capnum2>capnum1)temp2=capnum2-capnum1
如果在上面这一行的话,断点发生时,CAP1FIFO的值应该已经保存在capnum2,和capnum1里了。
如果在u++之前,一步一步执行下去的话。
就取不到正确的值。
你好楼主,我也在用2812和AD73360做一个项目,现在的情况是用FIFO连AD73360的控制字都没写进去,检查了一下程序,没发现有什么问题。我用非FIFO模式的时候都写进去,而且中断也采集到数据了,请问用FIFO模式跟非FIFO模式,除了初始化不一样外,还有什么特殊的不同的地方啊,我调了几天都没调出来,望赐教!!!谢谢!!!欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)