Nur Fehlermeldungen ?

Hallo
Verwende Arduino 1.0.1 unter Windows.
Egal welche Beispiele ich aus dem Forum oder Hersellerseiten verwende. Ich bekomme nur Fehlermeldungen.
Z.B.(beim LCD Key Shield)

Key_Grab.cpp.o: In function __static_initialization_and_destruction_0': C:\Temp\build4488143314118283572.tmp/Key_Grab.cpp:31: undefined reference to DFR_Key::DFR_Key()’
Key_Grab.cpp.o: In function loop': C:\Temp\build4488143314118283572.tmp/Key_Grab.cpp:65: undefined reference to DFR_Key::getKey()’
Key_Grab.cpp.o: In function setup': C:\Temp\build4488143314118283572.tmp/Key_Grab.cpp:50: undefined reference to DFR_Key::setRate(int)’

Wie grenzt man seine Fehlersuche sinnvoll ein? Wie geht man strukturiert vor? Muss jeder die selben Fehler immer wieder machen ?

Danke

Meine Kristallkugel ist grad etwas vernebelt, aber kann es sein, dass die library nicht included ist?

@nikolaus10 Bitte genaue Bezeichnung welchen Arduino und welche Shield Du verwendest, die Link der verwendeten Beispiele und Bibliotheken. Sind das alle Fehlermeldungen oder sind noch einige versteckt (Fenster vergrößern)

@markbee stielst Du mir meine kleinen Sticheleien? Grüße Uwe

Danke fuer die Antwort.

ich verwende die Beispiel so wie sie angegen sind. Der Code fuer den Arduino lautet:

/*
Sainsmart LCD Shield for Arduino
Key Grab v0.2
Written by jacky

www.sainsmart.com

Displays the currently pressed key on the LCD screen.

Key Codes (in left-to-right order):

None   - 0
Select - 1
Left   - 2
Up     - 3
Down   - 4
Right  - 5

*/

#include 
#include 

//Pin assignments for SainSmart LCD Keypad Shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
//---------------------------------------------

DFR_Key keypad;

int localKey = 0;
String keyString = "";
                 
void setup() 
{ 
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Key Grab v0.2");
  delay(2500);
  
  /*
  OPTIONAL
  keypad.setRate(x);
  Sets the sample rate at once every x milliseconds.
  Default: 10ms
  */
  keypad.setRate(10);

}

void loop() 
{ 
  /*
  keypad.getKey();
  Grabs the current key.
  Returns a non-zero integer corresponding to the pressed key,
  OR
  Returns 0 for no keys pressed,
  OR
  Returns -1 (sample wait) when no key is available to be sampled.
  */
  localKey = keypad.getKey();
  
  if (localKey != SAMPLE_WAIT)
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Current Key:");
    lcd.setCursor(0, 1);
    lcd.print(localKey);
  }
}

Die Folder fuer DFR_Key sind auch angelegt. KR

Die Folder fuer DFR_Key sind auch angelegt

... und dort ist sicher eine .cpp Datei, in der z.B. irgendwo

``` public: ...   DFR_Key::DFR_Key()   {     ...   } ```

steht.

Nun, dann findet die IDE diesen Folder nicht.

Wenn du in der IDE Sketch/Library Importieren anwählst, wird dann deine DFR_Key Library aufgelistet ? Diese Liste fängt normalerweise mit 'EEPROM' an und hört mit 'Wire' auf. Wenn DFR_Key dabei ist, einfach mal importieren. Wenn nicht, Den Folder nach arduino-1.0.1\libraries oder wo immer die anderen Libraries sind, kopieren.

Wie grenzt man seine Fehlersuche sinnvoll ein? Wie geht man strukturiert vor?

Ich versuche, die Fehlermeldungen zu verstehen, und zu raten was sie bedeuten ;) Grundsätzliche Fehler verursachen oft viele Meldungen, da reicht es oft, nur die erste zu verstehen (und zu beheben)

In deinem Fall

... Key_Grab.cpp:31: undefined reference to `DFR_Key::DFR_Key()'

ist vermutlich Key_Grab.ino deine Datei, an die die IDE am Anfang ein paar Zeilen anfügt, und dann in Key_Grab.cpp umbenennt, so dass :31 nur ungefähr die Zeilennummer ist. DFR_Key::DFR_Key() ist der Constructor, der in deiner Zeile DFR_Key keypad; verwendet wird, den es (lt. include Datei ) so auch geben sollte, aber nun leider doch nicht gibt, jedenfalls nicht in der Liste der Dateien, die zu deinem Projekt dazugehören.

Damit hatte ich mich auch schon mal rumgeplagt,das Programm ist relativ dürftig und wenns lief wurds nicht ordentlich dargestellt (Display flimmerte weils langsamer war als "clear" und neues schreiben). und die Libary nutze ich nicht mehr. Ich hab mir einfach eine eigene kleine auswertung geschrieben für die Tastenauswertung.

Ich muss später nochmal bei mir reinschauen was genau ich gemacht hab

Danke fuer die bisherigen Antworten.

Es fustriert nur, wenn man einfache Beispiele aus dem Netzt nimmt und die dann verda..t nochmal nicht funktionieren.

KR