countOnes.c - Counts the number of 1 bits in u16_vΒΆ

#include "pic24_all.h"
#include <stdio.h>

uint8_t countOnes (uint16_t u16_v) {
  uint8_t u8_cnt, u8_i;

  u8_cnt = 0;
  for (u8_i=0; u8_i<16; u8_i++) {
    if (u16_v & 0x0001) u8_cnt++;
    u16_v = u16_v >> 1;
  }
  return(u8_cnt);
}


int main (void) {

  uint16_t u16_k;
  uint8_t  u8_j;

  u16_k = 0xA501;
  u8_j = countOnes(u16_k);
  printf (
    "Number of one bits in %x is %d\n",
    u16_k, u8_j);
  while (1);
}