Цитата(AlexTech @ Dec 27 2005, 11:31)

Енто выходы с тахометра кулера

т.е. частота до 10khz?
тогда цепляем сигналы от тахометра на любой порт, например на первых четыре пина порта B. и далее циклически считываем значение порта. при переходе из 1 в 0 инкрементируем счетчик. Из обработчика какого-нибудь прерывания отправляем показания со счетчиков куда требуется..
Код
long CNT[4];
char masks[4] = {1, 2, 4, 8};
void do_count(void)
{
static char olddata;
char c;
int i;
for(;;)
{
c = PINB;
for (i=0; i<4; i++)
{
if (!(masks[i] & c) && (masks[i] & olddata))
CNT[i]++;
}
olddata = c;
}
}
Сообщение отредактировал defunct - Dec 27 2005, 10:08