凌阳科技大学计划论坛

首页 » 16位u'nSP平台技术讨论区 » C语言编写中断程序
568844020 - 2007-8-2 12:01:00

急!急!急!

怎样用C语言编写中断程序?

我在C中定义了一个变量,在汇编中断程序中要用到该变量,我应该怎么定义这个变量?

脚踏实地 - 2007-8-2 12:14:00

*.c文件

int a;

*.asm文件

.external _a

r1 = 0x1234

[_a] = r1

使用即可

蔡星 - 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-7-13 21:31:00
:) 呵呵
努力哦
愤怒的黄蜂 - 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端口的输出进行取反
}
 1 
查看完整版本: C语言编写中断程序