Gast
#2905608
Guten morgen, ich lese einen Konfigurationsschalter (DIP Schalter 4 polig) in meinen Atmega88 ein. Der Schalter hängt an Port C und zwar genauer gesagt an PC0 bis PC3. Nun ist mir ein kleiner Lapsus unterlaufen. Eigentlich sollte Schalter 1 an PC0, Schalter 2 an PC1, usw. Leider ist mir beim routen der Leiterplatte passiert, dass der DIP Schalter 180° gedreht ist, d.h. Schalter 4 hängt nun an PC0, Schlter 3 an PC1, etc. Klar man kann diesen gedreht einlöten, aber dann stünde er im eingebauten Zustand auf dem Kopf --> unschön. Wenn ich jetzt den Schalter einlese erhalte ich statt 1 den Wert 15, statt 2 den Wert 8 usw. Gibt es eine geschickte Möglichkeit das in der Software zu korrigieren? Mir fällt nur ein, das ganze zwischen zu speichern, jedes Bit einzeln zu maskieren (also 4x) und entsprechend seiner Stelle links zu schieben (um es an die richtige Stelle zu rücken) und dann in der eigentlichen Variable zu verodern. Das wäre dann im Prinzip 4x maskieren, 4x schieben und 4x verodern. Geht das irgendwie "trickreicher". Besten Dank. VG Sven