Moin Ardu-Gemeinde,
ich habe eine Fehlermeldung beim kompilieren und weiß nicht was sie mir sagen will.
Arduino: 1.8.7 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"
Build-Optionen wurden verändert, alles wird neu kompiliert
C:\Users\AHNENF~1\AppData\Local\Temp\ccaPARnc.ltrans0.ltrans.o: In function `main':
:(.text.startup+0x1ca): undefined reference to `loop'
collect2.exe: error: ld returned 1 exit status
exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Mega or Mega 2560.
Habt Ihr vielleicht eine Idee?
Gruß
Marco
Deinem Sketch fehlt die Funktion loop().
Ansonsten zeige uns Deinen Sketch oder sollen wir den erraten?
.
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Gruß Tommy
Ja Sorry,
es ist ein Sketch von "jurs"
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 22, 24, 26, 28); // Sainsmart keypad LCD (8, 9, 4, 5, 6, 7)
#define LEDPIN 13
#define SLOTS 2
// Mindestrundenzeit in Millisekunden, alles darunter als Kontaktprellen interpretieren
#define MINROUNDTIME 500
// Pins zum Anschluss der Reedkontakte (D2, D3)
byte reedPins[]={21,20};
// Interrupt-Nummern zu diesen Pins
byte pinInterrupts[]={0,1};
// Interrupt-Behandlungsroutinen
void (*isrFunctions[])() = { timing1, timing2 };
// Start der letzten Runde in Millisekunden, volatile weil Zugriff auch aus ISR!
volatile long rundenAnfang[]={0,0};
// Rundenzeit der letzten Runde in Millisekunden
long rundenZeit[]={99990,99990};
// Rundenzeit der schnellsten Runde in Millisekunden
long rundenZeitRekord[]={99990,99990};
// Rundenzähler
int rundenAnzahl[]={0,0};
void setup() {
// LCD Anzeige mit Spalten und Zeilen initialisieren
lcd.begin(16, 2);
// Anzeige LED-13 auf dem Board initialisieren
pinMode(LEDPIN,OUTPUT);
// Reedkontakte und ISR Routinen initialisieren
for (int i=0;i<SLOTS;i++)
{
pinMode(reedPins[i],INPUT_PULLUP);
attachInterrupt(pinInterrupts[i], isrFunctions[i], FALLING);
}
}
void timing1()
{
if (millis()-rundenAnfang[0]>MINROUNDTIME)
rundenAnfang[0]=millis();
}
void timing2()
{
if (millis()-rundenAnfang[1]>MINROUNDTIME)
rundenAnfang[1]=millis();
}
void RundenzeitenVerarbeiten()
{
// Start der vorletzten Runde in Millisekunden
static long rundenAnfangVerarbeitet[]={0,0};
long curMillis;
// Aktuellen Stand der millis() Funktion merken
curMillis=millis();
// Alle Slots auf Veränderungen der Rundenstartzeit abklappern
for (int i=0;i<SLOTS;i++)
{
if (rundenAnfangVerarbeitet[i]!=rundenAnfang[i])
{ // Neue Runde seit dem letzten Loopdurchlauf
rundenAnzahl[i]++; // Rundenzähler hochzählen
// Rundenzeit ermitteln
rundenZeit[i]=rundenAnfang[i]-rundenAnfangVerarbeitet[i];
// Feststellen ob es eine schnellste Runde war
if (rundenZeit[i]<rundenZeitRekord[i])
rundenZeitRekord[i]=rundenZeit[i];
// Am Ende diese Rundenzeit als verarbeitet merken
rundenAnfangVerarbeitet[i]=rundenAnfang[i];
}
}
}
ahhhhh Fehler selber gefunden...
wie blöd bin ich denn?...lach

Marco_G:
ahhhhh Fehler selber gefunden...
wie blöd bin ich denn?...lach

Na....wenn Tommy dich auch mit der Nase drauf stößt, ist es ja einfach.