Например TDA7294

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

Текущее время: Вт июл 29, 2025 02:28:43

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 93, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 14, 2011 22:41:05 
Друг Кота
Аватар пользователя

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
nibiluk, я оттуда и начал учить.............., дошел вот сюда http://easyelectronics.ru/avr-uchebnyj-kurs-makroassembler.html#more-19 и начал задавать знатокам вопросы о .CSEG и .ORG address................, короче забуксовал........, там автор излагает не для тех кто в танке..........., где б найти материал в котором бы это излагалось для таких непонятливых как я.................... :dont_know: :( :dont_know:

_________________
Tell Me The Truth


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

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19734
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
FreshMan писал(а):
начал задавать знатокам вопросы о .CSEG и .ORG address................, короче забуксовал........,

Что тут непонятного? У вас программа по умолчанию помещается начиная с нулевого адреса флэш-памяти. Если вы хотите изменить адрес — пишете .ОРГ адрес.

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


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

Карма: 13
Рейтинг сообщений: 24
Зарегистрирован: Сб ноя 15, 2008 10:09:56
Сообщений: 2029
Откуда: г. Тула
Рейтинг сообщения: 0
Ну так там всё слишком просто, что бы писать целые книги об этом. :)
Вот этого вне хватило, всё расписано просто и понятно, хоть на стену перед монитором вешай:
http://dfe3300.karelia.ru/koi/posob/avr ... sm-rus.htm
А вот на счёт периферии, это я уже по даташитам конкретного микроконтроллера смотрю. Там тоже, если представляешь себе примерно ход работы данного устройства, то достаточно взглянуть на структуры настроечных регистров и писать код.

Ну ещё по поводу .xSEG-ов всяких. Тут следует учитывать, что у атмелок архитектура Гарвардская, т.е. участок памяти с кодом и с ОЗУ (и с EEPROM) полностью разделены друг от друга и не имеют общей шины (у каждого блока своя шина и, соответственно, адрес начало каждого блока равен 0) и напрямую из одного блока в другой общаться нельзя (если из FLASH в ОЗУ общаться, так тут это организовывает сам процессор, а что бы в EEPROM, то тут вообще обращение через периферию идёт). Вот .xSEG указывают с каким блоком идёт дальше работа, а .ORG устанавливает адрес конкретно в этом блоке.

_________________
Изображение
/dev/urandom - гигабайты информации.

OS: openSUSE 13.2 (x86_64)


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

Карма: 38
Рейтинг сообщений: 549
Зарегистрирован: Пн июл 14, 2008 21:28:00
Сообщений: 10703
Откуда: Москва
Рейтинг сообщения: 0
вопрос такой: мог бы кто небесплатно разумеется (но и не очень дорого) написать программку для мега32 для термометра на дс18б20 с несколько хитрой индикацией?

_________________
Ищу тиратрон ТХИ1-2000/4, ГРИ ИН-23, ФЭУ-103; 134; 135, 138, 155, 157, лампу ИСШ-7.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.


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

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19734
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
suslogon писал(а):
вопрос такой: мог бы кто небесплатно разумеется (но и не очень дорого) написать программку для мега32 для термометра на дс18б20 с несколько хитрой индикацией?

Дык, это на "Из лап в лапы" попахивает :wink:

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


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

Карма: 6
Рейтинг сообщений: 11
Зарегистрирован: Сб мар 07, 2009 20:44:36
Сообщений: 4435
Рейтинг сообщения: 0
Доброй ночи :)
Пишу для Attiny2313
Как организовать побитовый вывод регистра общего назначения в 1 выход порта микроконтроллера?
при этом свободно по своему усмотрению использовать другие биты этого же порта?

_________________
Не умеешь - не берись, но не взявшись не научишься...


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт июл 19, 2011 06:57:25 
Модератор
Аватар пользователя

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Как организовать побитовый вывод регистра общего назначения в 1 выход порта микроконтроллера?

