合泰单片机C语言应用中断的范例,有需要的可以自行下载。
本章介绍以C 语言程式处理微控制器的中断事件。 第四章 4.7 中断服务函式 中说明如何
撰写中断服务函式以及注意事项。 必须遵照下列的规则来定义中断服务函式
→ 函式的返回值型态必须是 void interrupt
→ 函式不可有参数 (argument)
→ 设定中断服务函式的中断向量 (interrupt vector) 使用 @ 指定中断向量
→ 最好不要从程式的其他地方呼叫中断服务函式
→ 不要在中断服务函式内做开启本中断功能 (interrupt reentrance) 相同的中断不要重复进入
格式
void interrupt ISR_TImer(void) @ 0x08
{
}
// 定义 : 返回值的型态, 没有参数, 设定中断向量为 0x08
C 编译器会根据中断服务函式对暂存器的需要, 在进入中断服务函式后, 将这些暂存器的内
容储存。 等执行完中断服务函式的工作后, 再恢复先前所储存的暂存器内容。 最后回要被中
断的地方继续执行, 同时中断功能也打开, 允许中断产生。 如果为了节省程式编码的大小, 在
中断服务函式中也可不要保存某些暂存器, 例如 BP, MP0, MP1.可参考第四章的 4.9 节关于
#pragma 的说明及使用。 在中断服务函式中不要将自身的中断功能再打开, 避免重复进入同一
个中断服务函式。 但是可以打开其他的中断功能, 只是要特别注意两个中断服务函式有无呼叫
到相同函式的状态, 以致发生变数共用造成资料错误的风险。