指针的应用(zlg)

INT32S zyIsrSet (unsigned int uiChannel, unsigned long ulFunction, unsigned int uiPrio)

{

    unsigned int uiTmp1, uiTmp2, uiTmp3;

 

    if (uiChannel > MAX_VICS) {

        return -ZY_NOT_OK;

    }

 

    zyIrqDisable();

 

    if (uiChannel >= 16) {

        uiTmp3 = uiChannel - 16;

        uiTmp1 = uiTmp3 / 32;

        uiTmp2 = uiTmp3 % 32;

 

        ((INT32U *)0xE000E100)[uiTmp1] = 1ul << uiTmp2;    //这里((INT32U *)0xE000E100)[uiTmp1]  好好理解

        ((INT8U *)0xE000E400)[uiTmp3]  = uiPrio;

    } else {

        switch (uiChannel) {

 

        case MMI:

            SHCSR = SHCSR | (1 << 16);

            break;

 

        case BFI:

            SHCSR = SHCSR | (1 << 17);

            break;

 

        case UFI:

            SHCSR = SHCSR | (1 << 18);

            break;

 

        default:

            break;

        }

        if (uiChannel >= MMI) {

            uiTmp3 = uiChannel - MMI;

            ((INT8U *)0xE000ED18)[uiTmp3]  = uiPrio;

        }

    }

 

#if VECTOR_TABLE_IN_FLASH == 0

    ((unsigned long *)VTOR)[uiChannel] = ulFunction;

#endif

    zyIrqEnable();

    return ZY_OK;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值