MCPcopy Create free account
hub / github.com/Arduino-IRremote/Arduino-IRremote / bitreverseOneByte

Function bitreverseOneByte

src/IRProtocol.hpp:170–181  ·  view source on GitHub ↗

@} * \addtogroup Utils Utility functions * @{ */ * Function to bit reverse OLD MSB values of e.g. NEC. **********************************************************************************************************************/

Source from the content-addressed store, hash-verified

168 * Function to bit reverse OLD MSB values of e.g. NEC.
169 **********************************************************************************************************************/
170uint8_t bitreverseOneByte(uint8_t aValue) {
171// uint8_t tReversedValue;
172// return __builtin_avr_insert_bits(0x01234567, aValue, tReversedValue);
173// 76543210
174 aValue = (aValue >> 4) | (aValue << 4); // Swap in groups of 4
175// 32107654
176 aValue = ((aValue & 0xcc) >> 2) | ((aValue & 0x33) << 2); // Swap in groups of 2
177// 10325476
178 aValue = ((aValue & 0xaa) >> 1) | ((aValue & 0x55) << 1); // Swap bit pairs
179// 01234567
180 return aValue;
181}
182
183uint32_t bitreverse32Bit(uint32_t aInput) {
184// __builtin_avr_insert_bits();

Callers 1

bitreverse32BitFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected