Hm, also in C ist der kleinste Datentyp doch sowieso "char", das wären
schonmal 8 bit.
Warum schiebst du nicht einfach das komplette Byte in eine Variable und
verwendest dann einen Ausdruck wie
1 | if(dein_port & (1 << dein_bit_oder_pin)
|
2 | zielvarialbe=1;
|
3 | else zielvariable=0;
|
Etwas wie (1 << PB5) schiebt einfach nur eine 1 6 Positionen weiter nach
links, PB5 ist in diesem Fall keine Adresse, sondern eine einfache Zahl
(in der io.h definiert). Es gibt DDRB, mit dem du Eingänge oder Ausgänge
initialisierst. Aber ich bin selbst noch Anfänger.
"PINXY" steht nicht für einen Pin, sondern für einen kompletten Port
(also 8 Pins). Ein Pin kann 1 oder 0 sein, das checkst du z.B. mit if()
(Bitte korriegiert mich jemand, wenn ich einen Grundlegenden Fehler
weitererzähle)