А зачем умножеие - деление, если достаточно нескольких ступеней вычитания/сложения с константами? А в накопитель сразу двоично-десятичные тетрады укладываются отдельно для 10000, 1000, 100 и табличный преобразователь остатка (10ки и 1цы)..
Я не программист, это взято из журнала Радио. Я подкорректировал только делитель. Теперь при 100Гц показывает ровно 6000. Если можете пожалуйста поправьте asm. Помогите такому же пенсионеру.
Вложения:
Комментарий к файлу: Схема может пригодиться. Схема тахометра.jpg [79.62 KiB]
Скачиваний: 146
Более неудобного варианта схемы (относительно примененного индикатора) найти трудно... Тут проще(быстрее) не править, а заново написать или к автору конструкции обратиться. Что она хоть мерить должна? В смысле диапазона значений и их наименований (герцы, обороты в минуту или еще чего)?
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Тахометр измеряет обороты в минуту. Он собран и работает. Мне надо добавить пятый разряд десятков тысяч. Сейчас измеряет от 30 до 9999 оборотов, далее просто не видно десятки тысяч.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Если знаете, в каком номере журнала "Радио" опубликована оригинальная статья? Каковы максимальные обороты реальной машины? На самом деле проще написать новый код (на C). И у этих дисплеев есть проблема с реальным тестом - их уже трудно найти.
пакостная штука, но таки работала. В наличии уже даавно нету. Судя по протоколу надо будет добавлять тетраду как в обработчик данных, так и в протокол пересылки из МК в дисплей.
Если можно сфотографируйте дисплей, чтобымогли получить представление о ориг. показаниях. Получается ---0000--- без ввода? На 10 об. ---0010--- отображается?
Прожка просто чудеса изврата... Это в отношении вычислений длительности входного импульса и формирования опорного сигнала... На основе командных циклов и "волшебной константы" Как в принципе и схемка - "дробный" кварц 3,58 МГц вместо штатного 4 или 20 МГц больше для UART подходит (3.579545 Мгц)... Вывод там кстати сразу во все позиции дисплея сделан - при корректной математике и 16-разрядном счетчике теоретически проблем не должно быть (просто замещаем один из пробелов нужными данными)... ... но алгоритм вычислений (это только автор прожки понять может)... у нас ведь по существу простейший периодометр/частотомер
Max oбороты меньше 65535? (uint16_t при печати дисплея). Кварц не 3,579545 MHz, a 4 MHz? (из-за счетов мне это нужно)
Уже успешно написал "драйвер" для HT1611 , подключен к одним и тем же пинам. Остался тахометр, посмотрим как организовать тестирование, он для меня на данный момент сложнее.
И интересно, почему в оригинал на вход выбран PB2, а не RB0/INT или RA4/T0CKI, RB6/T1CKI, но это мысли в письменной форме ...
Да, конечно меньше. Не более 20000 об/мин. Кварц 4 Мгц. Я завтра на некоторое время исчезну из сети, не обижайтесь если не смогу ответить. Спасибо большое. Входы/выходы можете поменять, для меня это не проблема, я в них не понимаю. Печатку еще не делал.
Последний раз редактировалось ALEX-10 Пт июл 07, 2023 21:10:14, всего редактировалось 1 раз.
Такое впечатление, что в первоисточнике была привязка к UARTу - формирование "счетного окна" за счет TxD (пересылка байта данных в качестве строба). Вывод RB2 на схеме - он же RB2/TX/CK... А вот в приложенной прожке уже "некая импровизация"...
veso74, посмотри в сторону CCP1, CCP2. Режим - захват - Capture. Примерно так: 1. CCP настроен на захват, ожидание пол. фронта. TMR1 - 1uS 1.1 пишем и прерывание по переполнение TMR1 и по захвата
2. Запускаем TMR1 - старт захвата. Момент запуска должен быть по падающим фронтом.. 2.1 если сработало прерывание по захвата (полож.) меняем захват на срабатывание по падающим фронтом. CCPR1H:CCPR1L время отриц. пульса. Сохраняем 3. Если сработало по падающим то в CCPR1H:CCPR1L время пол. пульса - сохраняем и то-же делаем и для отриц. пульса. Автор t628asm.asm так сделал.
Сумируем время положителного и отрицательного и получаем период. Далее арифметика.
2.1 Можно и не меняя захват по падающим. Работать только по нарастающим фронтом - запуск по пол. фронту. Тогда в CCPR1H:CCPR1L будет период сигнала. И арифметика.
diplodok, если можно, на asm с идеей модифицируйте код из задания ALEX-10. Я тестирую (C) использование ext interrupt (PB0), L to H и беру сколько timer0 насчитал. Пока работает.
Для тахометра с оборотами в минуту можно и обычный программный счетчик. Только предпочтение аппаратному антидребезгу датчика. Измерительное окно в 1,875 секунды и считаем пришедшие за это время импульсы. Затем сдвиг результата влево 5 раз (*32) - получаем двоичный результат "обороты в минуту". Остается только привести его к двоично-десятичному виду (потетрадно) и вывести на индикацию. Для разнообразия можно усреднение добавить - но тогда на реакцию потребуется секунд 6 (высокая инерционность). Можно и через периодомер - но тогда надо подбирать длительность тактовых импульсов для T1 так, чтобы упростить математику.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения