changlee
14.11.2015, 22:29
Hallo,
ich würde gern eine Funktion so in eine eine eigene .c-Datei auslagern, dass diese für viele Projekte wiederverwendbar ist.
Die Funktion soll aber auf ein Portpin zugreifen können, welches sich je nach Projekt ändern kann.
Also z.B. so etwas:
// Datei blink.c
//#define led PORTBbits.RB0;
void blink(char anzahl){
while(anzahl-->0){
led=1;
warte();
led=0
warte();
}
}
Die Definition von "led" möchte ich aber nicht auslagern, da in einem anderen Projekt die LED an einem anderen Pin angeschlossen sein könnte.
Im Prinzip möchte ich also genau das machen, was von Haus aus auch schon mit _delay_us() geht. Um das delay nutzen zu können, muss ich zuvor _XTAL_FREQ definiert haben.
Wenn ich "led" aber nicht im ausgelagerten Teil, sondern im Projekt-c-File definiere beschwert sich der Compiler, weil ihm die Definition dort fehlt, wo er sie braucht.
Weiß jemand, wass man tun muss, damit sowas funktioniert?
(Ich möchte natürlich nicht in blink.c ein include einbauen, dass dann die jeweilige Definition einliest. Denn dann kann ich ja nicht ein und dieselbe blink.c für verschiebdene Projekte nutzen.)
Viele Grüße
Stefan
ich würde gern eine Funktion so in eine eine eigene .c-Datei auslagern, dass diese für viele Projekte wiederverwendbar ist.
Die Funktion soll aber auf ein Portpin zugreifen können, welches sich je nach Projekt ändern kann.
Also z.B. so etwas:
// Datei blink.c
//#define led PORTBbits.RB0;
void blink(char anzahl){
while(anzahl-->0){
led=1;
warte();
led=0
warte();
}
}
Die Definition von "led" möchte ich aber nicht auslagern, da in einem anderen Projekt die LED an einem anderen Pin angeschlossen sein könnte.
Im Prinzip möchte ich also genau das machen, was von Haus aus auch schon mit _delay_us() geht. Um das delay nutzen zu können, muss ich zuvor _XTAL_FREQ definiert haben.
Wenn ich "led" aber nicht im ausgelagerten Teil, sondern im Projekt-c-File definiere beschwert sich der Compiler, weil ihm die Definition dort fehlt, wo er sie braucht.
Weiß jemand, wass man tun muss, damit sowas funktioniert?
(Ich möchte natürlich nicht in blink.c ein include einbauen, dass dann die jeweilige Definition einliest. Denn dann kann ich ja nicht ein und dieselbe blink.c für verschiebdene Projekte nutzen.)
Viele Grüße
Stefan