C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 我必须在一个中禁用中断吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我在Microchip C18上使用多个中断,是否必须在内部禁用高中断?

虑以下代码

#ifndef OTHER_INTERRUPT_H
#pragma interrupt InterruptHook // interrupt fname
void InterruptHook(void)
{
    #ifdef STEPPER_H
        Stepper_Interrupt();
    #endif

    #ifdef FLOW_H
        Flow_Interrupt();
    #endif
}
#endif

我应该采用与下面代码相同的方法吗? (然后我会将禁用放在函数内的适当位置.)

#ifndef OTHER_INTERRUPT_H
#pragma interrupt InterruptHook // interrupt fname
void InterruptHook(void)
{
    #ifdef STEPPER_H
        INTCONbits.GIEH = 0;
        Stepper_Interrupt();
        INTCONbits.GIEH = 1;
    #endif

    #ifdef FLOW_H
        INTCONbits.GIEH = 0;    
        Flow_Interrupt();
        INTCONbits.GIEH = 1;
    #endif
}
#endif

解决方法

这取决于硬件.某些处理器在维护中断时自动禁用中断.其他人优先虑他们的中断,以便在更低的服务时仍然可以发生更高优先级的中断.

Microchip PIC18系列微控制器具有多级硬件中断,也可以选择优先级.

大佬总结

以上是大佬教程为你收集整理的c – 我必须在一个中禁用中断吗?全部内容,希望文章能够帮你解决c – 我必须在一个中禁用中断吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。