就在几周前,我刚刚完成了我在大学里的微处理器课程,在那里我们只用汇编编程。我们学到了很多关于中断的知识(IMHO)。
这是我的问题:我使用16F684的HiTech编译器用C语言编程,在讨论中断的数据表部分(PIC 16F684 Datasheet第12.4节),它说程序将转到中断向量0x0004。使用我的微处理器类中的程序集,我们只需设置一个指向该地址的.org语句,并在下面编写所需的程序集,这样当中断发生时,它就会跳到那里并运行。我可以在汇编语言中解决这个问题,但是当我用C语言编程时,我不相信我可以控制程序片段在内存中的位置,这就带来了一个问题。我不知道如何在C语言的中断处放置命令。
如果我需要澄清,请告诉我!
发布于 2010-01-06 23:48:04
This FAQ by Microchip有一些关于在HiTech C下使用中断的信息。
发布于 2010-01-06 23:40:02
HiTech C使用interrupt函数类型扩展了C语言:
void interrupt my_interrupt_handler (void) {
handle_interrupts_here();
}你真的应该拿到编译器的手册。我相信Pic-lite的手册是可以免费下载的,至少当我在2001年的某个时候下载我的版本时是免费的。
发布于 2010-01-06 23:38:03
您必须深入研究HiTech文档,但是编译器通常有特殊的关键字来定义中断函数。编译器或运行时系统必须专门处理中断调用的函数:除了设置向量外,编译器(或运行时系统)还必须保留所有寄存器。对于正常的、非中断的函数,它可能不需要这样做。
这本手册将是你的朋友。
https://stackoverflow.com/questions/2014003
复制相似问题