几周前,我刚刚完成了大学的微处理器课程,在那里我们只进行汇编编程。我们学到了很多(恕我直言)关于中断的知识。

这是我的问题:我正在使用 16F684 的 HiTech 编译器进行 C 编程,在数据表部分讨论中断(PIC 16F684 数据表 第12.4节)它说程序将转到中断向量0x0004。使用我的微处理器类中的程序集,我们只需设置一个指向该地址的 .org 语句,并在下面编写所需的程序集,这样当中断发生时,它将跳转到那里并运行。我可以在汇编中弄清楚这一点,但是当我用 C 编程时,我不相信我可以控制程序片段在内存中的位置,这会带来问题。我不知道如何在 C 中的中断处放置命令。

如果我需要澄清,请告诉我!

有帮助吗?

解决方案

此常见由Microchip 具有关于使用下高科技型BC中断一些信息

其他提示

高科技型Ç扩展了C语言与interrupt功能类型:

void interrupt my_interrupt_handler (void) {
    handle_interrupts_here();
}

您真的应该得到的编译器的手册。相信对于PIC-精简版的手册是免费下载的,至少它是当我下载我的副本一段时间在2001年。

您必须挖成高科技型的文件,但往往编译器有特殊的关键字来定义中断函数。编译器或运行时系统,具有应对被中断专门调用的函数:除了建立向量,编译器(或运行时系统)必须保留所有的寄存器。它可能没有这样做,对于一个正常的,非中断功能。

手册将你的朋友。

用于 PIC 的 CCS 编译器 在各种中断源的中断处理函数上使用#INT_* 编译器指令或“属性”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top