Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 16:15:31

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 333, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 09, 2018 10:14:55 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
Как правильно настроить вывод ICP МК (тн2313), если в МК-ре т/с Т1 настроен в режиме захвата?
В книге написано что на вход. А с подключенным подтягивающем резистором или вывод должен "висеть в воздухе"?
По-идее разницы быть не должно...да и на практике, вроде бы, ничего не изменилось. Но все же как правильно?
Спасибо!
Так и так правильно. Сам использую и с включением подтяжки и Z-состоянием, если есть внешняя подтяжка. К примеру
СпойлерИзображение


Вложения:
ICP.PNG [10.49 KiB]
Скачиваний: 614
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 09, 2018 12:19:44 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
А зачем подавать входной сигнал на два входа ICP и PD0?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 09, 2018 12:37:44 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
Ошибка разводки печати. На самом деле, подключение идет на PB0/T0. Для частотомеров на AVR методом захвата, когда счет периодов измеряемой частоты идет T0, а счет периодов опорной частоты T1.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: 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мс -т.е. на св-диодах я получаю период сигнала.
откуда взялась двойка: на диске у меня две прорези, т.е. я имею на диске два зуба (см фото).)
Далее математически нахожу частоту и частоту оборотов в минуту.
вот так. :oops:
Знаю, Вы скажете мне на это -- :shock: :facepalm: :kill:
но и до этого я дошел не сразу)
С семисегментным индикатором еще не работал, поэтому применяю св-диоды.
СпойлерИзображение Изображение Изображение Изображение

Спойлер
Код:
.include "tn2313def.inc"            

.def   temp   =R16

.cseg
.org   0x00   rjmp   init

;ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ
.org   ICP1addr      rjmp   T1_capt   ;(0х03) Захват таймера/счетчика Т1

.org   INT_VECTORS_SIZE

;НАСТРОЙКА СТЕКА И ПОРТОВ
init:   ldi      temp,RAMEND
      out      SPL,temp
      
      ser      temp
      out      DDRB,temp         ;В на выход с 0
      
      ldi      temp,~(1<<PD6)
      out      DDRD,temp         ;D на выход с 0, кроме PD6
      ldi      temp,(1<<PD6)
      out      PORTD,temp         ;ICP на вход БЕЗ подтяжки

;НАСТРОЙКА ТАЙМЕРА T1
      ldi      temp,1<<ICIE1
      out      TIMSK,temp         ;Разрешаем прерывание по захвату Т1

      ldi      temp,(1<<ICNC1 | 1<<ICES1 | 1<<CS12 | 0<<CS11 | 1<<CS10)
      out      TCCR1B,temp         ;1/1024

      sei

;ОСНОВНОЙ ЦИКЛ
MAIN:   rjmp   MAIN

;ОБРАБОТКА ПРЕРЫВАНИЯ ПО ЗАХВАТУ
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 на одном из фото указаны параметры датчика. как понять, где говорится про его предельную частоту измерения?
Спасибо!


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 09, 2018 14:28:16 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
На фото оптический датчик "на просвет" и диск с одним просветом (пропилом, окном).
Из магнитных - шестерня с А3144 и "магнитом ссади"(зуб шестерни в качествн магнитного шунта).
Датчик в виде наклеянного кусманчикафольги и оптрона "на отражение".
Как вариант - диск с прорезями и ранее показанный оптрон "на просвет".
:roll:


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 11, 2018 22:22:12 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 3
деление/умножение на МК да ещё вещественных чисел довольно затратное занятие. Если реальных значений выводимых на дисплей немного(два-двасполовиной значащих десятичных разряда), то проще использовать табличное преобразование проведя все вычисления заранее на ПК.
Например, выводить значение оборотов на 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 миллисекунд, и получите "готовую" частоту в герцах.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср июн 13, 2018 04:02:18 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
Хочу измерять частоту вращения вала асинхронной машины. Для этого буду использовать датчик на основе эффекта Холла (с магнитом).

