Цикл заполнения буфера из 300 элементов никогда не заканчивается
uint16_t samples[300];
for (uint8_t i = 0; i < 300; i++) {
samples[i] = adc_read();
}
Устройство зависает на этом цикле, а данные в samples[256] и дальше не записываются. Почему?
- uint8_t не достигает 300 и после 255 станет 0
- Массив из 300 элементов не помещается в стек
- adc_read() блокируется после 255 вызовов
- Индекс массива обязан иметь тип size_t
