これに対する答えを見つけようとしましたが、うまくいくものは見つかりませんでした。静的メソッドのクラスを作成しようとしているので、関数ポインターをSPI::transmitData()
後で呼び出すことができますSPI::call()
。ただし、エラーが発生します。
未解決のシンボル SPI::mycallback、./spi.obj で最初に参照
spi.h:
#ifndef SPI_H_
#define SPI_H_
#include "msp430g2553.h"
class SPI {
public:
typedef void (*foo)(void);
static foo mycallback;
static void transmitData(unsigned char data, foo callback);
static void call();
};
#endif /* SPI_H_ */
spi.cpp:
#include "spi.h"
void SPI::transmitData(unsigned char data, foo callback) {
mycallback = callback; // causes error
UCA0TXBUF = data;
}
void SPI::call() {
//SPI::mycallback();
}
私はそれをいじろうとしてきましたが、マークした行にコメントするとエラーが消えます。何が起こっているのかわからない。