568844020 - 2007-8-2 12:01:00
急!急!急!
怎样用C语言编写中断程序?
我在C中定义了一个变量,在汇编中断程序中要用到该变量,我应该怎么定义这个变量?
蔡星 - 2007-8-2 12:31:00
以下是引用568844020在2007-8-2 12:01:00的发言:
急!急!急!怎样用C语言编写中断程序?
?
在C中中断的格式是这样 的void FIQ(void)__attribute__((ISR)); void FIQ(void)
caiwukui - 2007-8-2 12:57:00
可以参考IDE安装路径下的例子呀,好多中断,C调用Asm ,Asm调用C的程序。
愤怒的黄蜂 - 2008-8-11 14:59:00
//本程序是使IOB14输出1KHZ的方波~~~~~~
#include "SPCE061A.h"
int main(void)
{
*P_IOB_Dir = (*P_IOB_Dir|0x4000);
*P_IOB_Attrib = (*P_IOB_Attrib|0x4000); //初始化IOB14为输出口
*P_IOB_Data = (*P_IOB_Buffer|0x4000); //初始化输出为高电平(无所谓了)
*P_INT_Ctrl = 0x0020; //打开IRQ4的2KHz中断
__asm("IRQ ON"); //总的IRQ中断使能
while(1)
{ //死循环等待中断发生
*P_Watchdog_Clear = 0x0001; //清看门狗
}
}
void IRQ4(void)__attribute__((ISR));
void IRQ4(void) //IRQ4中断入口函数
{
*P_INT_Clear = 0x0020; //清IRQ4的2KHz中断
*P_IOB_Data = (*P_IOB_Buffer^0x4000); //对IOB14端口的输出进行取反
}