注册 登录
查看: 506|回复: 4

深夜不睡觉,只为K60中断,求大神们指点下。。。分层次执行中断!!望解答

[复制链接]
发表于 2014-3-8 23:21:46 | 显示全部楼层 |阅读模式
在K60中有四个中断,怎么在一个中断执行完后,紧接着执行下一个中断?就是采用中断优先级的概念。。。。山外哥们的直立中篇中的main.c中有这个
    pit_init_ms(PIT0, 5);                                //初始化PIT0,定时时间为: 5ms
    set_vector_handler(PIT0_VECTORn ,PIT0_IRQHandler);      //设置PIT0的中断复位函数为 PIT0_IRQHandler
    enable_irq (PIT0_IRQn);                                 //使能PIT0中断
    EnableInterrupts;//中断允许
    DELAY_MS(3000);


void PIT0_IRQHandler(void)
{
    led_turn(LED0);                             //闪烁 LED0

    AD_Calculate();                             //AD
    Speed_Calculate(angle,angle_dot);
   // Speed_Calculate(g_fCarAngle,Gyro_Now);      //速度计算
    PIT_Flag_Clear(PIT0);                       //清中断标志位
}


如果我要在这个程序执行完后紧接着执行下一个中断例如需要99ms  完了再执行一个程序需要15ms,,应该怎么在上面中断中如何添加?
回复

使用道具 举报

发表于 2014-3-8 23:40:49 | 显示全部楼层
建议你阅读这个:
Coertx-M4系列 中断嵌套的 说明 - 智能车资料区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... ;tid=959&ctid=1

回复 支持 反对

使用道具 举报

发表于 2014-3-8 23:42:14 | 显示全部楼层
中断优先级,不是一个执行完就马上执行另外一个中断,而是另外一个中断已经触发了中断请求,而且抢占优先级不高于当前执行的,那么当前中断执行后就马上执行另外一个中断。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-9 00:03:24 | 显示全部楼层
危隽洁 发表于 2014-3-8 23:42
中断优先级,不是一个执行完就马上执行另外一个中断,而是另外一个中断已经触发了中断请求,而且抢占优先级 ...

这个了解哇,我是说,在山外的底层库里面已经设置了PIT0.1.2.3   如果我要添加中断,应该在我上面发的程序中怎么添加?
回复 支持 反对

使用道具 举报

发表于 2014-3-9 01:23:35 | 显示全部楼层
小钟 发表于 2014-3-9 00:03
这个了解哇,我是说,在山外的底层库里面已经设置了PIT0.1.2.3   如果我要添加中断,应该在我上面发的程序 ...

一个个初始化,然后一个个使能中断就好啦,都已经有例程了。
看不懂你说的内容。如果需要联系执行多个任务,那就没必要在中断里执行,本身中断里就应该进行快速处理,快速退出的。像中断需要99ms这么大的延时,这是非常危险的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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