Анализировать крайний бит РОН (левый или правый, смотря с какой стороны выводить), в зависимости от его состояния устанавливать или сбрасывать бит порта, затем сдвигать содержимое РОН влево/вправо

Цитата:
при этом свободно по своему усмотрению использовать другие биты этого же порта?

А при чём тут они? Как их настроите, так и будут работать.

----------

Во, даже отрыл пример вывода 6 байт из памяти на сдвиговый регистр:

Код:
print:
ldi XH,high(display_buf+6)
ldi XL,low(display_buf+6)
ldi rx1,6 ; выводим 6 байт с конца

print_0:
  ld rx3,-X ; в rx3 - выводимый байт
  ldi rx2,8 ; в rx2 - счётчик до 8
  print_1:  ; data_port,data_bit - куда выводим
    sbrc rx3,0
    sbi data_port,data_bit
    sbrs rx3,0
    cbi data_port,data_bit
    push_imp
    lsr rx3
    dec rx2
    brne print_1
  dec rx1
  brne print_0
ret


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

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
ploop писал(а):
Цитата:
Как организовать побитовый вывод регистра общего назначения в 1 выход порта микроконтроллера?

Анализировать крайний бит РОН (левый или правый, смотря с какой стороны выводить), в зависимости от его состояния устанавливать или сбрасывать бит порта, затем сдвигать содержимое РОН влево/вправо


Т.е. преобразовать параллельный код в последовательный. Можно закинуть его в регистр данных SPI, и он сделает это автоматически. Конечно, SPI должен быть настроен и ничем другим не занят.


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

Карма: 6
Рейтинг сообщений: 11
Зарегистрирован: Сб мар 07, 2009 20:44:36
Сообщений: 4435
Рейтинг сообщения: 0
Спасибо за помощь :)
Вчера еще организовал так:
копирует младший бит регистра в бит Т SREG, а потом сдвигаем содержимое регистра, вставляем этот бит в другой регистр - надеваем на него маску - и выводим на порт:)

_________________
Не умеешь - не берись, но не взявшись не научишься...


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

Карма: 68
Рейтинг сообщений: 424
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Сообщений: 13490
Откуда: Тамбовская обл.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
копирует младший бит регистра в бит Т SREG, а потом сдвигаем содержимое регистра, вставляем этот бит в другой регистр - надеваем на него маску - и выводим на порт:)

Можно и так, но посчитай количество тактов на один проход :) Самым оптимальным (что я смог придумать) оказалось это:
Код:
    sbrc Rx,0
    sbi port,bit
    sbrs Rx,0
    cbi port,bit


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт июл 19, 2011 16:27:49 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
Arlleex писал(а):
Вчера еще организовал так:
копирует младший бит регистра в бит Т SREG, а потом сдвигаем содержимое регистра, вставляем этот бит в другой регистр - надеваем на него маску - и выводим на порт:)


Бит Т может обмениваться содержимым не только с младшим, но с любым битом РОН. Правда, если речь идет о передаче всех битов РОН, то вышесказанное в цикле не катит. Остается решить - что важнее: быстродействие или затраты памяти. В первом случае -- повторить эту пару команд BST - BLD 8 раз :)


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

Карма: 27
Рейтинг сообщений: 33
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Сообщений: 6296
Откуда: Ukraine
Рейтинг сообщения: 0
вопрос:
какая разница между инструкцией и директивой ? :dont_know:
раньше я думал что это синонимы............. :tea:

_________________
Tell Me The Truth


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

Карма: 4
Рейтинг сообщений: 41
Зарегистрирован: Пт янв 30, 2009 14:50:35
Сообщений: 635
Откуда: Солнечногорск
Рейтинг сообщения: 0
Директива -- это приказ транслятору что-то там сделать (выделить память под переменную, установить адрес, с которого будет размещаться следующий код и т.д.). А инструкция или команда -- то, что будет выполняться процессором при работе программы.


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

Зарегистрирован: Пн дек 17, 2007 13:15:43
Сообщений: 136
Рейтинг сообщения: 0
Господа. Прошу вашей помощи в вопросе который давно не даёт покоя.

