Hallo Jungs brauche mal wieder euere Hilfe und zwar zu folgenden Problem: An den pins D1 D2 D3 D4 eines Atmega8 liegt z.b die Binäre information 1001 . Ich frage nun die 4 pin nacheinander ab und habe dann 4 bits Variabeln zb. var1 var2 var3 var4. Wie kann ich nun die 4 Variabeln zusammenfügen , daß der inhalt 1001 ergibt. wäre sehr nett wenn jemand mir helfen kann oder eine andre Methode vorschlägt PS: Ich schreibe in C MfG
marco schrieb: > Ich frage nun die 4 pin nacheinander ab und habe dann 4 bits Variabeln > zb. var1 var2 var3 var4. Warum nicht den ganzen Port einlesen ? Dann hast Du Dein Byte. Die überzähligen einfach verUNDen.
Oups...
1 | unsigned char myValue; |
2 | myValue = (PIND >> 1) & 0x0F; |
marco schrieb: > Wie kann ich nun die 4 Variabeln zusammenfügen , daß der inhalt 1001 > ergibt. Wobei die Reihenfolge nicht ganz unwichtig ist. Wenn dein Wort z.B. so aussieht: >> An den pins D1 D2 D3 D4 eines Atmega8 liegt die Binäre information 1100 Dann ist blöderweise die Bitreihenfolge vertauscht, am Port liegt dann nämlich der Wert xxx0011x an, und das ist (eigentlich) die falsche Reihenfolge... :-o Gewöhn dir besser an, die Bits immer absteigend zu nummerieren, denn so ist auch die Wertigkeit in einem binären Wort: das MSB ist links, das LSB rechts...
Hi Jungs Danke für die Hilfe, nun kommt das nächste Problem. #Ich möchte aus PIND6 ,PIND7, PINB0 und PINB1 wieder eine 4 bit variale machen.wobei PIND6 das niedrigste bit ist. Beispiel PINB1--> 1 PINB0 --> 1 PIND7--> 0 PIND6--> 1 Wert= 1101 kann mir jemnad kurz eine Zeile schreiben wie das geht.Ich habe es allein leider nicht hingekriegt Danke im Voraus
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Vorne anfangen. Und dazu das hier: Lothar Miller schrieb: > Bitmanipulation ist das, was du brauchst... Da musst du durch. Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.