ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
2 апреля
1508762 Топик полностью
Cкpипaчпророк (28.03.2025 14:24, просмотров: 109) ответил PeterD на Ребята доброй пятницы всем, АЦП отдает данные 18 бит, 18-ый бит знаковый можно как-то быстро привести его к виду int32_t или надо все биты старшие в ручную 18 битом заполнять, ARM Cortex-M23.
if(adc_val & 0x2000) adc_val |= (0xffffffff - 0x3ffff); 

Только вместо "магических чисел" макросы.

На мой взгляд, писать нужно прямо, что нужно делать, не используя побочные эффекты.

Компилятор разберётся, а самому может, через какое-то время, оказаться неожиданно непонятным.

... но не любой ценой.