Bitweises setzen der DIO-Pins

Da ich von Natur aus eher ein gemütliches Wesen bin will ich mir beim setzen der DIO-Poins auf INPUT, OUTPUT und dem schalten der PULL-UPS arbeit ersparen. Ich dachte da an eine Funktion in der Art wie:

/*
 setPinMode(int,int)
 Function to set pinMode and pullUps via bitpattern
 Written for Arduinos with 14 DIO-Pins
 Bitpattern for the DIO-Pins
 14 lowest bits of first int used to set pinmode LSB equals Pin 0
 0 sets pinMode to OUTPUT, 1 sets pinMode to INPUT
 14 lowest bits of second int used to activate internal pullUp-Resistors if pinMode is set to INPUT
 0 deactivates, 1 actitivates the resistors

 */
void setup()
{
  setPinMode(B00000000*256+B11111101,
             B00000000*256+B11110000); // pins 0,2-7 INPUT, 4-7 with activated pullUps; pins 1, 8-13 OUTPUT 
}

void loop()
{

}

void setPinMode(int pinState, int pullUpState)
{
  for(byte i = 0; i < 14; i++) // cycle through the 14 DIO-pins
  {
    if(bitRead(pinState,i) == 0) // if bit i is 0 set pinMode to OUTPUT
    {
      pinMode(i,OUTPUT);
    }
    else                        // if bit i is 1 set pinMode to INPUT
    {
      pinMode(i,INPUT);
      if (bitRead(pullUpState,i) == 1) //check for pullUp-Resistors on Input-pins
      {
        digitalWrite(i,HIGH);
      } 
      else
      {
        digitalWrite(i,LOW); 
      }
    }
  }
}

Es ist ja dann so, dass ich immer alle Pins auf mit einem Zustand belege, was könnte passieren wenn z.B. die Pins 0 und 1 beide auf OUTPUT geschaltet werden aber die serielle Schnittstelle Zugriff auf die beiden Pins beansprucht. Werden die Pins durch die Bibliothek umgeschaltet oder bleiben die Pins so wie ich sie geschaltet habe und die Kommunikation funktioniert nicht?

Ich hoffe mein Anliegen ist klar geworden.

Bis...
Dambo

Hast Du das schon gelesen?

Grüße Uwe

Hallo Namensvetter,

Jetzt ja.
Hat geholfen.
Danke dafür!

Bis...
Dambo