ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
450737 Топик полностью
zeleny (04.10.2013 16:26, просмотров: 71) ответил sierra на Есть ли в среде IAR функции перевода из десятичного числа в строку и наоборот?
вывод в буфер LCD: //32-bit division with remainder u8 divmod10_rem; u32 divmod10(u32 n) { u32 quot = n >> 1; quot += quot >> 1; quot += quot >> 4; quot += quot >> 8; quot += quot >> 16; u32 qq = quot & ~7ul; quot >>= 3; divmod10_rem = n - ((quot << 1) + qq); if (divmod10_rem > 9) { divmod10_rem -= 10; quot++; } return quot; } //convert binary 0..15 to HEX char u8 lcd_b2h(u8 b) { return (b <= 9) ? (b + '0') : (b + 'A' - 10); } //write 32-bit signed decimal n to buffer pos, width w, and point position p void lcd_wr_s32(u8 pos, s32 n, u8 w, u8 p) { u8 dp = 0; u8 s = 0; if (n < 0) { n = -n; s = 1; } if (p) w--; while (w--) { if (p && (p == dp)) lcd_buf[pos--] = '.'; u8 nz = (n != 0); n = divmod10(n); if ((dp == 0)||nz) lcd_buf[pos] = lcd_b2h(divmod10_rem); else { if (s) { lcd_buf[pos] = '-'; s = 0; } else lcd_buf[pos] = ' '; } pos--; dp++; } }