du solltest das % einsparen, es braucht extrem viel rechenzeit. evtl läuft dabei der speicher im µC über.

ausserdem willsz du in einem unsigned char die tausenderstelle speichern, aber ein char geht nur bis 255.