Gast
#237332
Hi, ich suche die C-Befehle für schieben und rollen. in asm ist nach links schieben ja glaub ich LSL oder? gibts dafür auchn befehl in C? THX
|
Anzeige
|
C Befehle für schieben und rollen
Gast
#237332
Hi, ich suche die C-Befehle für schieben und rollen. in asm ist nach links schieben ja glaub ich LSL oder? gibts dafür auchn befehl in C? THX << und >> schieben. Rollen gibt's nicht wirklich. Je nach Intelligenz des Compilers kann er eine Verschiebung a la foo = ((bar & 0x80) >> 7) | (bar << 1); erkennen und sehen, dass dafür ein rotate taugen würde. Ansonsten kann man in zeitkritischem Code eventuell an inline asm dafür denken.
Gast
#237334
ja und wie schaut das dann aus wenn ich an PortC an Pin0 0b00010000 hinausschieben möchte? thx
Gast
#237335
@Ladi: Such mal im Forum nach "Software SPI"
Gast
#237336
kann mir da keiner ein code beispiel geben? please @Andreas W.: hast du den link für dieses forum?
Gast
#237337
http://www.mikrocontroller.net/forum/read-1-109099.html#109191
Gast
#237338
thx Andreas W.
Gast
#237339
Die Loop kann noch etwas vereinfacht werden, da links shiften für unsigned char von links mit nullen auffüllt kann man die Ausgabeschleife auch wie folgt schreiben:
mfg Oliver
Gast
#237340
Hi kann mir einer erklären für was die MASK sein soll? thx mark
Gast
#237341
Mit der Maske wird immer nur ein Bit eingeblendet (0x80 = 0b100000). In der for-Schleife wird das Bit der Maske über Dein Datenbyte geschoben und geguckt, was bei einer UND-Verknüpfung rauskommt. Rick
Gast
#237342
und für was ist mask>>=1? Mark
Gast
#237343
mask einmal nach >> rechts schieben. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|