Code Fehler - function not declared

Hallo,

ich habe leider sehr wenig Ahnung vom Coden und wollte den nachfolgenden Code eigentlich nur nutzen.
Habe ich so online kopiert (von diesem Projekt )
Sollte eigentlich laufen, so wie ich das verstehe. Jetzt bekomme ich aber leider folgende Fehler:

DIY_Chrono2.ino.ino: In function 'void setup()':
DIY_Chrono2.ino.ino:140:18: error: 'refreshDisplay' was not declared in this scope
DIY_Chrono2.ino.ino: In function 'void loop()':
DIY_Chrono2.ino.ino:153:13: error: 'getButton' was not declared in this scope
DIY_Chrono2.ino.ino:154:14: error: 'runDisplay' was not declared in this scope
DIY_Chrono2.ino.ino:155:14: error: 'getCommand' was not declared in this scope
Fehler beim Kompilieren.

was muss ich machen um das zu korrigieren?

Code:


//Definitions


#define DEBUG
#define BAUD 2400
#define BUTTON_DEBOUNCE 300
#define MAX_BUF 64 // What is the longest message Arduino can store?
#define MAX_TRIGGERS 4
#define GATE_SEPARATION 385 //385
#define HIGH_SPEED_FLASH_PULSE 1000 //us
#define HIGH_SPEED_FLASH_DELAY 5    //s

 // include the library code:

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

#include <eRCaGuy_Timer2_Counter.h>
#include <EEPROM.h>


#define gatePort PINC
const byte gateA = 16;
const byte gateB = 15;  


unsigned long bulletTransitTime;
unsigned long _bTimeout = 600000;  //Default 10 minutes
unsigned long bulletDepartureTime;
unsigned long _bMinTime;
unsigned long _tTimeOffset[MAX_TRIGGERS];
byte _tPin[MAX_TRIGGERS];

unsigned long distToTarget;
byte _tOn = 0;
unsigned long _bTrigTime;
unsigned int clockRate = 1000;

char serialBuffer[MAX_BUF];

int sofar;
byte left;

const byte backlightPin = 10;
const byte inputButtonPin = 14;

#define BUTTON_INPUT analogRead(inputButtonPin)

//Pins Setup

  byte pinReadValue;
  byte camPin = 0;
  byte gunPin = 0;



//Chronograph Values

  unsigned long startGate;
  unsigned long startGateB;
  unsigned long stopGate;
  unsigned long stopGateB;

//Trigger Setup

  boolean distanceTrigger = false;
  boolean timeTrigger = false;
  unsigned long triggerDelay;
  unsigned long triggerTime;
  unsigned long triggerComp;



//Serial Commander
  String COMstring;
  unsigned long COMvalue;
  const char terminator = '/';


//Other
  const String indent = "   ";
  const String dindent = "    ";


//LCD Menu

  char menuPosition = 2;
  const byte menuPositionSize = 7;
  byte backlightOn = 1;
  int backlightPwr = 255;
  byte safety = 1;

void setup() {

  Serial.begin(BAUD);      
  lcd.begin(16, 2);
  pinMode(inputButtonPin, INPUT);
  pinMode(backlightPin, OUTPUT);
  digitalWrite(backlightPin, 1);
  pinMode(gunPin, OUTPUT);
  pinMode(camPin, OUTPUT);
  digitalWrite(gunPin, 0);

  pinMode(gateA, INPUT_PULLUP);        //Setup input and output pins
  pinMode(gateB, INPUT_PULLUP);


  Serial.println("Ballistic Chronograph - READY");  //Hello world message
  Serial.println("Type 'h' for more information");
  Serial.println();
  refreshDisplay();

  for (byte i = 0; i < MAX_TRIGGERS; i++){
    _tPin[i] = 255;

  }
  pinMode(11, INPUT);
  pinMode(12, INPUT);
  pinMode(13, INPUT);

  timer2.setup();
  clockRate = 900 + EEPROM.read(0);
  if (clockRate == 900 || clockRate == 900 + 255) clockRate = 1000;

}

void loop(){
  getButton();
  runDisplay();
  getCommand();
}

Entferne bitte mal die unnötigen Leerzeilen aus deinem Sketch und Fehlermeldung, dann sind die auch lesbar.
Mach das bitte noch nachträglich.

icerise1:
was muss ich machen um das zu korrigieren?

Aufräumen!
Das kann ja kein Mensch lesen.
Und dann nicht nur den letzten Teil kopieren, sondern alles.
Dazu den Artikel lesen und die Quellen benutzen, auf denen das basiert.

HotSystems war schneller .

Sorry, nicht gesehen, dass er das so zerfetzt hat. Sieht im original code ordentlich aus, ohne Leerzeilen.

@my_xy_projekt: was meinst du mit nur letzten Teil?

Wie ich das jetzt sehe, hast du nur einen Teil und nicht den kompletten Sketch hier eingestellt.
Vermutlich fehlt der Teil auch schon bei der Kompilierung.

HotSystems:
Wie ich das jetzt sehe, hast du nur einen Teil und nicht den kompletten Sketch hier eingestellt.
Vermutlich fehlt der Teil auch schon bei der Kompilierung.

Ja.
Denn wenn er dem Artikel, aus dem er den Teil her hat, von Anfang an gefolgt wäre, wäre er auf github gestossen und hätte den Code Version 1 gehabt. Der beinhaltet nämlich noch die tabs "_UI, _chronoFunctions, _chronoMacros, _display, _serial und trigger_Funktions
:wink:

was meinst du mit nur letzten Teil?

Du hast vorher etwas vergessen.

Hast Du die anderen Dateien, die dazu gehören im Ordner liegen?

Etwas zu spät, musste aber auch erstmal alles zusammensuchen inkl. Sourcecode (Wäre eigentlich Sache des TO gewesen)

Moko:
....musste aber auch erstmal alles zusammensuchen inkl. Sourcecode (Wäre eigentlich Sache des TO gewesen)

Wieso musstest du das.
Meine Devise, nur beim Selbermachen lernt man was und heute haben doch alle (viele) sehr viel Zeit.

Moko:
musste aber auch erstmal alles zusammensuchen inkl. Sourcecode

Wieso?
Spätestens mit “How to build it” ist doch ganz klar definiert wo …

(Wäre eigentlich Sache des TO gewesen)

ja.

Danke :slight_smile:

Ich hatte mir vorher schon die anderen Dateien angeschaut, aber war der Meinung sie würden nicht aufgerufen (keine #include oder functionen die wie die files hießen..)
Hatte auch schon geschaut wie man weitere Daten einbindet, aber hab keine so klare aussagen gefunden wie: müssen alle in einen Ordner.

Also Danke an alle und besonders an Moko das ihr mir "voll-noob" geholfen habt. hab den Code jetzt laufen. :grin:

Die IDE ist in diesem Punkt etwas "sonderlich":
Der Sketch wird aus allen Tab's eines Sketches in alfabetischer Reihenfolge zusammengefügt und dann kompiliert. Die Tab's findest Du auch alle zusammen im gleichen Directory des Sketches.
Grüße Uwe

icerise1:
....
Also Danke an alle und besonders an Moko das ihr mir "voll-noob" geholfen habt. hab den Code jetzt laufen. :grin:

Prima und danke für die Rückmeldung.

Aber merke, immer alles in einer Beschreibung komplett lesen.
Das ist wichtig.

Wo stand was zu den Sketch files? ich hab echt alles 3x gelesen, aber nichts gefunden als die “How to build” und das Assembly Manual. Und da steht nirgends drin wie mit den Files umzugehen ist.

Und genau da gibt es einen Download.....