Например TDA7294

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





Текущее время: Вт апр 23, 2024 09:02:18

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 304, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср май 17, 2017 08:51:45 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Дык ежли макросы в исходник впихерены, то необходимо и их описание вместе с оным исходником выкладывать, дабы не прослыть СУСАНИНЫМ.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср май 17, 2017 09:03:08 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Извини, не подумал. Макросы в отдельном файле.
Хотел показать простоту реализации ориентировочной реализации вычисления.
Занимаюсь нормализацией входного сигнала и масштабированием выходного, посему меняется таблица констант, но алгоритм остается.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт май 19, 2017 11:42:50 
Открыл глаза
Аватар пользователя

Карма: 2
Рейтинг сообщений: 6
Зарегистрирован: Вт июн 07, 2011 12:53:26
Сообщений: 70
Рейтинг сообщения: 0
Здравствуйте, подскажите пожалуйста собрал измерительный прибор и возникла необходимость перевернуть дисплей вверх ногами. Автор проекта не отвечает, я сам не силен в программировании. Есть исходники проекта, пробовал в WinAVR и AVR Studio но после компиляции даже без каких либо изменений получаемый hex работает только в Proteus-е, а в железе нет - даже экран не включается хотя оригинальный hex работает. Подскажите пожалуйста. В архиве оригинальные исходники, мой в WinAVR и проект Porteus.


Вложения:
AmperVolt.7z [928.13 KiB]
Скачиваний: 180
Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт май 19, 2017 15:18:38 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Дык... проект-то СИшный... а не ассемблер...
:?


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс май 21, 2017 20:21:37 
Открыл глаза

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 62
Рейтинг сообщения: 0
Давно такого потока сознания на форуме не наблюдал... Особенно впечатлило :
Цитата:
только нужен доступ к соответствующей расчётной программе.

Так вроде ТС и ищет эту "соответствующую расчётную программу"
Или:
Цитата:
Логарифм вызывается одной командой.

я даже подозреваю, эта команда CALL - вызов соответствующей подпрограммы. Вот и выдал бы человек, учитывая его космических высот квалификацию, текст проги - на посрамление нам, неразумным.

Да, это вызов подпрограммы, библиотечного элемента. Я вызываю его так:
Log_10 (x, y)
где х - аргумент, двухбайтная переменная,
y - итог вычисление логарифма, тоже двухбайтная переменная.
Программа основана на разбиение всего диапазона на отдельные участки, а на каждом участке используется линейная аппроксимация.
Собственно, программа приведена в ссылке, берите и пользуйтесь. Только написана на макроассемблере, на АБ.
Для меня классический ассемблер выглядит анахронизмом.
Я не программист, поэтому говорить о какой-то особой моей квалификации, тем более космической, не имеет смысла.
Написать команду займет несколько минут - и задача решена. Причём с гарантированной точностью 0,5 процента в диапазоне от 1 до 64. Думаю, так и работают профессионалы.
Если точности недостаточно, то её можно улучшить. Для этого есть математическая программа, которая по заданной точности и коэффициенту перед логарифмом рассчитывает массивы координат точек разбиения и массивы коэффициентов прямой линии аппроксимации . Остаётся только перенести эти массивы в подпрограмму логарифма - и получите новый логарифм с требуемой точностью.
Но эту математическую программу, думаю, в общем доступе не найти.
Предельная точность этого логарифма, похоже, 0,1 процента. Там единица представляется числом 1024, поэтому единичный шаг соответствует погрешности 0,1 процента.
В принципе, если единицу представлять числом 2048, можно в два раза увеличить точность, только диапазон аргумента уменьшится в два раза.

В общем, решение относительно несложное, никаких космических высот и потоков сознания.


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

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

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 22, 2017 17:43:30 
Встал на лапы
Аватар пользователя

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Ср окт 15, 2014 12:45:46
Сообщений: 117
Откуда: Анапа
Рейтинг сообщения: 0
Заранее прошу прощения за вопрос.
Можно ли в ходе выполнения программы изменять назначение ног контроллера с входа на выход и обратно без ресета, или это одноразовая акция при инициализации контроллера, то есть изменять содержимое регистра DDRB :oops:


