小编Sma*_*Man的帖子

使用attachInterrupt时没有匹配的函数错误

我的最新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)

arduino interrupt

5
推荐指数
1
解决办法
9133
查看次数

如果volatile不是一个好主意,C#替代锁定

我很抱歉,我知道这个话题已经被做死(我读过我读过这个和这个,还有一些人),但有一个问题,我有我不知道怎么做"正确的".

目前,我的多线程数独策略代码如下:

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)

c# multithreading locking volatile sudoku

3
推荐指数
1
解决办法
4199
查看次数

标签 统计

arduino ×1

c# ×1

interrupt ×1

locking ×1

multithreading ×1

sudoku ×1

volatile ×1