~ruther/qmk_firmware

94b4fba6e6afa6d7d68051a1ceb6987bb6002ccd — tmk 12 years ago 83f0e80
Add bitpop16() in util.c.
2 files changed, 11 insertions(+), 2 deletions(-)

M common/util.c
M common/util.h
M common/util.c => common/util.c +9 -1
@@ 22,7 22,7 @@ uint8_t bitpop(uint8_t bits)
{
    uint8_t c;
    for (c = 0; bits; c++)
        bits &= bits -1;
        bits &= bits - 1;
    return c;
/*
    const uint8_t bit_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };


@@ 30,6 30,14 @@ uint8_t bitpop(uint8_t bits)
*/
}

uint8_t bitpop16(uint16_t bits)
{
    uint8_t c;
    for (c = 0; bits; c++)
        bits &= bits - 1;
    return c;
}

// most significant on-bit - return highest location of on-bit
uint8_t biton(uint8_t bits)
{

M common/util.h => common/util.h +2 -1
@@ 16,7 16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef UTIL_H
#define UTIL_H 1
#define UTIL_H

#include <stdint.h>



@@ 29,6 29,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.


uint8_t bitpop(uint8_t bits);
uint8_t bitpop16(uint16_t bits);
uint8_t biton(uint8_t bits);

#endif