Имеет некоторую, байтовую переменную, которую необходимо просуммировать с регистровой парой:

.def r14 = indx

add XL,indx
clr r16
adc XH,r16

или:

.def r14 = indx

clr r16
add XL,indx
adc XH,r16

Но вот раздражает необходимость чистить вспомогательный регистр, в данном случае r16 для того что-бы выполнить сложение со знаком переноса (carry).

Конечно можно организовать регистр который будет всегда равен "0x00":
.def r13 = zero
И далее сложение с переносом делать с этим самым регистром:

add XL,indx
adc XH,zero

Ну вот регистра жалко :)

Можно сделать и так:

com XH
add XL,indx
sbci XH,low(0x00)
com XH

Или при помощи инструкций типа BRxx, но здесь растёт число инструкций, что тоже не греет душу.

Эдакая задачка для эрудиции :)

_________________
Боишся - не делай. Делаешь - не бойся.


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

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19734
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
john_rise писал(а):
Эдакая задачка для эрудиции

Собсно, где задача?

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср июл 20, 2011 21:15:23 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн дек 17, 2007 13:15:43
Сообщений: 136
Рейтинг сообщения: 0
Задача отмахнуться минимумом строк и желательно не прибегать к дополнительному регистру.

Вообще я хочу посмотреть другие варианты.

_________________
Боишся - не делай. Делаешь - не бойся.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 21, 2011 00:32:59 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 52
Зарегистрирован: Чт дек 31, 2009 19:27:45
Сообщений: 842
Откуда: Бровари, Україна
Рейтинг сообщения: 0
Вариант с занулённым регистром может быть оптимальным. Регистров довольно много, а при частых операциях var16 += var8 экономия одной команды может быть существенной.

john_rise писал(а):
Или при помощи инструкций типа BRxx, но здесь растёт число инструкций, что тоже не греет душу.
Не сильно и растёт
Код:
    add XL,indx
    brcc noinc
    inc XH
noinc:
Ни по словам, ни по тактам не длиннее

john_rise писал(а):
Код:
    add XL,indx
    clr r16
    adc XH,r16

А ещё вопрос -- откуда взялись значения XL, XH. Если они только что загрузились константами, то, как я уже писал в этой теме несколько страниц назад, лучше всего не так
Код:
    ldi XL, low(table)
    ldi XH, high(table)
    add XL,indx
    clr r16
    adc XH,r16
или так
Код:
    ldi XL, low(table)
    ldi XH, high(table)
    add XL,indx
    adc XH, ZERO_REG

а так:
Код:
    mov XL,indx
    clr XH
    subi XL, low( -table)
    sbci XH, high( -table)
По длине как второй вариант, но не требует постоянно выделенного доп. регистра.
По сравнению с первым вариантом и короче, и даже временно не требует доп регистра.

_________________
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт июл 21, 2011 01:08:27 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вт фев 16, 2010 12:10:38
Сообщений: 268
Откуда: Воронеж, Россия
Рейтинг сообщения: 0
avreal , полностью согласен, только писать надо не table, а (table*2), как например здесь viewtopic.php?f=20&t=5931&start=1600


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

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
IM1 писал(а):
avreal , полностью согласен, только писать надо не table, а (table*2)

справедливо если table расположено во флеше, а вот если в EEPROMе или RAMе...

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


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

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
GP1 писал(а):
справедливо если table расположено во флеше, а вот если в EEPROMе или RAMе...


При этом надо учитывать, конечно, что в случае EEPROM это решает только часть проблемы - ставит указатель на нужный адрес, а достучаться до этого адреса все равно только с помощью установленного ритуала, а не просто ld, st.
Интересно, что в очень примитивном МК ST6260 ( от STM ) доступ к EEPROM был намного проще : там было окно, в которое настройкой битов в регистре можно было "высунуть" то ли часть ОЗУ, то ли EEPROM, и можно было адресоваться как к обычному ОЗУ.


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

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


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

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


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

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


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