-
01.06.2006, 18:12 #16
- Регистрация
- 29.01.2006
- Адрес
- Тамбов, Россия
- Возраст
- 69
- Сообщений
- 87
- Поблагодарили
- 13
- Поблагодарил
- 1
Да, Си это неплохо. Я все хочу заняться этим языком. Не сказать, что я его совсем не знаю, один проект даже делал на нем, но это был небольшой проект на АТ89С2051. А начал писать синтезатор на С - написал процентов 70 и память кончилась. Плюнул, переписал все на АСМе - еще и куча места осталась.
Хотя конечно, зачастую важнее очень быстро выполнить заказ и не так важно какой будет кристалл.Александр Денисов - http://www.r3r.ru
-
01.06.2006, 18:43 #17
- Регистрация
- 15.07.2004
- Адрес
- Харьков
- Сообщений
- 89
- Поблагодарили
- 0
- Поблагодарил
- 0
Ну, 2 кб памяти - это действительно маловато для Си.
В общем, моё мнение по этому поводу таково: пока есть место на флеше и устраивает скорость работы - лучше использовать Си. В конце концов, критичные к времени выполнения куски кода могут быть выполнены на асме.У кошки четыре ноги: вход, выход, земля и питание.
73! UR3LTG.
-
02.06.2006, 20:49 #18
- Регистрация
- 25.09.2003
- Адрес
- Москва
- Сообщений
- 69
- Поблагодарили
- 16
- Поблагодарил
- 5
Уважаемый RA3RBE.
Спасибо за ликбез.
Делюсь своим опытом.
Там все просто как 3 рубля.
На самом деле там не 2 байта, а 3. Хотя может быть и больше, просто мне для времени измерения 0.1 сек хватило и 3-х..
В фирменной документации на среднее семейство ПИКов я не увидел в составе TMR0
третьего байта.А ведь именно об Этом шла речь в приведеной Вами цитате.
3-х байтный TMR0 есть в ПИКах семейства 18ХХХх.
Частотомер предназначен для работы с графическим LCD индикатором.Поэтому,
отображать измереную частоту можно после окончания процесса измерения,
т.к это занимает очень мало времени и регенерировать информацию во время
счета просто нет смысла. Процесс измерения длится 1 сек. В работе счетчика
входных импульсов участвуют 4 (ЧЕТЫРЕ) регистра: прескалер + TMR0 + TimerH + TimerVH.
Процесс счета - "классический". Т.е. постоянный контроль за состоянием бита переполнения
TMR0, с последующей коррекцией и контролем переполнения TimerH и TimerVH.
После завершения счета,анализ состояния прескалера путем его досчета и последующей
нужной или ненужной коррекцией следующих за ним TMR0 + TimerH + TimerVH.
Все так как Вы расписали.
В процессе формирования времени счета участвует TMR1.Время счета 1 сек., железно.
Опорная Частота с термостатированого генератора 20 мГц.
Здесь вопросов нет. Вопросов нет и тогда, когда время подсчета импульсов составляет 0,1 сек.
или менее.
Программа следит за переполнением таймера и эти переполнения суммирует в третьем байте.
единицу если 3-й байт переполняется.
И переполнение это может происходить максимум 2 раза, на максимальных частотах.
..А утверждение, что корректное измерение частоты на пределе 1 сек невозможно, мягко говоря не соответствует действительности
и вызывает улыбку.
Так ВЫ все таки пробовали на практике, или нет? У Вас кажется Тизм=0,1 сек.
Я же специально попытался заострить внимание на проблеме времени счета в 1 сек.
Проблеме по крайней мере у меня.
Кто нибудь делал, пробовал? Наверняка и делал и пробовал. А с показаниями образцового
частотомера сравнивал?
И что получилось? Нормально получилось?
Предвижу очередной совет:-"Откалибруй образцовый частотомер".
И еще. Согласно фирменной документации на ПИКи, приращение значения TMR0 от прескалера
постоянно синхронизируется с внутренной тактовой частотой ПИКа. Нет ли здесь засады?
Конечно при коэффициенте деления прескалера = 256 и достаточно высокой частоте такта,
возможность пропуска подсчитываемого счетчиком TMR0 импульса мала, но
мне кажется не невозможна. Особенно на высоких частотах.
Скажите мне что Это не так!
Тем не менее Всем спасибо! Александр. RU3ANH 73!
Социальные закладки