...вопросы:
1 можно было бы как то улучшить читабельность путем программного преобразования/расчета периода в частоту. Но как это сделать я не знаю. В интернете пишут для умножения и деления исп. команды mul и div. Но подходят ли они действительно для программирования МК и если нет, то как можно осуществить программный расчет?
2 С учетом текущей внешней схемотехникой формирования импульса мне необходимо настраивать ICP на вход с подтяжкой, верно?
3 на одном из фото указаны параметры датчика. как понять, где говорится про его предельную частоту измерения?


1 Как вариант
Вложение:
TAHO_2313.zip [21.73 KiB]
Скачиваний: 234

2 Да.
3 До 300кГц можно не заботиться о быстродействии.
СпойлерИзображение


Вложения:
SR16.PNG [15.76 KiB]
Скачиваний: 624
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июн 14, 2018 20:45:06 
Открыл глаза

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 62
Рейтинг сообщения: 0
деление/умножение на МК да ещё вещественных чисел довольно затратное занятие. Если реальных значений выводимых на дисплей немного(два-двасполовиной значащих десятичных разряда), то проще использовать табличное преобразование проведя все вычисления заранее на ПК.
Таблица займёт всего 400 байт в FLASH-памяти и преобразование период-частота будет происходить практически мгновенно. И заметь - никаких плясок с мат.библиотеками, которые запросто отъедят десяток килобайт флеша.

Не так всё плохо с математикой в МК.
В хорошем макроассемблере деление 4-хбайтной переменной на 2-хбайтную будет одна макрокоманда с параметрами, скажем, такого типа:
div(делимое, делитель, итог деления).
Подключить файл с таким библиотечным элементом и написать команду – дело, условно говоря, нескольких минут.
Да и размеры программ не такие страшные. Команда деления занимает около 130 слов, команда умножения два на два байта занимает около 60 слов.
Так что всё просто и легко, никаких «плясок с мат.библиотеками».


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт июн 15, 2018 09:38:46 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 3
Макросы тоже в некотором роде библиотека.
Только в данном случае разница в результирующем объеме программного кода - при подпрограммке он меньше (если только сам макрос не есть вызов подпрограммы).
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт июн 15, 2018 20:05:13 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Да, а в какой форме представлены операнды? А результат? Это всё целые числа. И время выполнения этого деления на 8-битных?

Цитата:
считайте сколько придёт импульсов за 500 миллисекунд, и получите "готовую" частоту в герцах.
Частоту вращения всяких механизмов обычно измеряют в оборотах в МИНУТУ. Т.к. на герцы частота получается очень небольшой и её трудно будет измерить с достаточной точностью прямым способом. Быстрее и точнее измерять период между импульсами и потом приводить его к частоте. Для чего и нужна математика.

Надо сказать что частота вращения силового двигателя в 100Гц это на пределе механических характеристик применяемых материалов из которого изготавливают ротор. Бор-машинки электрические, но там ротор совсем маленький по размерам - разгоняются до 500Гц, а дальше только совсем маленький размер ротора и пневаматика.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб июн 16, 2018 08:51:26 
Открыл глаза

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 62
Рейтинг сообщения: 0
Да, а в какой форме представлены операнды? А результат? Это всё целые числа. И время выполнения этого деления на 8-битных?

Все операнды и результат– целые числа, а в чём проблема?
Операции с целыми числами - ничего сложного, школьная арифметика, только надо следить, чтобы, с одной стороны, обеспечить требуемую точность и, с другой стороны, не выскочить за диапазон переменной. Запятая появляется только при выводе на индикатор в соответствующем месте.

Быстрое деление, наверно, редко нужно, я ни разу не сталкивался.
По возможности деление вроде как заменяют умножением.
При умножении и делении все операции проводятся в регистрах РОН,
получается довольно быстро.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 17, 2018 13:33:09 
Грызет канифоль

Карма: -10
Рейтинг сообщений: 17
Зарегистрирован: Пт дек 30, 2016 18:05:50
Сообщений: 286
Откуда: Украина.
Рейтинг сообщения: 0
Добрый день.
Помогите определить формат компилятора(чем открыть и компилировать?).
http://elm-chan.org/works/fldrv/fliv.zip
(или как альтернатива сделайте мне пожалуйста сразу hex файл, там же в нем фьюзы зашиты)
Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 17, 2018 14:08:13 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 1
Ассемблер из комплекта avr-gcc.

Makefile в наличии, так что чего-то вроде WinAVR, в котором есть и сам gcc, и make, должно быть достаточно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 17, 2018 14:43:59 
Грызет канифоль

Карма: -10
Рейтинг сообщений: 17
Зарегистрирован: Пт дек 30, 2016 18:05:50
Сообщений: 286
Откуда: Украина.
Рейтинг сообщения: 0
Спасибо.
У меня еще один вопросик.
В main.S есть следующие фюзы для Attiny13A:
Код:
;----------;
; Fuse values
;----------;
.section   .fuse,"a",@progbits

   .dc.b   0b01111010   ; Fuse low bits
   .dc.b   0b11111000   ; Fuse high bits


Я использую HVS(вот reset фюзы по умолчанию):
Код:
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.

Low: 01101010
     ││││││└┴── CKSEL[1:0] Clock
     ││││└┴── SUT[1:0] Startup time
     │││└── CKDIV8 Clock division ratio (1:1/1, 0:1/8)
     ││└── WDTON (1:WDT normal, 0:WDT always on)
     │└── EESAVE (Retain EEPROM at chip erase 1:No, 0:Yes)
     └── SPIEN (1:Disable ISP, 0:Enable ISP) *Available only HVS mode

High:---11111
        ││││└── RSTDISBL (RESET pin 1:Enable, 0:Disable(PB5))
        ││└┴── BODLEVEL[1:0] (BOD 11:None, 10:1.8V, 01:2.7V, 00:4.3V)
        │└── DWEN (On-Chip Debugging via RESET pin 1:Disable, 0:Enable)
        └── SPMEN (SPM instruction 1:Disable, 0:Enable)

Cal: 98

g:\_flashlight\ATtiny\HVS\LPT\avrxtool32\bin>


Мне кажется, или в main.S big-endian формат фюзов или наоборот в HVS он big-endian?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 18, 2018 08:29:48 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
Достаточно посмотреть на расположение RSTDISBL согласно даташита.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн июн 18, 2018 18:11:44 
Встал на лапы

Зарегистрирован: Вт мар 31, 2015 01:12:46
Сообщений: 89
Рейтинг сообщения: 0
Спасибо за ответы, буду пробовать!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 26, 2018 09:50:02 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср авг 05, 2015 19:34:20
Сообщений: 107
Рейтинг сообщения: 0
Уважаемый akl.
Стал проверять работу brtc в протеус. Один момент: для того, чтобы выйти из цикла brtc приходится отправлять команду два раза. Причем останов происходит на команде brtc.
Отправляю сообщение - перехожу в паузу - программа на brtc и флаг T установлен. Продолжение Run не изменяет ситуацию.
Повторное отправление сообщения и происходит выход из цикла с отработкой последующих команд и сбросом флага T.

Относительно вашего решения:
https://radiokot.ru/forum/viewtopic.php ... start=6420
Пт янв 26, 2018 14:25:41

Это баг Протеус или какая-то особенность? И как с ней бороться?
Спасибо!


Вложения:
brtc.png [42.67 KiB]
Скачиваний: 232
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 26, 2018 11:51:43 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1384
Рейтинг сообщения: 0
Симулируется спящий режим. Поэтому все верно. При включенном спящем режиме выполнение программы прекращается сразу после команды sleep. И разбудить МК можно только действиями зависящими от настройки спящего режима.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 26, 2018 12:04:54 
Встал на лапы
Аватар пользователя

Зарегистрирован: Ср авг 05, 2015 19:34:20
Сообщений: 107
Рейтинг сообщения: 0
Demiurg, спасибо огромное за ответ. Буду пробовать при подключенном сотике (ME) в связке с Протеус. Или так тоже не получится и надо ME+железо?


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 333, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y