у меня так не получается uint8_t kol=edit_value.length; // 3
uint16_t result=0;
for(;kol--;result += *cbuf++ -'0')result*=10;
1-й раз
=======
3!=0 (условие выполняется), kol=2
result==10 (+1 и *10)
2-й раз
=======
2!=0 (условие выполняется), kol=1
result==150 (+5 и *10)
3-й раз
=======
1!=0 (условие выполняется), kol=0
result==1530 (+3 и *10)
4-й раз
=======
0==0 (условие не выполняется)