Gast
#1701695
Hallo,
ich habe da mal eine Frage. Angenommen ich habe eine Reihe von
Dip-Schaltern an meinem Atmega angeschlossen und will nun in C diese
Pins benutzten um eine Zahl zu bestimmen, mit der ich dann rechnen kann.
Binär oder Dezimal ist ja jetzt erstmal egal. Dann würde ich
normalerweise hingehen und den Zustand meines Ports mit sowas wie
i = PinX & Maske;
irgendwas = irgendwasanderes * i;
auslesen. Ich nehme die Pins, die ich brauche, die anderen maskiere ich
weg und kann dann mit meinen Dip-Schaltern eine binäre Zahl codieren, um
damit zu rechnen. Wie mache ich das aber, wenn die Dipschalter über
mehere Ports verteilt sind und ich eine zusammenhängenden Binärzahl
will? Ich brauche also irgendwas in der Form von.
if (!(PINB &(1<<2)))
{
LSB von i;
}
if (!(PINC &(1<<5)))
{
1. Bit von i;
}
if (!(PIND &(1<<0)))
{
2. Bit von i;
}
usw. Wie aber macht man sowas konkret und in elegant?
Gruß Tom