Цитата(Ruffian @ Apr 2 2011, 01:49)

К сожалению, не удается. Даже период.
Странно, там же нет ничего сложного:
Код
static u16 long_time;
u32 impulse_len;
void ic_init(void)
{
TCCR1A = 0;
TCCR1B |= _BV(ICNC1) | _BV(CS10) | _BV(ICES1);;
TIMSK |= _BV(TICIE1) | _BV(TOIE1);
TIFR = _BV(ICF1) | _BV(TOV1);
}
SIGNAL(SIG_OVERFLOW1)
{
long_time++;
}
SIGNAL(SIG_INPUT_CAPTURE1)
{
static u32 prev_ticks = 0;
u16 icr = ICR1;
u32 ticks;
LoWord(ticks) = icr;
HiWord(ticks) = long_time;
if ((ticks < prev_ticks) && HiWord(ticks))
HiWord(ticks)++;
impulse_len = ticks - prev_ticks;
prev_ticks = ticks;
}
Если бы я знал, что такое электричество...