Блин, показалось сперва что бабка ведет кота голову отрубить. Первое впечатление такое. надпись не читаемая. Потом выяснилось ,что это рисунки некоего Васи Ложкина. Попадались раньше,но не знал.
Проблемы "быстрых и качественных воспоминаний" больше касаются именно любителей с загрузкой от 1 проекта в месяц и менее. Для того, кто работает с загрузкой от одного реального проекта в неделю(или более того) проблем заметно меньше будет. Тем более - ежли это повседневная работа - там автоматически все в голове откладывается. Посему и вводим "добровольные рамочные ограничения" (плюс конспекты "с отметками на полях") - чтоб хоть иметь возможность прочитать свой же проект годичной давности. Тем более, что заметки у каждого свои будут - зависит от многих факторов. Не морочился с прожками пару недель и уже некоторое напряжение - приходится в конспекты лезть...
золотые слова! всегда сам придерживаюсь подобного подхода и неустанно другим рекомендую при любом удобном случае, за что не раз был обруган апологетами "гибкого и мощного Си". чтобы не выстрелить себе в ногу достаточно не пользоваться заряженным пистолетом, даже если он есть в наличии
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Это ЯВУ, а не ассемблер. Компилятор сам решает как заданную задачу в прикладной код превратить. В том числе и как сделать планировку ресурсов МК, включая стек, начальные процедуры подготовки данных и прочие "стандартные мелочи". Так что привыкайте.
начинать надо с кнопок-лампочек да управления машинками на проводках в детстве. Ежли касаться реально - изучение любого ЯВУ (или ассемблера) без прикладных задачек довольно тяжкое дело. Второй пунктик - понимание ключа (сути) того, что изучаеш. А это опять же зависит от начальных условий у каждого - что ранее известно было, с чем ближе по уровню начальных знаний приходилось заниматься. Да и поставленная цель - любитель или профи также значение имеет. Кто-то и с книг вычитать САМОСТОЯТЕЛЬНО может, а кому без специальных занятий в ВУЗЕ нишыша не влазит... Да и уровень текущей потребности роль играет - пока не тербуются те средства, что ЯВУ предоставляет - особо и понимания(восприятия) их реализации на должном уровне не будет. Вобщемс... У КАЖДОГО СВОЙ КЛЮЧИК после получения которого дело резко ускоряется. Но найти оный - только самостоятельно можно, иногда после достаточно долгого перечитывания разнообразных материалов.
Да прям,там. Все у нас получится. хвiст выше только держать. https://forum.ixbt.com/topic.cgi?id=48:63 Интересная тема. кстати че за язык там кусок программы приводится в начале страницы?
МК семейства mcs51 кусочек кода на ассемблере. Собственно попытка взлома заблокированного кода там часто сложнее, чем написание своей программы под устройство.
https://ra4nal.ontvtime.ru/acrobat/ch2.pdf Как это реализовано на MSC51 что он считает до 100мГц. с точностью до герца,по какому алгоритму? Я изготовил это себе много лет назад,радуюсь и каждый раз удивляюсь.Этого не может быть по классической схеме. Потому что 1830ве31 не работает с частотами 100мГц. До 20,еще кое как.Какой то хитроумный алгоритм автор применил.Входной делитель стоит,но как тогда он меряет с точностью до герца ??
Ёжли весьма грубо по памяти... Предделитель на 1024... Базовая входная частота для "стандартного" Т0/Т1 в режиме счета равна Fкварца/24 (при 12 МГц кварце это 500 КГц). Итогом при кварце в 12 МГц и предделителе на 1024 в принципе 500*1024=512 МГц... Тут же даже при 6,144 МГц - 6,144/24*1024=262,144... Так что вполне себе работоспособный агрегат. Ну и подсчет можно количество импульсов за промежуток времени - стандартно для частотомера (импульсы в Т1 за секунду или кратное время) или периодомер - калиброванные импульсы подаем на счетный вход, а проверяемый сигнал формирует окно измерения. Скорее всего низкая частота меряется именно в режиме периодомера - базовая опорная от тактового генератора идет на счетный регистр, а роль "клапана" играет измеряемый интервал на входе INT0/INT1 (таймер в режиме 1, управление на выводе INTn, контроль битами GATEn и TRn). Так что ничего сверхъестественного...
Я так и подозревал,что то навроде периодомера. А вот по погрешности это будет уступать классическим восьми десятичным счетчикам с остановкой счета через секунду? Мне кажется там программная интерпретация,апроксимация идет. Вопрос философский. получается за меньшее время можно добиться такой же точности.. пока в голове не укладывается. з.ы. кстати в яндекс-картинках первые картинки по запросу частотомер на ВЕ31 мои. В пульте от РС "пальма"
Точность будет определяться формирователем измерительного окна (частотомер) или тактовыми импульсами (периодомер). Дополнительно определение фронтов импульсов и интервала задержки на входных портах. В принципе - не сильно то и отличается от "набора на рассыпухе"... Для гурманов есть еще 8253/8254 (КР580ВИ53/КР1810ВИ54) - те даже сразу в двоично-десятичном формате считать могут (если понадобится), да внешний строб и тактовый входа имеют да три канала двухбайтовых счетчиков... У них входная частота минимум от 2,5 МГц (а может достигать и более - 10-12 МГц - смотрим конкретные даташитки).
Мне кажется там программная интерпретация,апроксимация идет.
там скорее всего считывается значение пределителя на DD6 DD7 - нога 10 DD1 запрещает внешний счет, нога 11 DD1 подает "свои" импульсы для подсчета. Этот принцип применяется в частотомерах на PICах, подробнее почитать например: https://radiostorage.net/3665-prostoj-i ... 50mhz.html
Мне чего-то показалось что там часть УАРТа задействована... Как генератор интервалов... Оттого и "дробленка" (стандартно кварц кратный 12 для старых mcs51 ставится) а тут в схеме "хвостатый"... Вариантов там весьма много...
Важной особенностью частотомера является то, что в нем можно использовать кварцевый резонатор на любую, самую "экзотическую" частоту в диапазоне 5...12 МГц. Оптимальным, на мой взгляд, является значение 6...8 МГц. Длительность интервала измерения определяется двумя константами - К1 и К2. Программа построена таким образом, что допускает многократную коррекцию этих значений.
из исходника:
Код:
PER2: CLR P3.1 ; импульс на вход внешн. счетчика SETB P3.1 ; / DJNZ TMP1,PER1 DEC FRQ2I ; ст. байт внешн. счетчика NOP ; дополнение до четного кол-ва циклов
У mcs51 счет можно напрямую от тактовой подавать (Fкварца/12)... Для режима измерителя длительности я б сунул измеряемый интервал на INTn, а контрольные импульсы взял от ГТИ... Но... то уж кому чего удобнее...
Все же ключевая фраза,что время измерения 100мГц на 8 разрядов одна секунда. И это несмотря на предделитель ( мне кажется он на 256 а не на 1024. 8х8х2х2 ) Было бы меньше секунды,это бы неизбежно съело бы младшие разряды. несмотря на любые хитроумные алгоритмы. Я прав ?
Стандартное решение для частотомера. Может быть и кратно секунде - но с последующим пересчетом и соответствующей некоторой потерей точности младших разрядов. Интервал короче - "грубость" наростает - теряются герцы, десятки герц, сотни, затем килогерцы, десятки килогерц и так далее (при "укорочении").
Сейчас этот форум просматривают: maxlab и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения