Например TDA7294

Форум РадиоКот • Просмотр темы - програмирование AVR на АСЕМБЛЕРЕ для чайников
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб фев 28, 2026 06:53:15

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


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



Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 119 ]  1, , , , ,  
Автор Сообщение
 Заголовок сообщения: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Ср янв 19, 2011 18:24:27 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 781
Откуда: ковров
Рейтинг сообщения: 0
доброго времени суток.
решил вот заняться микроконтролерами. остановился на AVR-овских. язык выбрал асемблер. НО. в книжках нет токго что надо моим мозгам. а надо им таблицу команд. нет, в книжках это все конечно есть, но там либо разбросано все по страницам, либо описание уж очень подробное. а мне надо всего лиш таблицу с краткими описаниями.
наприме:

SBI PORTd,0 ; перевод вывода микропроцессора d0 в логическую 1 ## d,0 d,1 ... d7 b,0 ... b,7 a,0 ... a,7 d,0 ... d,7 ##

CBI PORTd,0 ; перевод вывода микропроцессора d0 в логический 0 ## d,0 d,1 ... d7 b,0 ... b,7 a,0 ... a,7 d,0 ... d,7 ##

MOV m1,m2 ; перенос значения m2 в m1

JMP m1 ; переход к строке m1

где, например, верхним регистром (либо другим цветом, шрифтом и тд) написано неизменные команды, символы, слова и тд. а нижним регистром - меняемые. ну или как то так.

помогите уж начинающему программисту :)))
может есть у кого заготовки подобные, поделитесь
или направьте меня в нужную сторону не завязывая мне глаза.

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Ср янв 19, 2011 18:53:57 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Загляните в нашу обучалку. Там кое, что есть на простом языке.
Вообще, большинство микроконтроллеров AVR поддерживают около 70 инструкций.
Из них только 30 инструкций Вам хватит на всю жизнь. Желаете изучить их всех? :)
Ссылка в обучалку: http://radiokot.ru/start/mcu_fpga/avr/
Ссылка в русскоязычный справочник по AVR ASM: http://ico.aha.ru/h/avrasm-rus.htm

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Ср янв 19, 2011 23:03:10 
Друг Кота
Аватар пользователя

Карма: 28
Рейтинг сообщений: 267
Зарегистрирован: Ср сен 27, 2006 16:18:57
Сообщений: 3459
Рейтинг сообщения: 0
Программирования на ассемблере для чайников не бывает.


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Ср янв 19, 2011 23:19:18 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 33
Зарегистрирован: Пт июн 04, 2010 17:40:13
Сообщений: 544
Откуда: Непокорный город-герой Севастополь
Рейтинг сообщения: 0
Барсик писал(а):
Программирования на ассемблере для чайников не бывает.

Согласен на все сто! Как то в университете изучал АСМ для 580 проца(кто не знает что это за проц - Гугл рулит) - это был КОШМАР на весь семестр!!! А изучить надо было очень много команд, сейчас уже не помню, но кажется более 200 команд... В итоге я зарёкся никогда не писать на АСМе. Пишу только на С.

_________________
Даже у стен есть уши...


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Чт янв 20, 2011 10:17:34 
zhu4er писал(а):
Как то в университете изучал АСМ для 580 проца(кто не знает что это за проц - Гугл рулит) - это был КОШМАР на весь семестр!!! А изучить надо было очень много команд, сейчас уже не помню, но кажется более 200 команд... В итоге я зарёкся никогда не писать на АСМе. Пишу только на С.

Тут всё зависит от человека. А вот мне наоборот. Я очень хорошо знаю ассемблер Z-80 (а там команд поболее, чем у 580 проца), а вот с Си у меня не сложилось. И для АВР я пишу на асме.


Вернуться наверх
   
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Чт янв 20, 2011 12:13:41 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Барсик писал(а):
Программирования на ассемблере для чайников не бывает.
... хуже другое - многие, из тех кто начал изучать и не разобрался ставят крест на ассемблере. А вообще профи не рождаются ... и в том или ином вопросе - все "чайники" :)
Цитата:
Из них только 30 инструкций Вам хватит на всю жизнь
чем больше инструкций - тем гибче язык, потому и не нравятся ПИКи, хотя опять же на любителя.
ИМХО Лучший способ изучения - попробовать написать что то свое ( или модифицировать имеющееся)


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Чт янв 20, 2011 17:39:47 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 781
Откуда: ковров
Рейтинг сообщения: 0
мяу-мяу-мяу....
разогнались...
когда то же и вы сами были чайниками. и в асм были чайниками и начинали изучение асм чайниками.... а говорите асм не для чайников...
конечно возможно вы выразились так имея ввиду что чайник это полный НОЛЬ в радиотехнике. я не такой чайник. радиотехникой я занимаюсь уже 16 лет (щас мне 22). а сейчас решил освоить МК. принцип работы вроде знаю. простенькие программки пишу.

я всего лиш спросил нет ли у кого таблицы команд.
хочу освоить асм. из процов мне доступны только at90s2313, atmega16, atmega32. точнее будет сказать не доступно (ибо в наше время хохлы привезут тебе все что угодно), а есть в наличии у меня. хочу начать с at90s2313.

вобщем короче говоря вопрос стоял НЕ в том "можно ли чайнику начать заниматься МК на асм", а втом "нет ли у вас таблицы команд".

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Чт янв 20, 2011 19:42:03 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
xkp писал(а):
всего лиш спросил нет ли у кого таблицы команд
таблица команд c примерами и описаниями встроена в пакет AVR Studio. Если просто потренироваться, то ставьте версию 3.56 - не замет много места и at90s2313, atmega16, atmega32 поддерживаютcя средой.
Или можно 4.17 или 4.18 - скачиваются не обязательно с сайта Atmel :) http://www.mymcu.ru/Software/Software.htm ... ну и до кучи WinAvr.
ИМХО Самый лучший способ изучить - начать пробовать. Если чего то не ясно будет - поможем :)


Последний раз редактировалось ChipKiller Чт янв 20, 2011 19:56:33, всего редактировалось 1 раз.

Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Чт янв 20, 2011 19:56:31 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Вот справочник по ASM
Ссылка в русскоязычный справочник по AVR ASM: http://ico.aha.ru/h/avrasm-rus.htm

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Чт янв 20, 2011 21:21:46 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 781
Откуда: ковров
Рейтинг сообщения: 0
Спасибо. Почти то что мне и надо.

По поводу avr-study она у меня давно есть. Шить умею. Шью ПОНИ-ПРОГом через лтп. Ну а так как с английским я не в ладах обратился к вам. Надоело копировать чужое. Хочется своего...

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Пт янв 21, 2011 15:45:59 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15486
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
я так понимаю, хотелось человеку видеть нечто подобное:
:beer:


Вложения:
шаблон_команд_AVR.pdf [59.9 KiB]
Скачиваний: 1097
Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Пт янв 21, 2011 18:34:01 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 33
Зарегистрирован: Пт июн 04, 2010 17:40:13
Сообщений: 544
Откуда: Непокорный город-герой Севастополь
Рейтинг сообщения: 0
Офигенно! Даже мне понравилось!!! +100500

_________________
Даже у стен есть уши...


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 00:31:59 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб май 30, 2009 00:51:42
Сообщений: 39
Откуда: Россия, г. Курск
Рейтинг сообщения: 0
Даташит на МК - самый верный источник информации, в том числе и об инструкциях.
А английский надо учить, пригодится

_________________
"Никогда не опускайся чего б тебе ни стоило, как бы ни было плохо.
А если отступил и сдал немного, то, считай, душа продалась и сдохла!
Честь и кровь - сохрани свою совесть, свобода и любовь - вот она русская гордость"


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 18:33:02 
Друг Кота
Аватар пользователя

Карма: 77
Рейтинг сообщений: 1247
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7518
Рейтинг сообщения: 0
+1

Без знания английского в электронике сейчас делать нечего - элементарно не поймете документации на актуальные компоненты.

Что до команд - совершенно необязательно учить их, а, тем более, учить все. Это просто не нужно - некоторые из них вообще преимущественно используются только компиляторами. Я например, когда пишу на асме, не стесняюсь использовать встроенный в AVR Studio справочник по ассемблеру. Тем более, что все команды ассемблера довольно прозрачно названы. Например, sbrs. Казалось бы, непонятно? На самом деле все очевидно и ясно - Skip [next instruction if] Bit [in] Register [is] Set. И, кстати, опять помогает английский... Т.о., вместо тупого заучивания имеем стройную систему интуитивно понятных команд. Ну и, естесственно, по названию вышеприведенной инструкции можно догадаться, что первый аргумент должен быть интересующим регистром, а второй - порядковым номером проверяемого бита. Также представляются и все остальные команды, что делает заучивание ненужным.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 18:48:48 
Родился
Аватар пользователя

Зарегистрирован: Чт июн 03, 2010 21:21:20
Сообщений: 8
Рейтинг сообщения: 0
У меня проц. AT Mega8 - 16Pi пытаюсь заставить ШИМ работать в режимах с 8 по 15 .

пишу :
ldi temp, 0b00000001
out TCCR1A, temp
ldi temp, 0b00010001
out TCCR1B, temp

(выбираю 9 режым)

но при эмуляции в MV LAB почему то бит 4 регистра TCCR1B не устанавливается :cry: и ШЫМ при этом работает в режиме 1.
а так все работает без ошибок.

помогите пожалуйста !!!


Вложения:
1.jpg [85.96 KiB]
Скачиваний: 505


Последний раз редактировалось albert222 Сб янв 22, 2011 19:04:16, всего редактировалось 1 раз.
Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 18:53:23 
Опытный кот
Аватар пользователя

Карма: 1
Рейтинг сообщений: 22
Зарегистрирован: Ср ноя 18, 2009 12:50:31
Сообщений: 781
Откуда: ковров
Рейтинг сообщения: 0
BOB51 писал(а):
я так понимаю, хотелось человеку видеть нечто подобное:
:beer:


несовсем то... писал в самом начале что мне надо

xkp писал(а):
... например:

SBI PORTd,0 ; перевод вывода микропроцессора d0 в логическую 1 ## d,0 d,1 ... d7 b,0 ... b,7 a,0 ... a,7 d,0 ... d,7 ##

CBI PORTd,0 ; перевод вывода микропроцессора d0 в логический 0 ## d,0 d,1 ... d7 b,0 ... b,7 a,0 ... a,7 d,0 ... d,7 ##

MOV m1,m2 ; перенос значения m2 в m1

JMP m1 ; переход к строке m1

где, например, верхним регистром (либо другим цветом, шрифтом и тд) написано неизменные команды, символы, слова и тд. а нижним регистром - меняемые. ну или как то так..

_________________
R5VCH
Хотелки:
СпойлерАналоговый осциллограф С1-112, С1-118, другие
не/рабочие модули от комплекса ОДА-102
всё что касается AVR, arduino, raspberry
всё что касается КВ-УКВ-радиосвязи, mashtastic


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 19:46:44 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб май 30, 2009 00:51:42
Сообщений: 39
Откуда: Россия, г. Курск
Рейтинг сообщения: 0
YS писал(а):
Что до команд - совершенно необязательно учить их, а, тем более, учить все. Это просто не нужно - некоторые из них вообще преимущественно используются только компиляторами. Я например, когда пишу на асме, не стесняюсь использовать встроенный в AVR Studio справочник по ассемблеру. Тем более, что все команды ассемблера довольно прозрачно названы. Например, sbrs. Казалось бы, непонятно? На самом деле все очевидно и ясно - Skip [next instruction if] Bit [in] Register [is] Set. И, кстати, опять помогает английский... Т.о., вместо тупого заучивания имеем стройную систему интуитивно понятных команд. Ну и, естесственно, по названию вышеприведенной инструкции можно догадаться, что первый аргумент должен быть интересующим регистром, а второй - порядковым номером проверяемого бита. Также представляются и все остальные команды, что делает заучивание ненужным.


Хотелось бы добавить, что после 1-2 написанных вами программ для AVR на чистом асме уже что-то отложится в голове, и справочник по командам будет нужен, если используете какую-нибудь редкую команду, например bset =)

_________________
"Никогда не опускайся чего б тебе ни стоило, как бы ни было плохо.
А если отступил и сдал немного, то, считай, душа продалась и сдохла!
Честь и кровь - сохрани свою совесть, свобода и любовь - вот она русская гордость"


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 20:06:51 
Друг Кота
Аватар пользователя

Карма: 77
Рейтинг сообщений: 1247
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7518
Рейтинг сообщения: 0
Истину глаголете, simpleX. Да и справочник-то всегда под рукой. :) Курсор на bset -> F1.

Правда справка тоже на английском. :wink:

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 20:24:55 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1505
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15486
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
xkp писал(а):
BOB51 писал(а):
я так понимаю, хотелось человеку видеть нечто подобное:
:beer:


несовсем то... писал в самом начале что мне надо

xkp писал(а):
... например:

SBI PORTd,0 ; перевод вывода микропроцессора d0 в логическую 1 ## d,0 d,1 ... d7 b,0 ... b,7 a,0 ... a,7 d,0 ... d,7 ##

CBI PORTd,0 ; перевод вывода микропроцессора d0 в логический 0 ## d,0 d,1 ... d7 b,0 ... b,7 a,0 ... a,7 d,0 ... d,7 ##

MOV m1,m2 ; перенос значения m2 в m1

JMP m1 ; переход к строке m1

где, например, верхним регистром (либо другим цветом, шрифтом и тд) написано неизменные команды, символы, слова и тд. а нижним регистром - меняемые. ну или как то так..


ну тогда извольте распечатать и изучить сей материал:
http://atmel.com/dyn/resources/prod_doc ... oc0856.pdf
более того, что дает изготовитель придумать сложно :))
ну и в добавку, дотошно проштудировать даташиты по каждой из изучаемых/применяемых/ микросхем :cry:


Вернуться наверх
 
 Заголовок сообщения: Re: програмирование AVR на АСЕМБЛЕРЕ для чайников
СообщениеДобавлено: Сб янв 22, 2011 21:46:20 
Открыл глаза

Зарегистрирован: Вт дек 28, 2010 22:24:32
Сообщений: 49
Рейтинг сообщения: 0
Не стал создавать новую тему так как я тоже начинающий и возник вопрос с асемблером. Написал программку где в главной функции вызываются по очереди 2 функции. Проще говоря вызывается функция моргают 2 светодиода, вызывается другая то там один загорится другой потухнет и так далее. Но почему то он после вызова первой функции не переходит ко второй.

Код:
.device ATmega8515
.nolist
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m8515def.inc"
.list

;=================
;Объявления:

.def temp=r16
.def Delay1=r17
.def Delay2=r18
.def Delay3=r19
.def temp2=r20
;=================
;Начало программы

rjmp Init

;=================
Init:
   ldi temp,high(RAMEND)
      out SPH,temp
      ldi temp,low(RAMEND)
      out SPL, temp

   ldi temp, 0b1111111         ;Определяем входы и выходы порта В
   out DDRA, temp              ;
   
   
   
;=================
;Основное тело программы
Start:
   
   ldi temp2, 5
   Wait_main_1:
      rcall Run2
      dec temp2
      brne Wait_main_1

   ldi temp2, 5
   Wait_main_2:
      rcall Run1
      dec temp2
      brne Wait_main_2
rjmp Start

Run1:
   ldi temp, 0b00000010
   out PortA, temp
   ldi temp2, 10
   Wait1_1:
      rcall Wait
      dec temp2
      brne Wait1_1
   ldi temp, 0b00000100   
   out PortA, temp
   ldi temp2, 10
   Wait1_2:
      rcall Wait
      dec temp2
      brne Wait1_2   
   ret

Run2:
   sbi PortA,1
   sbi PortA,2
   ldi temp2,10
   Wait2_1:
      rcall Wait
      dec temp2
      brne Wait2_1
   cbi porta,1
   cbi porta,2
   ldi temp2,10
   Wait2_2:
      rcall Wait
      dec temp2
      brne Wait2_2
   ret
;задержка на доли секунды
Wait:
   clr Delay1
   ldi Delay2,0x30
   ldi Delay3,0x00
Loop:
   subi Delay1,1
   sbci Delay2,0
   sbci Delay3,0
   brcc Loop
   ret


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 119 ]  1, , , , ,  

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


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

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


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