Вобще unsugned long int from 0 to 4294967295. Число F_CPU * TCNT1 / (TCNT0 + 256 * t0) не такое уж и большое получается, явно укладывается в эти пределы. Только вот числитель великоват, по хоже мк считает сначала числитель и офигевает, а потом уже делит. Пробовал сделать TCNT1 / (TCNT0 + 256 * t0) float или double (кстати в чём различие?), а затем умножить на F_CPU
- Код:
unsigned long int frequ = 123456789;
float freq;
.............
freq = TCNT1 / (TCNT0 + 256 * t0);
frequ = freq * F_CPU;
получаются всегда нули непонятно почему
. Да, ещё одна проблема когда частота слишком большая цифры низких порядков из-за неточности измерения начинают бешено бегать, как бы это исправить думаю, куда бы влепить задержку?