Forum: Mikrocontroller und Digitale Elektronik Bitdeklaration global verwenden


von Hardware I. (bensen83)


Lesenswert?

Hallo Leute ich habe einen PIC24 und möchte die IO Bits mit Namen 
versehen ich habe mit eine Funktion gemacht die wie folgt ausschaut:

void initOutputs(void){        // Bit = 0 -->  Ausgang      Bit = 1 --> 
Eingang
  //IO_ENPO=0;    _TRISG0=0;
  IO_ISD00=0;    _TRISG1=0;
  IO_CW=0;    _TRISG7=0;
  IO_CCE=0;    _TRISG8=0;
  IO_mode_out=0;  _TRISG12=0;
}//initOutputs

void initInputs(void){        // Bit = 0 -->  Ausgang      Bit = 1 --> 
Eingang
  IO_SignalA=0;  _TRISG2=1;
  IO_SignalB=0;  =TRISG3=1;
  IO_mode_in=0;  _TRISG9=1;
  IO_Start_REC=0;  _TRISG14=1;
  IO_E_Stop=0;  _TRISG15=1;
}//initOutputs

wenn ich jetzt im hauptprogramm, nachdem ich diese funktionen aufgerufen 
Habe einen der Variablennamen eingebe, bekomme ich einen Fehler, dass es 
nicht deklariert wäre, wie bekomme ich es hin, dass dies nicht mehr 
passiert? danke schon mal.

von Hardware I. (bensen83)


Lesenswert?

Habe die Deklaration jetzt so gemacht:


void initOutputs(void){        // Bit = 0 -->  Ausgang      Bit = 1 --> 
Eingang
  #define IO_ENPO _RG0
  IO_ENPO=0;    _TRISG0=0;
  #define IO_ISD00 _RG1
  IO_ISD00=0;    _TRISG1=0;
  #define IO_CW _RG7
  IO_CW=0;    _TRISG7=0;
  #define IO_CCW  _RG8
  IO_CCW=0;    _TRISG8=0;
  #define IO_mode_out _RG12
  IO_mode_out=0;  _TRISG12=0;
}//initOutputs

void initInputs(void){        // Bit = 0 -->  Ausgang      Bit = 1 --> 
Eingang
  #define IO_SignalA _RG2
  IO_SignalA=0;  _TRISG2=1;
  #define IO_SignalB _RG3
  IO_SignalB=0;  _TRISG3=1;
  #define IO_mode_in _RG9
  IO_mode_in=0;  _TRISG9=1;
  #define IO_Start_Rec _RG14
  IO_Start_Rec=0;  _TRISG14=1;
  #define IO_E_Stop _RG15
  IO_E_Stop=0;  _TRISG15=1;
}//initInputs

geht aber im Main immer noch nicht, helft mir bitte ;-)

von Karl H. (kbuchegg)


Lesenswert?

> helft mir bitte ;-)

Die vernünftigste Hilfe ist an dieser Stelle:
Kauf dir ein C-Buch

von Tobias K (Gast)


Lesenswert?

Defines setzt man doch nicht in eine Funktion.
Die werden in einer Header Datei deklariert.
und die Header datei wird eingebunden.

Kann mich meinem Vorredner anschliesen.
Kauf die ein C-Buch

von Hardware I. (bensen83)


Lesenswert?

Danke Leute, habe es aUCH IN NE hEADER dATEI GAMCHT UND ES FUNZT; pS: 
bUCH HABE ICH AUCH GEKAUFT ;-)

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
Noch kein Account? Hier anmelden.