使用类方法的C ++ ISR?

散布

是否可以将类方法用作中断服务程序?

我有一个ISR编写并使用C在函数中工作:

    static void interrupt far ISR(...) {}

我已经尝试在C ++中创建一个方法(原型):

    void interrupt far ISR(...);

然后执行:

    #pragma interrupt
    void interrupt far MyClass::ISR(...) {
    ...
    }

但是,当我尝试将其与“ setvect”一起使用时,会遇到各种各样的错误:

    setvect(muint16Vector, &ISR);

我正在尝试编写一个服务于串行端口的类,ISR将服务于来自该端口的数据的接收。然后,ISR将使用实例特定的成员。

我有3个串行端口,因此我想创建该类的3个实例。

散布

真正的答案是“不”,在C ++中不可能直接使用方法作为ISR处理程序。

您必须求助于标准C函数,然后在ISR函数中使用胶水来引用所需的对象。

最终导致解决方案非常混乱。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章