Other Parts Discussed in Thread: HALCOGEN
你好,
我使用SCI/LIN模块,中断使用INT0,TX_INT,在中断向量表中映射了中断服务程序地址,数据发送后,TX标志寄存器正确,vect0寄存器值为12,正确指示发送中断,但是测试没有进入中断服务程序。可能是什么原因呢?
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: HALCOGEN
你好,
我使用SCI/LIN模块,中断使用INT0,TX_INT,在中断向量表中映射了中断服务程序地址,数据发送后,TX标志寄存器正确,vect0寄存器值为12,正确指示发送中断,但是测试没有进入中断服务程序。可能是什么原因呢?
Hi fan,
你遇到的这个问题很常见,特别是我们的SCI/LIN 这个模块的中断服务程序。
首先,因为这个模块是SCI和LIN公用的一个程序,所以你在HALCOGEN里面配置VIM Channel是应该选择channel 13--LIN1 level0.
其次,在主程序里面你调用关于SCI的程序时,选择的SCI寄存器也是scilinREG.类似于下面的语句:
sciSend(scilinREG,sizeof(byte),&byte);
最后,在主程序中别忘了加上_enable_IRQ();来使能我们的全局中断。
谢谢
ken
你说的原因,我做的都是对的。我是映射侧LIN1level0,也使能了全局中断。也是用的scisend函数。发送数据后,能看到cect0寄存器中的值是正确的,指示产生了发送中断,可是就是没有进入到中断服务程序中。
测试程序中就只有发送数据这个功能函数,会不会跟程序处理时间太快有关呢?另外一个工程跟这个工程的scilin寄存器核vim配置相同,就能进入接收中断服务程序。
Hi fan,
程序处理太快进不了中断,这个基本不太可能。应该还是程序的设计上面有点问题。而且你两个例程,一个是接收中断一个是发送中断。接收的能进,发送的不进,这个感觉还是在程序设置方面有问题。
我上传一个关于SCI的程序供你参考吧.

谢谢
ken