Hallo miteinander,
ich möchte meinen Code etwas aufräumen und dazu habe ich mir überlegt den Code in verschiedene Dateien zu packen.
dabei habe ich schon gelernt das in eine .ino Datei meine Haupt Programm steht.
In .h Dateien sind immer nur Deklarationen und im .cpp Dateien sind dann die Funktionen die ich in der .h richtig Deklariert habe.
Da ich davon noch keinen Plan habe habe ich mir ein Kleines Test Programm erstellt.
Man kann dem Arduino einfach einen JOB nennen und er schreibt dann etwas auf dem Seriellen Monitor.
Das habe ich alles in eine .ino Datei gepackt.
Da Funktioniert mein Code auch ohne Probleme.
Dann habe ich mir überlegt welche Dateien möchte ich für mein Aufräumen haben.
und habe diese erst ein mal angelegt und per include eingebunden.
Dann bin ich hin und wollte eins (Funktionen) nach dem anderen verschieben und da kamen dann die Probleme, die IDE Deklariert die Funktionen nicht mehr selbst
Also bin ich hin und habe die erste ziele der Funktion in die .h Datei geschrieben das hat aber nichts gebracht
Irgend wie verstehe ich das nicht wie ich das machen muss, gibt es etwas das ich nachlesen kann sagen wir mal Deklarationen von Funktionen für Sau doofe?
Gruß Mücke
das ist mein Code alles in einer Datei:
/* Deklarieren.ino
*
* Übungsprogramm um Code auslagern und richtig zu Deklarieren
*
*/
// Deklarationen
#include "Funktion.h" // Deklarationen der Funkzionen
#include "Job.h" // Deklarationen der Funkzionen
// Funktion etc.
#include "Funktion.cpp" // Deklarationen der Definitionen
#include "Job.cpp" // Deklarationen der Definitionen
#define Baudrate 9600 // Geschwindigkeit, Serielle Schnittstelle
void setup()
{
Serial.begin(Baudrate); // Seriellen Monitor Installiren
}
void loop()
{
delay(10); // warten für eine Sekunde
Serielle_abfrage(); // abfrage der Seiellen schnittstelle und Job aufrufen
}
/* ***********************************************************************************************
* ***********************************************************************************************
* Das soll alles in die Datei Funktion.cpp
* ***********************************************************************************************
* ***********************************************************************************************
*/
/* ***********************************************************************************************
* FunktionSerielle Schnittstelle auslesen
* ***********************************************************************************************/
#define ZEILENTRENNZEICHEN 10
char* receiveBuffer()
{
static char lineBuffer[35];
static byte counter = 0;
char c;
if (Serial.available() == 0) return NULL;
if (counter == 0) memset(lineBuffer, 0, sizeof(lineBuffer));
c = Serial.read();
if (c == ZEILENTRENNZEICHEN)
{
counter=0;
return lineBuffer;
}
else if (c>=40)
{
lineBuffer[counter] = c;
if (counter < sizeof(lineBuffer) - 2) counter++;
}
return NULL;
}
/* ***********************************************************************************************
* Funktion Serielle Schnittstelle Abfragen
* ***********************************************************************************************/
void Serielle_abfrage()
{
char* text=receiveBuffer();
if(text != NULL)
{
if (strcmp_P(text, PSTR("Test"))==0) { Job_Test(); } // Ausgabe TEST
else if (strncmp_P(text, PSTR("Print"), 5)==0) { Job_Print(text + 6); } // Ausgabe alles was Hinter Print: kommt
else { Serial.println(F("NOK, Unbekannter Job"));}
} // if text
} // Serielle_abfrage
/* ***********************************************************************************************
* ***********************************************************************************************
* Das soll alles in die Datei Job.cpp
* ***********************************************************************************************
* ***********************************************************************************************/
/* ***********************************************************************************************
* Job: Test
* ***********************************************************************************************/
void Job_Test()
{
Serial.println(F("OK, TEST"));
}
/* ***********************************************************************************************
* Job: Print
* ***********************************************************************************************/
void Job_Print(String str)
{
Serial.print(F("Übergeben wurde: "));
Serial.println(str);
}