历史上的今天
今天是:2025年06月15日(星期日)
2021年06月15日 | 飞思卡尔9s12xs128的中断声明多种方式
2021-06-15 来源:eefocus
定义中断的方式有两种,
第一种
interrupt void PTH_inter(void) //PTH_inter 是中断函数名,这个可以任意取
这种方式需要在Project.prm文件中将这个函数名与中断向量对应上。
如在prm文件处写上"VECTOR ADDRESS 0xFFE8 PTH_inter" (0xFFE8是中断向量地址,在这只是举个例子),也可以写成“VECTOR VectorNumber_Vtimch7 PTH_inter” (VectorNumber_Vtimch7是中断向量号)
第二种
#pragma CODE_SEG __NEAR_SEG NON_BANKED //中断函数置于非分页区内
interrupt VectorNumber_Vtimch7 void ICU_Ch7Int(void)
{
TFLG1_C7F = 1; //清中断标志位
}
#pragma CODE_SEG DEFAULT //后续代码置于默认区域内
我一般第二种方式声明中断函数,这样可读性和可移植性都较好。
由于飞思卡尔16位单片机的中断向量是16位,所以中断函数只有被置于非分页区内才能被寻址到,这就是第一行的作用。
第二行中“VectorNumber_Vtimch7”是中断号,它是由文件“MC9S12XS128.h”中定义的宏,这个中断号在它的技术手册中找到,但是我建议你采用这种宏的形式,因为这个宏不容易出错,可读性较高,比如“VectorNumber_Vtimch7”即为定时器(TIM)通道7(CH7)所对应的中断号。中断函数名“ICU_Ch7Int”可任意取,没有影响
上一篇:MC9S12G定时器中断设置
史海拾趣
|
Windows Embedded CE 6如何与Visual Studio 2008整合? 以前装Visual Studio 2005时WinCE6是能用的,但现在的机器装了VS2008,再装CE6之后,打开VS2008找不到创建CE操作系统的选项。 该如何整合开发环境才行呢?不是一定要用VS2005吧?… 查看全部问答> |
|
谁有blob-mba44b0.tgz或u-boot1.1.2 ?给小弟发一个!急啊,在线等!~ 谁有blob-mba44b0.tgz或u-boot1.1.2 ?给小弟发一个!我的邮箱是come971182163.com… 查看全部问答> |
|
在PDA里如何实现datagrid可直接编辑功能,MSDN上说不行,有没有其他的办法,或是用其他列表控件,请高手指教,先谢谢了,已经找了两天了都… 查看全部问答> |




