Gast
#429624
Hallo!
Ich möchte für ein Projekt einen Frequenzumrichter ansteuern. Um keine
Riesen Codewurst zu erhalten würde ich die einzelnen Programmfunktionen
gerne als externe Funktionen inkludieren.
Im Anhang ist der fertige Programmteil zum FU Testen. Wenn alles in
dieser einen Datei steht, dann funktioniert das compilieren. Sie hat
normalerweise den namen motioncpu.c
(Die Funktion wartelang dient nur zum herumtesten und bleibt so nicht im
Programm.)
Als ersten Versuch zum Inkludieren hab ich folgendes Probiert:
Im Verzeichniss des C- Files gibt es die Datein:
______________________________________________
motioncpu.h (mit dem Inhalt:)
//Definitionen
//Portdefinitionen
#define fudir PORTA //Ausgangsport für FU Optokoppler Richtung
#define fufkt PORTE //Ausgangsport für FU Optikoppler Sonderfunktionen
define dpctr PORTG //Ausgangsport für das Digipoti
//Bitdefinitionen
#define furlf PINA6 //Ausgangspin Frequenzumrichter Rechtslauf
#define fullf PINA7 //Ausgangspin Frequenzumrichter Linkslauf
#define fumu1 PINE2 //Ausgangspin Frequenzumrichter Sonderfunktion 1
#define fumu2 PINE3 //Ausgangspin Frequenzumrichter Sonderfunktion 2
#define dpinc PING0 //Ausgangspin Digipoti Zaehlpuls
#define dpupd PING1 //Ausgangspin Digipoti Zaehlrichtung
#define dpena PING2 //Ausgangspin Digipoti
void wartelang (void); //Subroutine die einfach nur lange wartet
_________________________________
motioncpufu.c (mit dem Inhalt:)
#include "motioncpufu.h"
void wartelang ()
{
while (zeit)
{
zeit--;
}
}
__________________________________________
und die "originale" Datei motioncpu der die Funtkion Wartelang fehlt (da
sie in motioncpufu geschoben wurde.
Bei den Includefiles von motioncpu.c ist ebenfalls
#include "motioncpufu.h" hinzugefügt
__________________________________________
Beim compilieren tritt der fehler undefied referece to wartelang auf.
Wenn statt wartelang eine andere "Funktion" in die externe C Datei
kommt, dann ist der Fehler der selbe mit dieser Funktion.
Wenn nur die definitionen der Ports und Pins in der Headerdatei stehen,
dann funktioniert das Compilieren.
Da dies meine ersten Gehversuche mit C sind bitte ich um Verzeihung wenn
ich so einen Riesenpost für einen Anfängerfehler verursacht habe.
Ich würde gern wissen wie ich Programmcode und Funktionen in eigenen C -
Files einbinen kann.
Danke schon mal für Eure Antworten
MFG
Peter