Danke für die Eklärung!

Nochmal zu meiner Frage oben: muss ich also immer zwingend die DDR-Register entsprechen auf in/out setzen wenn ich lesen/schreiben möchte?

Mir geht es darum, dass ich ein Bus-Protokoll implementieren möchte. Dazu muss ich erst den Bus ein paar mal auf high/low legen, d.h. ich setze das DDR meines Ports auf Ausgang und schreibe dann die entsprechenden 0er oder 1er mit PORTx |= ...
Dann will ich von den selben Pins lesen, d.h. ich muss das DDR auf Eingang stellen und denn kann ich via PINx die angelegten Zustände lesen?

Sind meine Überlegungen so richtig?
Oder kann ich eine angeschlossene Leitung auch ohne diesen Wechsel der DDR-Richtung auf high oder low ziehen?
Was genau bewirkt das setzen des DDR intern? Weil im endeffekt legt doch die Anweisung PORTx |= .. bzw. PORTx &= ... dann den entsprechenden Pegel auf den Port.