Forum: Mikrocontroller und Digitale Elektronik Programmierung von uC


von Andreas R. (blackpuma)


Lesenswert?

Hallo!

Ich programmiere zwar immer wieder herum aber so wirklich beschäftigt 
hab ich mich noch nicht damit. Jetzt versuche ich gerade eine Zeile zu 
verstehen aber ich komme nicht dahinter was diese macht. Bitte helft mir 
weiter.
1
//RFM12 Wireless Module
2
#define RFM12_PORT                   PORTB          //Port for RFM12 Module
3
#define RFM12_PIN                     PINB          //PIN for RFM12 Module
4
#define RFM12_DDR                     DDRB          //DDR Register of Port for RFM12 Module
5
#define RFM12_LEDG                     PB0          //LED (green) for receiving messages indication
6
#define RFM12_LEDY                     PB1          //LED (yellow) for sending messages indication
7
#define RFM12_nIRQ                     PB2          //Interrupt Signal from RFM12 (low active)
8
#define RFM12_nRES                     PB3          //Reset Signal to RFM12 (low active)
9
#define RFM12_nSEL                     PB4          //Slave Select Signal to RFM12 (low active)
10
#define RFM12_SDI                      PB5          //Slave Data Input Signal (MOSI) to RFM12
11
#define RFM12_SDO                      PB6          //Slave Data Output Signal (MISO) from RFM12
12
#define RFM12_SCK                      PB7          //Clock Signal to RFM12
13
14
15
RFM12_PORT = RFM12_PORT | (1 << RFM12_nIRQ) | (1 << RFM12_nRES) | (1 << RFM12_nSEL) | (1 << RFM12_SDI) | (1 << RFM12_SDO) | (1 << RFM12_SCK);       //RFM12_LEDG and RFM12_LEDY = 0x00

Die letzte Zeile.

BG
Andreas

von Floh (Gast)


Lesenswert?

Andreas Riegebauer schrieb:
> Ich programmiere zwar immer wieder herum aber so wirklich beschäftigt
> hab ich mich noch nicht damit.

Dann wirds Zeit ein C-Buch deiner Wahl zu öffnen und bei binären 
Operatoren zu schauen. :-)

von Philipp (Gast)


Lesenswert?

Der port und alle bits sind obendrüber definiert. der compiler denkt 
sich die definierten sachen einfach an die richtige stelle.
= RFM12_PORT | (1 << RFM12_nIRQ)
bedeutet z.b.  setze bit RFM12_nIRQ (obendrüber definiert als PortB 2)
im Port RFM12_PORT (definiet als PortB
RFM12_PORT
ist definiert
als portb
die zeile setzt einfach alle ausgangsbits bes portb auf 1

von Benjamin U. (utzus)


Lesenswert?


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.