If you really need to use unsigned char
then you can use
unsigned char i = 0;
do {
// ...
} while(++i);
When an arithmetic operation on an unsigned
integer breaks its limits, the behaviour is well defined. So this solution will process 256 values (for 8-bit unsigned char
).