zwei Pins vom Mikrocontroller im define

Gast #4308509
Lesenswert?
• ▲
▼
Hi,
ich habe einen dspic30f4011. ich möchte gerne, dass wenn ich eine 
Variable aufrufe, der entsprechende Pin auf High geht.

Für einen Pin habe ich es so gemacht
1
...
2
#define Power LATDbits.LATD3
3
...
4
...
5
Power = 1;
6
...
7
Power = 0;
8
...

Jetzt möchte ich beim Aufruf aber nicht nur einen Pin auf High/Low 
schalten, sondern zwei. Aber wie bekomme ich zwei Pins in einem define 
rein?

Oder gibt es da eine andere Methode zu?
Persönliche Seite #4308593
Lesenswert?
• ▲
▼
DirkF schrieb:
> #define Power_on LATDbits.LATD3=1; LATDbits.LATD4=1;
> #define Power_off LATDbits.LATD3=0; LATDbits.LATD4=0;

schlecht, weil:
1
//...
2
if(x) 
3
   Power_on;
4

5
//wird umgesetzt zu:
6

7
if(x)
8
    LATDbits.LATD3=1;
9
LATDbits.LATD4=1;
ich habs extra so eingerückt dass man den Fehler sieht.

Besser:
1
#define Power_on do{LATDbits.LATD3=1; LATDbits.LATD4=1;}while(0)
2
#define Power_off do{LATDbits.LATD3=0; LATDbits.LATD4=0;}while(0)
Gast #4308892
Lesenswert?
• ▲
▼
Noch besser ist es, das in eine Funktion zu packen.
Spart Programmspeicher bei häufigen Aufrufen.


void Power (unsigend char switch)
   {
   LATDbits.LATD3=switch;
   LATDbits.LATD4=switch;
   }


Power (1);  // zum Einschlten
Power (0);  // zum Ausschlten

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.