Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Если срабатывания носят кратковременных характер, можно применить для входов цифровую фильтрацию. Я всегда для дискретных входов промышленных контроллеров ее делаю:

Отправлено Леонид Иванович (87.252.227.56) 15 декабря 2010, г. 17:25
В ответ на: кардинально не помогает, уже пробовали отправлено Shuuura 15 декабря 2010, г. 16:55


//------------------ Фильтрация сигналов цифрового ввода: --------------------

void Exe_Dio(void)
{
if(fInp)
{
fInp = 0; //сброс флага опроса
if(!Port_IN1) In_Cnt[0]++; //обновление счетчиков
if(!Port_IN2) In_Cnt[1]++;
if(!Port_IN3) In_Cnt[2]++;
if(!Port_IN4) In_Cnt[3]++;
if(!--Smp_Cnt) //если сделаны все выборки
{
Smp_Cnt = SAMPLES; //перезагрузка счетчика выборок
if(In_Cnt[0] > IN_THRS1) In_State |= 1;
if(In_Cnt[0] < IN_THRS0) In_State &= ~1;
if(In_Cnt[1] > IN_THRS1) In_State |= 2;
if(In_Cnt[1] < IN_THRS0) In_State &= ~2;
if(In_Cnt[2] > IN_THRS1) In_State |= 4;
if(In_Cnt[2] < IN_THRS0) In_State &= ~4;
if(In_Cnt[3] > IN_THRS1) In_State |= 8;
if(In_Cnt[3] < IN_THRS0) In_State &= ~8;
In_Cnt[0] = 0; //очистка счетчиков фильтра
In_Cnt[1] = 0;
In_Cnt[2] = 0;
In_Cnt[3] = 0;
}
}
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 90:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru