我正在試圖在我創建的庫中使用Servo.h。編譯器一直給我提供相同的錯誤,就好像它不能識別包含在我的庫中的類。Arduino:如何使用其他類的對象作爲我的庫的參數?
我想創建一個新類,它的一個屬性是一個伺服對象,我應該在構造函數中傳遞它。不管我如何努力,我不斷收到同樣的錯誤信息試圖編譯我的草圖時:
In file included from /home/nezah/Arduino/My sketches/CameraShutter/CameraShutter.ino:8:0: /home/nezah/Arduino/libraries/Shutter/Shutter.h:13:19: error: expected ')' before '*' token Shutter(Servo *servo);
看來,包括語句是好的,因爲我得到了不同的消息,如果我惹它出問題或完全刪除它。我已嘗試更改「」爲<>,甚至將源複製到文件夾中並使用完整路徑。只要我不把它弄糊塗(故意)就沒有改變。我已經閱讀this。
我也試過將它作爲指針,使用Shutter(Servo* servo)
,Shutter(Servo *servo)
和Shutter(Servo& servo)
。相同的錯誤消息。
在一些arduino.cc論壇上,我讀到我寧願忘記它,並避免在其他庫中使用庫,但我敢打賭,這是可能的。
有沒有人這麼好心給我如何做到這一點一些提示?
我離開你我的.h和我想寫(其中,順便說一下,變成一個伺服到一個物理按鍵壓但突發能力)的庫的.cpp的一部分。
/*
* Shutter.h - Library to make a photocamera shutter out of a servo
* alternatively it could press any physical button with a servo.
*/
#ifndef Shutter
#define Shutter
#include "Servo.h"
class Shutter {
public:
Shutter(Servo *servo);
Servo getServo();
void shut();
private:
Servo _servo;
}
#endif
這裏是我的.cpp:
/*
Shutter.cpp - Library for flashing Shutter code.
Created by David A. Mellis, November 2, 2007.
Released into the public domain.
*/
#include <Arduino.h>
#include "Servo.h"
#include "Shutter.h"
Shutter::Shutter(Servo *servo) {
_servo = servo;
}
注意:如果我刪除了一些代碼,並帶走構造的「伺服」的一部分,我上「getServo的錯誤信息( )「代碼。這個問題似乎是編譯器不能將「Servo」識別爲我的庫中的有效類型。
在此先感謝!
首先,非常感謝您的幫助!我想你告訴我,但仍然得到同樣的錯誤信息:'在文件從/家/ nezah/Arduino的/我的素描/ CameraShutter/CameraShutter.ino包括:1:0: /家庭/ nezah/Arduino的/庫/快門/ Shutter.h:12:19:錯誤:預期 ')' 前 '*' 標記 快門(伺服*伺服);'。我會問:有什麼我必須做的IDE到包括圖書館伺服?我以前在草圖中使用過,但在圖書館中沒有。 – nezah
如果我的回答對您有幫助,請將其標記爲正確。 – eyllanesc
您的回答幫助我糾正了代碼,這是一團糟,但並沒有真正解決問題。無論如何,給我提示找到解決辦法,我想。再次感謝!! – nezah