Прогресс обновления прошивки показывает 0% до самого конца
uint32_t written = 37000; /* записано байт */
uint32_t total = 51200; /* размер образа */
uint8_t percent = written / total * 100;
На экране всё время 0%, а в самом конце — сразу 100%. Как исправить расчёт?
- Сначала умножить на 100, потом делить на total
- Объявить percent как uint32_t вместо uint8_t
- Добавить к результату 0.5 для округления
- Заменить деление сдвигом вправо на 16 бит
