我现在有一些代码希望在Teensy 3.6微控制器上的基于计时器的中断中运行。该代码访问类的[global]对象数组。我已经将该数组和所有成员变量标记为volatile,我认为这是正确处理中断的第一步。
我标记为volatile的成员变量之一是std :: bitset,我想称其为非易失性方法,我不能这样做
"passing 'volatile std::bitset<16u>' as 'this' argument discards qualifiers [-fpermissive]"
Run Code Online (Sandbox Code Playgroud)
我想我可以复制位集库并将所有内容切换为volatile,但是我认为这不是必需的,所以我认为有更好的解决方案,或者我在错误地考虑问题。
请让我知道应该怎么做。
这些答案似乎建议在ISR和多线程程序中访问ISR中的全局变量时使用volatile: C'Volatile'关键字?,
在中断例程中使用C ++对象(和volatile)的正确方法是什么?,
这是许多建议使用的外部资源的补充。也许我的原始信息不清楚,或者我的情况与此不同。