forked from mirrors/qmk_userspace
		
	Add bitpop16() in util.c.
This commit is contained in:
		
					parent
					
						
							
								83f0e800e5
							
						
					
				
			
			
				commit
				
					
						94b4fba6e6
					
				
			
		
					 2 changed files with 11 additions and 2 deletions
				
			
		| 
						 | 
					@ -22,7 +22,7 @@ uint8_t bitpop(uint8_t bits)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    uint8_t c;
 | 
					    uint8_t c;
 | 
				
			||||||
    for (c = 0; bits; c++)
 | 
					    for (c = 0; bits; c++)
 | 
				
			||||||
        bits &= bits -1;
 | 
					        bits &= bits - 1;
 | 
				
			||||||
    return c;
 | 
					    return c;
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
    const uint8_t bit_count[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
 | 
					    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
 | 
					// most significant on-bit - return highest location of on-bit
 | 
				
			||||||
uint8_t biton(uint8_t bits)
 | 
					uint8_t biton(uint8_t bits)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef UTIL_H
 | 
					#ifndef UTIL_H
 | 
				
			||||||
#define UTIL_H 1
 | 
					#define UTIL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.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 bitpop(uint8_t bits);
 | 
				
			||||||
 | 
					uint8_t bitpop16(uint16_t bits);
 | 
				
			||||||
uint8_t biton(uint8_t bits);
 | 
					uint8_t biton(uint8_t bits);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue