打印

菜鸟问个有关HC9S12的简单的问题

[复制链接]
2053|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
y564232717|  楼主 | 2007-7-14 10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lwtlwt| | 2007-7-16 10:48 | 只看该作者

re.

如下所示将PORTH_4设置为中断触发:

void PortH_Init(void)
{      
    PPSH |=  (1 << 4);    //设置为上升沿中断,视需求再修改
    PERH |=  (1 << 4);   //使能上拉/下拉电阻,视需求再修改
    DDRH &= ~(1 << 4);   //置为输入状态
    PIFH = (1 << 4);     //清除之前可能产生的中断标志,
    PIEH_PIEH4 = 1;      //使能PORTH_4中断
}

以下下中断服务程序:
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void _PORTH_Interrupt(void)
{  
    if(PIFH & (1 << 4)) 
    {        
        PIFH = (1 << 4);   // 清除中断标志,这是必需的,
        /* 这里加入中断服务程序 */
     }
}
#pragma CODE_SEG DEFAULT

PRM文件中的中断向量声明:

VECTOR ADDRESS 0xFFCC _PORTH_Interrupt

如果使用PE产生的中断向量表,则将 _PORTH_Interrupt加入向量表格相应位置,不需要在PRM文件中声明

最后:PORTH中的各个中断没有优先级,但你可以将HPRIO设置为0xcc将PORTH中断提升到IRQ中的最高级别.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

粉丝