//// ПРОГРАММНЫЙ АНАЛОГ RC ФИЛЬТРА
// Два варианта:
// с целыми значениями (быстрее)
// с действительными значениями (Понятнее)
#define INT_KOEFF 16
#define FLOAT_KOEFF 20.0
int int_RC; // В INT_KOEFF большее от read_adc значения
float float_RC;
void calc_RC (void)
{
int tmp;
tmp = read_adc(ADC_IN);
float_RC += (tmp - float_RC) / FLOAT_KOEFF;
int_RC += tmp - (int_RC >> 4); // Деление на 16 сдвигом
}