Блин, показалось сперва что бабка ведет кота голову отрубить. Первое впечатление такое. надпись не читаемая. Потом выяснилось ,что это рисунки некоего Васи Ложкина. Попадались раньше,но не знал.
Проблемы "быстрых и качественных воспоминаний" больше касаются именно любителей с загрузкой от 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 ) Было бы меньше секунды,это бы неизбежно съело бы младшие разряды. несмотря на любые хитроумные алгоритмы. Я прав ?
Стандартное решение для частотомера. Может быть и кратно секунде - но с последующим пересчетом и соответствующей некоторой потерей точности младших разрядов. Интервал короче - "грубость" наростает - теряются герцы, десятки герц, сотни, затем килогерцы, десятки килогерц и так далее (при "укорочении").
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения