Go Down

Topic: Nur Fehlermeldungen ? (Read 1 time) previous topic - next topic

nikolaus10

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

markbee

Meine Kristallkugel ist grad etwas vernebelt, aber kann es sein, dass die library nicht included ist?
XBee blog: http://lookmanowire.blogspot.com/

uwefed

@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

nikolaus10

Danke fuer die Antwort.

ich verwende die Beispiel so wie sie angegen sind.
Der Code fuer den Arduino lautet:
Code: [Select]
/*
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 <LiquidCrystal.h>
#include <DFR_Key.h>

//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

michael_x

Quote
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.

Quote
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 <DFR_Key.h>) so auch geben sollte, aber nun leider doch nicht gibt, jedenfalls nicht in der Liste der Dateien, die zu deinem Projekt dazugehören.


red81

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

nikolaus10

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

Go Up