
Byte Variables:
   edge_value    <-- has computed pulses to count
   carry_value   <-- holds the carry values from bit to bit
   bit0_value    <-- holds bit 0 of 8 counters (LSB)
   bit1_value    <-- holds bit 1 of counters
   bit2_value    <-- holds bit 2 of counters
   bit3_value    <-- holds bit 3 of counters
   bit4_value    <-- bolds bit 4 of counters (MSB)

Count Logic:
   carry_value <-- edge_value AND bit0_value
   bit0_value <-- edge_value XOR bit0_value

   edge_value <-- carry_value
   carry_value <-- edge_value AND bit1_value
   bit1_value <-- edge_value XOR bit1_value

   edge_value <-- carry_value
   carry_value <-- edge_value AND bit2_value
   bit2_value <-- edge_value XOR bit2_value

   edge_value <-- carry_value
   carry_value <-- edge_value AND bit3_value
   bit3_value <-- edge_value XOR bit3_value

   edge_value <-- carry_value
   carry_value <-- edge_value AND bit4_value
   bit4_value <-- edge_value XOR bit4_value
