论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
由于硬件复位后所有的中断是无效的,因此如果系统中需要使用中断功能,就必须对相应的中断做相应的处理。由于没有专门的C语句对中断进行使能或者屏蔽,因此必须嵌入ASM语句。而C中断程序采用一个特殊的函数名,其格式为c_intnn,其中nn代表00~99之间的两位数;函数名c_int01~c_int99是用户可以使用的,而c_int00是个特殊函数,是C程序的入口点,是为系统复位中断保留的,其功能是用于系统初始化和调用main函数。这个函数包含在运行支持库中,必须与其它的C目标模块相链接。在链接时,使用-CR选项,并包含RTS30.LIB,则c_int00就自动接入。链路C程序时,链接器将可执行模块的入口点设置为c_int00。
3 程序设计实例
本程序采取定时器中断方式对0x810050口取返,控制外部驱动的LED管闪烁,同时运行AD采样子程序,进行数据采集。由于篇幅所限,采样子程序不加详述,用户可以根据需要自行编写。具体程序如下:
/*led ioport address 810050h,810040H-81005FH.*/
#define vec_addr (volatile int)0x880100;
/*定义中断向量表表首*/
void c_int09(); /*声明中断处理函数*/
volatile int *io_in =(volatile int *)0x810050; /*定义LED接口地址指针*/
volatile int *io_add = (volatile