wenn ich den Portb.2 ueber den schalter laufen lasse und auf pinb.3 abfrage wuerde es reichen und ich komme ohne Widerstand aus
Das verstehe ich zwar nicht ganz, weil B.2 und B.3 irgendwie gar nicht in Deinem Code vorkommen - aber wie auch immer: Du musst sicherstellen, dass Eingangspins niemals "in der Luft" hängen. D.h. wenn Dein Schalter nach Masse geht brauchst Du einen PullUp, und wenn er nach + geht einen PullDown. Komplett unbeschaltete Eingänge sind so hochohmig, dass sie sich ein vollkommen unkalkulierbares Sammelsurium an Störimpulsen einfangen - damt kann keine Eingangs-Abfrage funktionieren...

Btw: PullUp-Widerstände haben die Controller eingebaut - Du aktivierts sie, wenn Du das entsprechende PORT-Register auf 1 setzt.

Also z.B. PORTB.2 = 1, wenn Du PINB.2 als Eingang abfragen mächtest.