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.

请教关于while使用的问题



主程序中:   

//等待上次发送结束

while ( tx_buf_set > 0 ){

;

;

}

//开始下次发送

tx_buf_set的值是由中断程序负责减少到0.

执行时,好像只有第一次判断了,而后只在循环里转,不再次判断tx_buf_set的值。

CCS里看到tx_buf_set已经是0,但是主程序仍然在while里循环,汇编跟踪好像并没有运行条件判断。

这是为什么?

  • 刚才看到网上说:中断修改的变量,防止编译器给优化掉,要加 volatile关键字。

    请问这类的问题还有哪些?有介绍文件吗?我从哪儿可以下载或买到?

    我的LaunchPAD的中断SCI例子怎么也调试不好,

    后来发现SCI.C里有寄存器的名称是错的。

    请问哪里可以下载比CPU介绍PDF更齐全的说明?

    比如每个寄存器里的每个位的功能表,以及要让SCI收发需要先后置位、复位哪些的工作过程。

    中断子程序应该如何写等这些内容。

    谢谢回复!

  • 我觉得对完整掌握SCI等外设工作,缺少很多必要的资料。

    例如:SCITx里中断的每一位的说明以及连线示意图。

    当FIFO内容为空时,CPU好像一直在中断,主程序基本不能运行,

    这个速率在那儿设置,这个程序通常怎么写?

  • 建议你到TI 官网下载SCI userguide,里面有SCI的框图,SCI的发送FIFO中断就是当buffer为空的时候触发,和RX中断相反,因为TX是判断没数据了,进入中断可以给Buffer填数据