МК - Attiny 2313
язык - ассемблер

_________________
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 22, 2017 18:04:40 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
вообще без проблем.

Добавлено after 7 minutes 13 seconds:
также просто как записать значение в порт. так получаем 4 состояния порта и возможность их менять в любой момент, только надо соблюдать очередность - сначала значение, потом направление на вывод или сначала направление на вход, а потом значение - так не будет выбросов (из за того, что эти значения в порт не получится записать одновременно) (сам МК ни каких ограничений не накладывает)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


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

Карма: 4
Рейтинг сообщений: 4
Зарегистрирован: Ср окт 15, 2014 12:45:46
Сообщений: 117
Откуда: Анапа
Рейтинг сообщения: 0
Я правильно понял ваше сообщение?
СпойлерReset:

ldi Temp,0b01111111 ;настройка портов
out DDRB,Temp

бла-бла-бла
инициализация
reti

main: осн цикл
бла-бла-бла
кусок программы

ldi Temp,0b00000000 ;меняем назначение портов
out DDRB,Temp

бла-бла-бла
еще кусок кода в котором применяем новое направление

ldi Temp,0b01111111 ;ставим все на место
out DDRB,Temp

rjmp main

_________________
Если я чего-то не знаю, это не говорит о моем невежестве, а только о том, что раньше этот вопрос лежал вне сферы моих интересов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 22, 2017 18:45:44 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
да, только порты можно (до определенной буквы, не помню точно какой, но тинькам это точно не грозит) адресовать и побитно например
SBI DDRB,1 (1 нога порта B - на выход) так тоже должно работать.
а если как ты писал - то лучше сначала прочитать состояние, потом изменить нужные биты (при помощи масок), а потом вписать обратно - иначе можно испортить направление других выводов порта.

Добавлено after 5 minutes 12 seconds:
CBI DDRB,1 - его же на вход (на 100% в правильности написания не уверен, я больше по С)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 23, 2017 00:04:43 
Друг Кота
Аватар пользователя

Карма: 86
Рейтинг сообщений: 1018
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4875
Откуда: Минск
Рейтинг сообщения: 3
Собственно, один из вариантов эмуляции выхода с открытым стоком на AVR - это выставить PORT в 0, а дальше уже дёргать DDR по необходимости.

В этом случае при DDR=1 будет выдаваться активный 0, а при DDR=0 - Z-состояние, что полностью идентично тому, как если бы это был открытый сток.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 23, 2017 11:54:06 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
WiseLord писал(а):
...полностью идентично тому, как если бы это был открытый сток.
Нет не полностью. Вам все равно на входе нельзя превышать напряжение питания МК.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


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

Зарегистрирован: Пт сен 10, 2010 20:39:32
Сообщений: 244
Откуда: Украина Луганская обл.
Рейтинг сообщения: 0
подскажите пож. как считать программные задержки.
И почему онлайн калькуляторы некорректно подсчитывают
например
http://www.bretmulvey.com/avrdelay.html
Код:
; Delay 4 800 000 cycles
; 1s at 4.8 MHz

    ldi  r18, 25
    ldi  r19, 90
    ldi  r20, 178
L1: dec  r20
    brne L1
    dec  r19
    brne L1
    dec  r18
    brne L1
    rjmp PC+1

Почему в строке циклы пишется на порядок больше т.е. 48 000 000 ?
А когда зашиваю в реальный контроллер получается не 1 сек а 7 сек. Контроллер Attiny13A
Естественно пробовал разные частоты генератора.
Пробовал и на Attiny2313, запускал от внешнего резонатора, все тоже самое


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 30, 2017 09:58:28 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Для формирования точных интервалов предназначены аппаратные таймеры.
Программные циклы в качестве задержек имеют крайне ограниченное применение из-за различных факторов.
Кроме прочего сам RC-генератор имеет допустимый диапазон погрешности и касательно тиньки 13-й надо весьма точно считать - с 8-9 знаками после запятой.
:wink:
Особо ежли учесть, что для пониженной частоты генератора константа коррекции должна быть вручную заранее считана и в программе заранее загружена. Автоматом только для основной частоты "по умолчанию" корректируюшша константа загружается.
:twisted:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 30, 2017 10:05:13 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Пт сен 10, 2010 20:39:32
Сообщений: 244
Откуда: Украина Луганская обл.
Рейтинг сообщения: 0
Для формирования точных интервалов предназначены аппаратные таймеры.
Программные циклы в качестве задержек имеют крайне ограниченное применение из-за различных факторов.

Да это я естественно понимаю, но не в 7 раз же погрешность. Мне надо мигать светодиодом раз в 3 часа, +-10 мин. Точность не нужна совершенно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 30, 2017 10:22:12 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
FUSE- БИТ CKDIV8 снимите.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 30, 2017 10:31:34 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Пт сен 10, 2010 20:39:32
Сообщений: 244
Откуда: Украина Луганская обл.
Рейтинг сообщения: 0
FUSE- БИТ CKDIV8 снимите.

спасибоОО огромнейшее!! :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 30, 2017 10:38:39 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
По мне, гораздо проще программные задержки формировать пользуясь возможностями ассемблера.
Код:
.equ   Fo=4800000
T:
   LDI   R23,BYTE4(1*Fo/6-1)
   LDI   R22,BYTE3(1*Fo/6-1)
   LDI   R21,BYTE2(1*Fo/6-1)
   LDI   R20,BYTE1(1*Fo/6-1)      ;1 сек
;   LDI   R23,BYTE4(3*3600*Fo/6)
;   LDI   R22,BYTE3(3*3600*Fo/6)
;   LDI   R21,BYTE2(3*3600*Fo/6)
;   LDI   R20,BYTE1(3*3600*Fo/6)   ;3 часа

L:
   SUBI   R20,1
   SBCI   R21,0
   SBCI   R22,0
   SBCI   R23,0
   BRSH   L
   RJMP   T


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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 30, 2017 16:07:04 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Уморшить контроллер на 3 часа :shock: да ещё и прерывания выключить :shock: :shock: если Вам надо пирог через 3 часа из духовки вынуть, тоже тиканье часов считать будете? :)) и ни на что не отвлекаться чтобы со счету не сбили :)) :))
даже если контроллер больше ни чем не занят пусть лучше спит как кот, (или ест :hunger: ) - а от такой практики лучше уходить, чтобы не дай бог не привыкнуть :)) :)) :)) .
тем более прерывание использовать не сложно (а темболее когда время задержки не меняется) в подпрограмме добавляешь переменную - где хранится адрес на который прыгнуть и переменную таймера, допустим вызов нашей подпрограммы происходит 1раз в миллисекунду, а нам надо подождать 100 миллисекунд - в переменную таймера вносим 99 (отсчет текущего прерывания только начался) а в адрес - адрес следующей команды и выходим из подпрограммы.
При вызове подпрограммы проверяем таймер если 0 - идем по адресу, если нет декремент таймера и выход.

Добавлено after 1 minute 14 seconds:
П.С. ни чего не имею против программных таймеров на малые интервалы

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср май 31, 2017 06:18:50 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Есть маахонькая разница:
1. программный интервал сформированный на основе повторяющихся циклично машинных кодов;
2. программный интервал на основе генерации метки аппаратным блоком
при условии, что длительность интервала между метками значительно превосходит разумную внешнюю погрешность.
Первый пункт хорош на сверхмалых интервалах, второй - основа всех типов счета "длинных" интервалов/программных RTC.
8)


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

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


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

Сейчас этот форум просматривают: Varlakotam и гости: 19


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

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


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