Вот какая проблема, у меня есть МК МЕГА8535, мне необходимо получить на любом выводе частоту 1кГц с точностью не более 0,02Гц. Так вот я работаю на кварце 11,0592МГц ( необходимо для USART). и максимум что я могу получить это 999,98мкс на прерывании ТС1, что в принципе дает как раз на пределе 1000,02Гц. Но мне нужен какой нить запас. Что делать ведь если я увеличу время работы ТС1 на "1", то погрешность будет еще больше, так как одна операция при частоте кварца 1/11,0592=0,09мкс.
Дело в том, ято уже есть рабочий экспонат, только прошивку один обиженный товарищь решил забрать, и испортить на рабочем изделии, поэтому у меня в железе выбора нет, только в этих параметрах, и вот там показания получаются примерно 999,99ХХ, что попадает в район ±0,02Гц погрешности, поэтому я и не могу понять как это сделать, у меня не точнее ±0,02ХХ, а эти ХХ меня выбрасывают за пределы дозволенного...
И тут в догонку еще одна проблема, вроде бы использую ТС для точных временных задержек, но если прерывание происходит на операции типа проверки перехода (TEST & SKIP), то временной интервал уже не соответствует расчетному, как можно компенсировать этот дефект???
если я увеличу время работы ТС1 на "1", то погрешность будет еще больше
Пробуйте уменшать отсчеты таймера и компенсировать их вставклй в обработчик прерывания АСМ инструкций NOP - это может помочь, пример подгоники в задаче 6 под кнопкой "www".
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
У меня предделитель на ТС стоит =1,тоесть каждый такт, это +1 в ТС, поэтому экспериметы с nop-ами приводят к такому-же результату, что и увеличение на времени до срабатывания прерывания на ТС
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения