This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
有一个最高优先级的中断程序任务1, 任务1由定时器中断开启;
有一个次高优先级的中断程序任务2;
还有N多任务在在主循环中执行.
要求每执行128次任务1后, 开启任务2, 并且任务2在执行过程中能被任务1中断, 因为执行一次任务2的期间任务1可能被唤醒.
目前我是把任务2放在了第128次任务1的尾部, 在同一个中断函数中, 问题是任务2计算时间太长导致任务1错过, 因为是同个中断职数.
如何把任务2放到一个比任务1优先级低的中断函数中, 在任务1的第128次执行完后唤醒此中断函数?
看了<<spru430f.pdf>>中关于TRAP INTR介绍, INTR指令照PDF文档中使用, 在C语言中以下两种方法使用编译都报错:
// asm("intr INT1");
// INTR INT1;
另外看了TRAP 指令的介绍, 好像是不能被中断的
你好,默认情况下,中断时GIE也就是总中断开关是关闭的,此时再次无法触发中断,也就是中断嵌套。
根据你的描述,我认为你可以尝试在第128次循环中开启总中断,此时任务2可以运行。
有没有TRAP INTR 指令使用说明 例程
使用说明就是你在开始提到的文件以及datasheet中也有一些。
例程这边官方是没有提供的。需要您参考资料来配置。
您可以参考下下面几篇帖子: