2012-01-05 4 views
2

불행히도 개발자가 더 이상 Git 저장소에서 문제를 해결하지 않거나 답장을 보내지 않는 라이브러리를 사용하고 있습니다. 이 라이브러리는 HT1632C LED 매트릭스 드라이버를 구동하는 데 사용되며 0022/0023에서 작동하지만 Arduino 1.0에서는 작동하지 않습니다. 컴파일 할 때 내는 Sketch 다음과 같은 오류를 제공합니다 :이 사이트를 참조하는Arduino 라이브러리를 Arduino 0023에서 1.0.03로 변환하는 데 문제가 있습니다.

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 :

void write(uint8_t chr);

자신의 수정 "이 size_t"뭔가를 대체하는 것처럼 그것은

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

라이브러리의 .H 및 .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

내 결과를 확인해 주셔서 감사합니다. 피터 Arduino 용어에 대한 언급을 추가해 주셔서 감사합니다! –