是否可以将类方法用作中断服务程序?
我有一个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] 删除。
我来说两句