Forum: Mikrocontroller und Digitale Elektronik bits zusammen verknüpfen


von mrw (Gast)


Lesenswert?

Guten Abend zusammen. Wie kann ich ich pins oben im define verknüpfen.?
Ich möchte die Ausgänge einmal definieren und dann aufrufen können.
Quasi: #define   z0   PD0 und PD1 und PD2

#include <avr/io.h>
#include <util/delay.h>
#include "defines.h"

#define       z0  (1<<PD0) && (1<<PD1)

int main(void){

  DDRC |= 0xff;
  DDRD |= 0xff;

    while(1)
    {
  PORTC  |= (1<<l1)|(1<<l2)|(1<<l3)|(1<<l4);
        PORTD   |= (1<<z0);

    }
}

wisst ihr wie ich es meine.? :)
danke . mfg

von N. G. (newgeneration) Benutzerseite


Lesenswert?

etwa so?
1
#define z0 (1<<PD0)|(1<<PD1)
dann musst du aber auch so schreiben
1
        PORTD |= z0;

von Peter II (Gast)


Lesenswert?

mrw schrieb:
> wisst ihr wie ich es meine.? :)

denke schon.

#define       z0  (1<<PD0)|(1<<PD1)

PORTD |= z0

aber das hat Nachteile. Hier wird wirklich der Port erste gelesen, dann 
das oder gemacht und dann wieder geschrieben. Das sind also 3 
Anweisungen. Und dabei darf auch keine ISR einen Pin auf diesem Port 
ändern.

dageben


PORTD |= (1<<PD0);
PORTD |= (1<<PD1);

sind nur 2 Anweisungen.

von mrw (Gast)


Lesenswert?

vielen dank :)
mehr wollte ich nicht

von Martin (Gast)


Lesenswert?

Vergesst das Rücksetzen der Bits nicht!

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.