hallo, habe den Beitrag "Globale Variablen, mehrere Dateien" gelesen. Dieses funktioniert sehr gut. Ich möchte auch wie Beispiel, die Portpin's global verwalten. #define LED_FEHLER LATBbits.LATB2 // LED Fehler #define LED_SIGNAL LATBbits.LATB3 // LED Signal #define BUZZER LATBbits.LATB4 // Buzzer Habe es leider noch nicht hinbekommen. Für eure Hilfe bin ich sehr dankbar. Gruß Siegfried
Das sind keine globalen Variablen. Es sind Defines!. Wenn du auf die von überall zugreifen willst, gehören die in einer Header-Datei, die dort eingebunden wird, wo du auf diese zugreifen möchtest. @ LATBbits.LATB: was ist das für ein Controller den du da verwendest?
Hallo, Controller = 18F4550 Habe es so probiert. #ifndef EXTERN #define EXTERN extern #endif EXTERN unsigned char ProzessStatus; EXTERN #define SPI2_EN LATAbits.LATA0 // Service Enable Bekomme aber ein Fehlermeldung: 35:Error: syntax error Gruß Siegfried
Versuch es mal so: #pragma bit SPI2_EN @ LATAbits.LATA0 Welche Fehlermeldung bekommst du genau?
#ifndef EXTERN #define EXTERN extern #endif Würd ich so nicht machen, extern oder EXTERN, naja geschmäcker sind ja unterschiedlich aber nenns doch lieber GLOBAL Syntaxerror, hmm, ... schau mal: EXTERN #define SPI2_EN LATAbits.LATA0 // Service Enable ich persönlich kenn keine externe #define! Ich glaub hier haperts ein wenig an Grundkenntnissen. Kurzanleitung: MyModule.c
1 | #include MyModule.h
|
2 | #define GlobaleModuldefine 0x01
|
3 | |
4 | unsigned char GlobaleVariable = 0; //aber nur für das Modul |
5 | |
6 | void schoeneFunktion(void) |
7 | {
|
8 | ;
|
9 | }
|
10 | ...
|
MyModule.h
1 | //in deinem Beispiel jetzt sind sie GLOBAL:
|
2 | #define LED_FEHLER LATBbits.LATB2 // LED Fehler
|
3 | #define LED_SIGNAL LATBbits.LATB3 // LED Signal
|
4 | #define BUZZER LATBbits.LATB4 // Buzzer
|
5 | ...
|
Und das kannst du mit weiteren Modulen aufrufen Modul1.c
1 | #include MyModule.h
|
2 | ...
|
Modul2.c
1 | #include MyModule.h
|
2 | ...
|
usw. Gruß
Hallo, Ich weis, du hast recht. "Ich glaub hier haperts ein wenig an Grundkenntnissen." Mit C, C18 und PIC's arbeite erst seit 8 Wochen. Muß und werde noch viel lernen und auch Fragen. Die paar Beiträge haben mir sehr geholfen. Für jede Hilfe bin ich immer dankbar. Gruß Siegfried
8 Wochen und noch keine Ahnung, was der preprozessor eigentlich tut? Das is ein Kunststück...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.