2012-01-05 16 views
2

私はライブラリを使用していますが残念ながら、開発者は自分のGitリポジトリの問題に対応していない、ライブラリはHT1632C LEDマトリックスドライバを駆動するために使用され、0022/0023で動作しますが、Arduino 1.0では動作しません。コンパイルされたとき、私はSketch次のエラーを与える:このサイトを参照ArduinoのライブラリをArduino 0023から1.0.02に変換するのに問題があります。

In file included from Final_code__1_0compatible.cpp:7: 
C:\arduino-1.0\libraries\ht1632c/ht1632c.h:182: error: conflicting return type specified for 'virtual void ht1632c::write(uint8_t)' 
C:\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)' 

http://arduino.cc/forum/index.php?topic=82450.0は、私が(しかし、別のライブラリを)やった同じコンパイルエラーを持っていた人からのコメントを見つけました。

.H:その修正は "size_t型" で何かを置き換えることだったようですライブラリの.hの中に矛盾するラインとの.cppファイルがあることを見て

Line 200: size_t write(uint8_t); //changed to resolve conflict with print.h

に見える

void write(uint8_t chr);

た.cpp:

void ht1632c::write(uint8_t chr) 
{ 
    byte x, y; 
    if (chr == '\n') { 
     //y_cur += font_height; 
    } else { 
     //x_cur += putchar(x_cur, y_cur, chr, GREEN, PROPORTIONAL); 
     //x_cur = 0; 
     //y_cur = 0; 
    } 
    //sendframe(); 
} 

私はC/C++専門家ではないんだけど、私は修正しています私が.hを"size_t write(uint8_t chr)"に変更し、.cppが"size_t ht1632c :: write(uint8_t chr)"になるという点で、これはうまくいくでしょうか?

"void"を "size_t"に置き換えるか、 "uint8_t"を "size_t"に置き換える必要があるかどうかは分かりません。

答えて

2

ので、

size_t ht1632c::write(uint8_t chr) 

は、右の機能変更です。あなたはまた、右

sendframe(); 

行の後

return 1; 

を追加する必要があります。書き込みに成功した文字数を返すことが期待されます。書き込みにエラーがあるかどうかを判断するために貼り付けたコードには何も記述されていません

+0

私の結果を確認していただきありがとうございます.Peter Arduinoの言葉を参考にしていただきありがとうございます。 –

関連する問題