我的最新Arduino项目代码有一点错误,该代码使用TimerOne库在4位7段显示器上显示数字.我使用一个中断使微处理器不断地在每个数字之间轻弹,因为它们基本上连接在一起.
如果我把它全部保存在主PDE文件中,我的代码可以正常工作,但我认为最好将显示器隔离在自己的类中.
我的编译器在PDE中遇到以下代码的第二行有问题:
Timer1.initialize(500);
Timer1.attachInterrupt(digitDisplay.flashDigit,500);
Run Code Online (Sandbox Code Playgroud)
attachInterrupt中的第二个arg应该是可选的,我已经尝试过,有没有这个!无论如何我得到以下错误:
DigitDisplayTest.cpp: In function 'void setup()':
DigitDisplayTest:29: error: no matching function for call to 'TimerOne::attachInterrupt(<unresolved overloaded function type>)'
C:\Program Files (x86)\arduino-0022\arduino-0022\libraries\Timer1/TimerOne.h:62: note: candidates are: void TimerOne::attachInterrupt(void (*)(), long int)
Run Code Online (Sandbox Code Playgroud)
在DigitDisplay中(其中digitDisplay是一个实例),我定义flashDigit如下:
class DigitDisplay
{
private:
/*...*/
public:
/*...*/
void flashDigit();
}
void DigitDisplay::flashDigit()
{
wipeDisplay();
for (int i = 0; i < _digitCount ; i++)
{
if ( i == _digit ) digitalWrite( _digitPins[i], HIGH );
else digitalWrite( _digitPins[i], LOW );
}
displayNumber(_digits[_digit]);
_digit++ …Run Code Online (Sandbox Code Playgroud) 我很抱歉,我知道这个话题已经被做死(我读过我读过这个和这个,还有一些人),但有一个问题,我有我不知道怎么做"正确的".
目前,我的多线程数独策略代码如下:
public class MultithreadedStrategy : ISudokuSolverStrategy
{
private Sudoku Sudoku;
private List<Thread> ThreadList = new List<Thread>();
private Object solvedLocker = new Object();
private bool _solved;
public bool Solved // This is slow!
{
get
{
lock (solvedLocker)
{
return _solved;
}
}
set
{
lock (solvedLocker)
{
_solved = value;
}
}
}
private int threads;
private ConcurrentQueue<Node> queue = new ConcurrentQueue<Node>();
public MultithreadedStrategy(int t)
{
threads = t;
Solved = false;
}
public Sudoku …Run Code Online (Sandbox Code Playgroud)