Area : Встроенные системы Date : Fri Feb 27, 09:54 From : Sergey P Kozlov 2:5007/1.12 To : Yuri Kulackoff Subj : вопрос новичка.... ──────────────────────────────────────────────────────────────────────────────── Hello Yuri! 26 Feb 98 20:31:46, Yuri Kulackoff wrote to All : YK> Подскажите идею, как опpеделять частоту следования импульсов, если очень YK> большой пеpиод следования - напpимеp максимально 5 имп/секунду. Я YK> пpедставляю, что нужно кpутить цикл, скажем, пpи тактовой частоте PIC 10 YK> Кгц, "от пеpвого и до втоpого импульса", а затем, пpоинвеpтиpовать YK> полученное значение и поделить его на 2500? Могу предложить такой алгоритм: * считаем одновременно Время и ЧислоИпульсов до некоторых величин МахЧислоИмпульсов и МаксВремя * if(ЧислоИмпульсов >= МахЧислоИмпульсов || Время >= МаксВремя) { F = ЧислоИмпульсов/Время; ЧислоИмпульсов = 0; Время = 0; } Получается, что мы как-бы считаем для медленных импульсов период, а для быстрых - частоту. Достоинство - выше точность при той же дискретности отсчета времени и шире диапазон измерения. Если считать просто время между импульсами (измерение периода), то точность при увеличении частоты сильно падает (подсчитывается слишком малая величина для времени). Если же считать число импульсов за промежуток времени (измерение частоты), то при медленных импульсах точность получается никакая. У меня был такой счет в таймерном прерывании, которое нельзя было ускорить. Sergey --- FIPS/32 v0.98 W95/NT [M] * Origin: -Midnight Engineering-ks<*>dialup.comlink.khakassia.ru (2:5007/1.12)