В моей программе я принимаю поток данных от АЦП и складываю в буфер длинной N, как только буфер заполняется, программа должна делать математическую обработку данных над числами в буфере и складывать результат в другой бефер, и так по кругу, заполняются два буфера по кругу и производятся вычисления.
Вопрос: как наиболее красиво реализовать механизм "сигнализации" о том что буфер заполнен и пора производить вычисления?
сейчас я использую глобальные переменные и конктрукции типа
принимаем данные от АЦП:
CODE
Buf[i] = ADC_receive_data(); //принимаем данные
if(i == N)
{
i = 0;
j = READY;
}
обработчик, опрашивающий переменную j и вызывающий соответствующую функцию:
CODE
while(1)
{
if( j == READY)
{
Data_processing();
}
}
с ростом сложности программы, глобальных переменных становится больше и код трудно читаем. Когда нужно рассчитывать десяток параметров на разных временных интервалах встаёт вопрос об упрощении структуры и читаемости программного кода. Десяток опрашиваемых глобальных переменных - это не очень красиво.
как сделать проще/удобнее/красивее ?