+133
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
void DUR_check()
{
DUR_tick[DUR_link]=DUR_tmp_tick;
DUR_tmp_tick=0;
DUR_link++;
if(DUR_link > 9) DUR_link=0;
S32 tmp3 = DUR_tick[0] + DUR_tick[1] + DUR_tick[2] + DUR_tick[3] + DUR_tick[4] + DUR_tick[5] + DUR_tick[6] + DUR_tick[7] + DUR_tick[8] + DUR_tick[9];
//tmp3=((tmp3-HZ_MIN)*100)/(HZ_MAX-HZ_MIN);
tmp3=(tmp3/10)-50;
if(tmp3<0)tmp3=0;
if(tmp3>100)tmp3=100;
DUR_level=tmp3;
}
Первый блин, возможно комом.
Один из проектов, который был передан мне.
Это расчет процента заполнения ёмкости по частотному датчику.
DUR_tmp_tick - количество прерываний от датчика,
DUR_level - это и есть рассчитанные проценты.
Все переменные глобальные, фильтр организован.
Вызывается функция в другом прерывании, от таймера.
Впрочем, всё остальное тоже вызывается в прерывании от таймера.
Запостил: apparato,
17 Апреля 2013
mas_an 17.04.2013 17:24 # +2
LispGovno 17.04.2013 22:31 # −2
absolut 18.04.2013 15:02 # +5