Например TDA7294

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

Текущее время: Вс авг 03, 2025 14:40:42

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 262, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 14:42:35 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 2
Медали: 1
Получил миской по аватаре (1)
У DS температура содержится вроде в 2 байтах. Вы правильно в 1 байт конвертируете?

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 14:44:17 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4995
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Да, правильно. ))) Температуру показывает без проблем на индикаторе и даже сравнивает с заданной, но в приделах положительных отлично, а вот с отрицательными беда... . Я конвертирую до целых, просто откинув все десятые и т.п.

_________________
Станислав


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

Карма: 86
Рейтинг сообщений: 1035
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4884
Откуда: Минск
Рейтинг сообщения: 2
СКАЗОЧНИК писал(а):
он выдает температуру как есть и отрицательную температуру в дополнительном коде, т.е. в старшем бите байта появляется единица.
Вообще-то, ЕМНИП, там не только в старшем байте единица (вот в датчике DHT22 - там да, только единица), а вообще там нормальный дополнительный код, т.е. все старшие разряды в единице.

Всё, что с полученным оттуда 16-битным числом нужно сделать для получения "чистой" температуры в цельсиях - это всего лишь сдвинуть его влево 4 раза (это для DS18B20, а для DS1820 - один раз). Я в ассемблере не силён, но вроде это ASR для старшего байта и LSR + заёмом из C для младшего. А потом уже этот младший байт можно и сравнивать с порогом в ZUUM


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 14:47:08 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4995
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вот так я вытаскиваю температуру из него:

Код:

.........................

                 rcall READBYTE         ; Читаем первый байт (он будет в ДАТЕ)

            mov XL, DATA      ; Закидывааем значение первого байта в младший регистр Х

      rcall READBYTE         ; Читаем второй байт (он будет в ДАТЕ)

            mov XH, DATA      ; Закидывааем значение второго байта в старший регистр Х

; ---------- ПРЕОБРАЗУЕМ И ВЫВОДИМ НА ИНДИКАТОР ----------

         swap XH               ; Переворачиваем полубайты местами
         andi XH, 0xF0         ; Накладываем маску, остаются только старшие 4 бита
         swap XL               ; Переворачиваем младшие полубайты местами
         andi XL, 0x0F         ; Накладываем маску, остаются только младшие 4 бита
         
         add XH, XL            ; Складываем, в итоге получается готовая температура в XH
      
   rcall CONVERTBYTE             ; Забиваем значения для единиц, десятков и сотен   


Все верно, отрезаем все лишнее и остается один байт температуры. Все просто.

Изображение

З.Ы. Причем в ZUUM он тоже закидывает отрицательные в таком же формате (в дополнительном коде), т.к. вывод на индикатор у них один и тот же, и отображает все корректно.

_________________
Станислав


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

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

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


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

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4332
Откуда: Ижевск
Рейтинг сообщения: 2
СКАЗОЧНИК
Поменяйте местами операнды
Код:
   cp  temp1,ZUUM
;   cp  ZUUM, temp1
   brlt ENN

Из описания команды BRLT
cp r16,r1 ; Compare r16 to r1
brlt less ; Branch if r16 < r1 (signed)
...
less: nop ; Branch destination (do nothing)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 15:23:56 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4995
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Ура!!!! Спасибо всем.

akl писал(а):
Поменяйте местами операнды

Все правильно вы сказали, так и было раньше, пока не начал эксперименты...
Поменял местами, выдрал и перетащил в более логичное место программы. Все пашет! :beer: :music:
Я в восторге!
Дай Вам всем, кто откликнулся вселенная здоровья и денег побольше. :)

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 23:07:13 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Код:
         swap XH               ; Переворачиваем полубайты местами
         andi XH, 0xF0         ; Накладываем маску, остаются только старшие 4 бита
         swap XL               ; Переворачиваем младшие полубайты местами
         andi XL, 0x0F         ; Накладываем маску, остаются только младшие 4 бита
         
         add XH, XL            ; Складываем, в итоге получается готовая температура в XH


Код:
   andi   rab,0xF0             // В rab младшее значение
      or      temp1,rab             // Складываем со старшим
      swap   temp1                // Меняем местами


К тому же
Код:
add XH, XL            ; Складываем, в итоге получается готовая температура в XH
может как бы не взначай добавить 1 к старшей тетраде


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 23:12:34 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4995
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Почти понял, но не понял...
Вы предлагаете альтернативный вариант, как выделить один байт...
Я почему-то всегда думал, что add не складывает реально, а просто объединяет две половинки... :dont_know: :facepalm: :)

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 18, 2015 23:23:49 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Ну да , вспомните как записываются байты получаемые с DS или просто посмотрите. Т.ч трех команд достаточно. Чтобы выделить температуру.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 26, 2015 19:49:51 
Нашел транзистор. Понюхал.

Зарегистрирован: Чт янв 01, 2015 16:34:55
Сообщений: 167
Рейтинг сообщения: 0
Помогите начинающему! Скачал ASM Editor как советуют в книжке Ревича, накатил туда компилятор с AVR Studio 4. Но не как не могу получить .hex файл! Он за место них .obj выдаёт. Помогите! Что делать? В книжке об этом ничего не написано. На AVR Studio программировать не хочу, слишком много лишнего.

П.С. Компилятор пишет No errors, просто создаёт .obj заместо .hex


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 26, 2015 20:36:11 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Если вы сейчас собираетесь писать на асме, лучше AVR-Studio 4.19 ничего нет. Я с AVR уже почти 10 лет работаю, так что поверьте мне. Есть еще одна альтернатива. IAR. Но в IAR на асме я программы не писал, только на си.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 26, 2015 21:10:24 
Нашел транзистор. Понюхал.

Зарегистрирован: Чт янв 01, 2015 16:34:55
Сообщений: 167
Рейтинг сообщения: 0
Мне очень сильно избыточен функционал AVR Studio. Пробывал писать в ASM Editor и сразу понравился его минимализм, всё просто и понятно - создал файлик, написал, скомпилировал и всё. А в AVR Studio куча непонятных окошек, каких то настроек, симуляторов. Создать проект и скомпилировать код тот ещё квест. Мне не нужна вся эта мишура, я просто хочу помигать светодиодом :)

Может существует такие же IDE как ASM Editor для AVR? Чтоб можно было просто код писать, как в блокноте но с нумерацией строк и без всяких лишних окошечек чья функция для меня загадка. А лучше с ASM Editor помогите разобратся...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 26, 2015 21:16:04 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
ПТУ-шник писал(а):
...

О какой избыточности вы говорите? В студии есть все, что требуется. И ничего лишнего. И редактор и симулятор. Ну и так далее. Никакого квеста. Необходимый набор инструментов. Вы хотите в один файлик? Это только если светодиодиком поморгать. Как только пойдут более-менее серьезные проекты, вам придется научиться модульности программ.
Не надо ничего усложнять. AVR-Studio 4.19 проста как рубанок.


Последний раз редактировалось Demiurg Чт ноя 26, 2015 21:18:07, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 26, 2015 21:17:15 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6041
Откуда: Minsk
Рейтинг сообщения: 0
ПТУ-шник писал(а):
На AVR Studio программировать не хочу, слишком много лишнего.

Никто и не заставляет использовать "лишнее" - ни Студиевский редактор, ни замечательный его симулятор . Написал в своем любимом редакторе исходник, парой кликов мышью создал проект - и вы уже в Хопре :) - компилируй, получай и hex, и obj, и lst - в зависимости от настроек. Создать файл данных для записи в EEPROM - да сколько угодно. А если прога чуть сложнее 'помигать диодами' - отладка в Студии - прямо сказка. И Про Те Усы можно не вспоминать.
В общем, не надо бояться человека с ружьем АВР-Студии - она очень хорошая и доброжелательная даже к новичкам :)

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 26, 2015 22:27:12 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 44
Зарегистрирован: Вс авг 30, 2015 03:52:59
Сообщений: 469
Рейтинг сообщения: 0
Есть еще один аргумент против ASM Editor'а - как видно из последних постов, количество пользователей этого редактора намного меньше, чем той же студии, или IAR'а, а значит и подсказку получить труднее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 05, 2015 14:36:01 
Нашел транзистор. Понюхал.

Зарегистрирован: Чт янв 01, 2015 16:34:55
Сообщений: 167
Рейтинг сообщения: 0
Проблему ASM Editora решил, там в батнике не тот параметр стоял. Поправил и всё заработало.

Возникли вопросы про работу программы на ассемблере. Вот код:
Код:
.include "C:\avrtools\Appnotes\tn13def.inc" ; Библиотека для Тини13
SBI DDRB, 1 ; Настройка порта
SBIC PINB, 0 ; Если пин 0 порта В в лог. единице, то выполняем следующую команду. Если лог. нуле то пропускаем.
SBI PORTB, 1 ; пин 1 установка
SBIS PINB, 0 ; если на пине 0 нет сигнала то пин 1 в ноль
CBI PORTB,1


Программа гасит и зажигает светодиод по кнопке. Всё прекрасно работает.

Вопросы:
1) Почему она зациклина? Получается когда счётчик команд в мк доходит до конца помяти то он прыгает в начало т.е. аппаратно находится в цикле? Думал что программа дойдёт до последней команды и остановится, а не прыгнет обратно на первую.
2) Почему этот код вообще работает? :)) Тут нет векторов прерываний в начале, не установлен начальный адрес. Просто сразу идёт код.
3) Что за дериктива .device? Что именно она делает? А то в inc файлах уже покапался, а с device непонятно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 05, 2015 14:40:32 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4995
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
"Прекрасно" работает в протеусе или железе?

_________________
Станислав


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 05, 2015 14:41:09 
Нашел транзистор. Понюхал.

Зарегистрирован: Чт янв 01, 2015 16:34:55
Сообщений: 167
Рейтинг сообщения: 0
СКАЗОЧНИК писал(а):
"Прекрасно" работает в протеусе или железе?

В железе. Симуляторы не люблю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 05, 2015 14:48:18 
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватар пользователя

Карма: 133
Рейтинг сообщений: 782
Зарегистрирован: Чт апр 21, 2011 17:55:50
Сообщений: 4995
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
DEVICE - Определить устройство для которого компилируется программа
Директива DEVICE позволяет указать для какого устройства компилируется программа. При использовании данной директивы компилятор выдаст предупреждение, если будет найдена инструкция, которую не поддерживает данный микроконтроллер. Также будет выдано предупреждение, если программный сегмент, либо сегмент EEPROM превысят размер допускаемый устройством. Если же директива не используется то все инструкции считаются допустимыми, и отсутствуют ограничения на размер сегментов.

Если прерывания не используются, то допустимо их не указывать.

По первому вопросу не могу ниче вразумительного сказать. Вообще-то так не принято. Все делают бесконечный цикл. Может ваш компилятор посчитал, что его надо вставить и сделал это сам. Может так и есть, если дошел до конца памяти, то прыгает на начало (или сбрасывается, что скорее всего). Однако, это сильно криво, так делать. :dont_know:

Да и в железе, если даже по умолчанию стоит у МК 1 МГц тактовая, все равно на кнопку реагировать должна как попало.

_________________
Станислав


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

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


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

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


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

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


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