Как правильно настроить вывод ICP МК (тн2313), если в МК-ре т/с Т1 настроен в режиме захвата? В книге написано что на вход. А с подключенным подтягивающем резистором или вывод должен "висеть в воздухе"? По-идее разницы быть не должно...да и на практике, вроде бы, ничего не изменилось. Но все же как правильно? Спасибо!
Так и так правильно. Сам использую и с включением подтяжки и Z-состоянием, если есть внешняя подтяжка. К примеруСпойлер
Ошибка разводки печати. На самом деле, подключение идет на PB0/T0. Для частотомеров на AVR методом захвата, когда счет периодов измеряемой частоты идет T0, а счет периодов опорной частоты T1.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Сб июн 09, 2018 14:14:24
Встал на лапы
Зарегистрирован: Вт мар 31, 2015 01:12:46 Сообщений: 89
Рейтинг сообщения:0
Хочу измерять частоту вращения вала асинхронной машины. Для этого буду использовать датчик на основе эффекта Холла (с магнитом). По программе: коэффициент предделителя выбрал 1024, чтобы значения периода было в милисекундах (пускай и слегка не точно). Полученное значение периода сигнала вывожу на светодиоды в двоичном виде. Далее из двоичного числа делаю десятичное. Делю полученное значение на коэффициент =16/2 (16-частота работы МК, если бы было 1МГц, то на 1000 тактов МК был 1 такт таймера. Это мне дает: Тт1=Кпреддел./Fмк=1024/1000000=1,024мс -т.е. на св-диодах я получаю период сигнала. откуда взялась двойка: на диске у меня две прорези, т.е. я имею на диске два зуба (см фото).) Далее математически нахожу частоту и частоту оборотов в минуту. вот так. Знаю, Вы скажете мне на это -- но и до этого я дошел не сразу) С семисегментным индикатором еще не работал, поэтому применяю св-диоды. Спойлер Спойлер
;ОБРАБОТКА ПРЕРЫВАНИЯ ПО ЗАХВАТУ T1_capt:clr temp out TCNT1H,temp out TCNT1L,temp ;Обнулили счетный регистр
in ZL,ICR1L in ZH,ICR1H
out PORTD,ZH out PORTB,ZL ;Вывели значение периода на св-диоды
reti
вопросы: 1 можно было бы как то улучшить читабельность путем программного преобразования/расчета периода в частоту. Но как это сделать я не знаю. В интернете пишут для умножения и деления исп. команды mul и div. Но подходят ли они действительно для программирования МК и если нет, то как можно осуществить программный расчет? 2 С учетом текущей внешней схемотехникой формирования импульса мне необходимо настраивать ICP на вход с подтяжкой, верно? 3 на одном из фото указаны параметры датчика. как понять, где говорится про его предельную частоту измерения? Спасибо!
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
На фото оптический датчик "на просвет" и диск с одним просветом (пропилом, окном). Из магнитных - шестерня с А3144 и "магнитом ссади"(зуб шестерни в качествн магнитного шунта). Датчик в виде наклеянного кусманчикафольги и оптрона "на отражение". Как вариант - диск с прорезями и ранее показанный оптрон "на просвет".
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
деление/умножение на МК да ещё вещественных чисел довольно затратное занятие. Если реальных значений выводимых на дисплей немного(два-двасполовиной значащих десятичных разряда), то проще использовать табличное преобразование проведя все вычисления заранее на ПК. Например, выводить значение оборотов на 4 знака с дискретностью 50 об/мин. От 0 до 10000 будет всего 200 значений в таблице. Если закодировать их в виде BCD то получится 2 байта на значение и минимум телодвижений с выводом на 7-сегментные индикаторы. Таблица займёт всего 400 байт в FLASH-памяти и преобразование период-частота будет происходить практически мгновенно. И заметь - никаких плясок с мат.библиотеками, которые запросто отъедят десяток килобайт флеша.
Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
Добавлено: Вт июн 12, 2018 13:14:01
Первый раз сказал Мяу!
Зарегистрирован: Пн дек 15, 2014 19:04:08 Сообщений: 22 Откуда: г. Пермь
Рейтинг сообщения:0
Если вам нужна частота то нужно просто считать количество импульсов за определенное время. Так как у вас 2 импульса за оборот то считайте сколько придёт импульсов за 500 миллисекунд, и получите "готовую" частоту в герцах.
Хочу измерять частоту вращения вала асинхронной машины. Для этого буду использовать датчик на основе эффекта Холла (с магнитом).
...вопросы: 1 можно было бы как то улучшить читабельность путем программного преобразования/расчета периода в частоту. Но как это сделать я не знаю. В интернете пишут для умножения и деления исп. команды mul и div. Но подходят ли они действительно для программирования МК и если нет, то как можно осуществить программный расчет? 2 С учетом текущей внешней схемотехникой формирования импульса мне необходимо настраивать ICP на вход с подтяжкой, верно? 3 на одном из фото указаны параметры датчика. как понять, где говорится про его предельную частоту измерения?
деление/умножение на МК да ещё вещественных чисел довольно затратное занятие. Если реальных значений выводимых на дисплей немного(два-двасполовиной значащих десятичных разряда), то проще использовать табличное преобразование проведя все вычисления заранее на ПК. Таблица займёт всего 400 байт в FLASH-памяти и преобразование период-частота будет происходить практически мгновенно. И заметь - никаких плясок с мат.библиотеками, которые запросто отъедят десяток килобайт флеша.
Не так всё плохо с математикой в МК. В хорошем макроассемблере деление 4-хбайтной переменной на 2-хбайтную будет одна макрокоманда с параметрами, скажем, такого типа: div(делимое, делитель, итог деления). Подключить файл с таким библиотечным элементом и написать команду – дело, условно говоря, нескольких минут. Да и размеры программ не такие страшные. Команда деления занимает около 130 слов, команда умножения два на два байта занимает около 60 слов. Так что всё просто и легко, никаких «плясок с мат.библиотеками».
Макросы тоже в некотором роде библиотека. Только в данном случае разница в результирующем объеме программного кода - при подпрограммке он меньше (если только сам макрос не есть вызов подпрограммы).
Да, а в какой форме представлены операнды? А результат? Это всё целые числа. И время выполнения этого деления на 8-битных?
Цитата:
считайте сколько придёт импульсов за 500 миллисекунд, и получите "готовую" частоту в герцах.
Частоту вращения всяких механизмов обычно измеряют в оборотах в МИНУТУ. Т.к. на герцы частота получается очень небольшой и её трудно будет измерить с достаточной точностью прямым способом. Быстрее и точнее измерять период между импульсами и потом приводить его к частоте. Для чего и нужна математика.
Надо сказать что частота вращения силового двигателя в 100Гц это на пределе механических характеристик применяемых материалов из которого изготавливают ротор. Бор-машинки электрические, но там ротор совсем маленький по размерам - разгоняются до 500Гц, а дальше только совсем маленький размер ротора и пневаматика.
Да, а в какой форме представлены операнды? А результат? Это всё целые числа. И время выполнения этого деления на 8-битных?
Все операнды и результат– целые числа, а в чём проблема? Операции с целыми числами - ничего сложного, школьная арифметика, только надо следить, чтобы, с одной стороны, обеспечить требуемую точность и, с другой стороны, не выскочить за диапазон переменной. Запятая появляется только при выводе на индикатор в соответствующем месте.
Быстрое деление, наверно, редко нужно, я ни разу не сталкивался. По возможности деление вроде как заменяют умножением. При умножении и делении все операции проводятся в регистрах РОН, получается довольно быстро.
Добрый день. Помогите определить формат компилятора(чем открыть и компилировать?). http://elm-chan.org/works/fldrv/fliv.zip (или как альтернатива сделайте мне пожалуйста сразу hex файл, там же в нем фьюзы зашиты) Спасибо.
g:\_flashlight\ATtiny\HVS\LPT\avrxtool32\bin>avrpp.exe -RF Put a device on the socket and type Enter... PAR->Unknown device (FF-FF-FF). HVS->Detected device is ATtiny13.
Уважаемый akl. Стал проверять работу brtc в протеус. Один момент: для того, чтобы выйти из цикла brtc приходится отправлять команду два раза. Причем останов происходит на команде brtc. Отправляю сообщение - перехожу в паузу - программа на brtc и флаг T установлен. Продолжение Run не изменяет ситуацию. Повторное отправление сообщения и происходит выход из цикла с отработкой последующих команд и сбросом флага T.
Симулируется спящий режим. Поэтому все верно. При включенном спящем режиме выполнение программы прекращается сразу после команды sleep. И разбудить МК можно только действиями зависящими от настройки спящего режима.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения