[an error occurred while processing this directive]
|
Если системный тик взять >= 2Fmax (в Вашем случае >= 2кГц).
например для AVR:
//Входы импульсных каналов заведены на порт А
char CurrSt; //текущее состояние порта А
char PrevSt; //предыдущее состояние порта А
unsigned int Counter[8], *pC;
// в прерывании обработки системного тика:
//подсчет импульсов по спадающему фронту
CurrSt=PINA;
pC=Counter;
for(i=0 , j=1; i<=7; i++)
{if((PrevSt & j)&& !(CurrSt & j)) *(pC++)++;
j=j<<1;
}
PrevSt=CurrSt;
E-mail: info@telesys.ru