注册 登录
查看: 555|回复: 5

[K60] EnableInterrupts 和 enable_irq (PIT0_IRQn)的问题

[复制链接]
发表于 2014-1-1 22:48:10 | 显示全部楼层 |阅读模式
我用EnableInterrupts 使能中断时,怎么使能不了PIT中断呢,EnableInterrupts 不是使能全部中断吗,应该使能它时,应该包括PIT中断也使能啊,但是我只有用enable_irq (PIT0_IRQn) 使能PIT0,不明白


回复

使用道具 举报

发表于 2014-1-1 22:53:27 | 显示全部楼层
就 好比 你家里 的 开关

有 个 总开关 (一般跟 保险丝 一起) ,每个 电器 也 有个 开关

只有 总开关 打开的时候,其他 电器 才 有可能 供电。

如果 关了 总开关 ,哪怕 每个 电器的开关 都 开了 ,那都是 没电的

EnableInterrupts  就是 总开关 ,enable_irq  是 每个 模块的 中断 开关。

默认是 开了 总中断的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-2 00:12:09 | 显示全部楼层
微粒子 发表于 2014-1-1 22:53
就 好比 你家里 的 开关

有 个 总开关 (一般跟 保险丝 一起) ,每个 电器 也 有个 开关

这么说我可以这样写是吗?
void  main(void)
{

    DisableInterrupts ;
    //初始化
    MY_ADC0_INIT();
    MY_FTM_PWM_INIT();
    MY_BIAN_MA_QI_INIT();
    MY_PIT0_INIT();
    MY_camera_INIT();

    DELAY_MS(1);

   // CV_GYRO_ZERO_default =ADValue[2] ;
    DIRCTION_LEFT_ZERO_default =ADValue[1];
    set_vector_handler(PORTA_VECTORn ,PORTA_IRQHandler);    //设置LPTMR的中断复位函数为 PORTA_IRQHandler
    set_vector_handler(DMA0_VECTORn ,DMA0_IRQHandler);      //设置LPTMR的中断复位函数为 PORTA_IRQHandler
    set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);   //设置PIT0的中断服务函数为 PIT0_IRQHandler
    EnableInterrupts;     //开总中断
    enable_irq (PIT0_IRQn); //开定时PIT0中断
回复 支持 反对

使用道具 举报

发表于 2014-1-2 00:13:34 | 显示全部楼层
470895476 发表于 2014-1-2 00:12
这么说我可以这样写是吗?
void  main(void)
{

可以的,只有 总中断 使能后,每个中断才可能生效
回复 支持 反对

使用道具 举报

发表于 2014-1-2 10:16:13 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-1-2 20:09:31 | 显示全部楼层
之前 用 xs128 ,也是 有 EnableInterrupts   这样的 总中断的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部