AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ks0
Прорезались зубы
Сообщения: 231
Зарегистрирован: Чт фев 28, 2013 14:16:10

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение ks0 »

Vadim.S писал(а):записать в три РОН три шестнадцатеричных числа, произвести суммирование данных РОН и записать результат суммирования в четвертый РОН без переноса.

Отсюда и далее че-то не сходится дебет с кредитом, или AVR 16-ричные стали, или об ARM речь идет.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Engineer_Keen »

ks0 писал(а):Отсюда и далее че-то не сходится дебет с кредитом, или AVR 16-ричные стали, или об ARM речь идет.

Не путайте шестнадцатеричные (это форма записи числа) с шестнадцатиразрядными (это разрядность ядра).
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Pnjom-Penb »

Vadim.S писал(а):1.Ассемблер-программа должна записать в три РОН три шестнадцатеричных числа, ...
Абсолютно исключено! РОНы могут хранить только двоичные числа и никакие другие в них не записать. :dont_know:
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: AVR studio в вопросах и ответах

Сообщение akl »

Код: Выделить всё

LDI R22,$FF
LDI R22,0xFF
LDI R22,0b11111111
LDI R22,255
LDI R22,-1
Vadim.S
Родился
Сообщения: 4
Зарегистрирован: Ср сен 30, 2015 08:44:46

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Vadim.S »

Engineer_Keen писал(а):
Vadim.S писал(а):Здравствуйте уважаемые форумчане!Нужна помощь с решением заданий с помощью программы AVRStudio.Если у вас есть время удилите 10 вашего драгоценного времени)

Правильная тема вот. В чем разница? Помогают это когда человек пытается что-то сделать, но у него не все получается, а когда просто вываливают задачу - это именно "сделайте за меня" :dont_know:
Vadim.S писал(а):1.Ассемблер-программа должна записать в три РОН три шестнадцатеричных числа, произвести суммирование данных РОН и записать результат суммирования в четвертый РОН без переноса.

найти в документации на ассемблер AVR 3 нужные команды из сотни и скомбинировать из них последовательность в 7 строчек...
Смотрите ТУТ.
Vadim.S писал(а):2.Ассемблер-программа должна инициализировать микроконтроллер, задав внутренний источник тактового сигнала (RC-генератор) частотой 1,0 МГц. Для работы периферийных устройств задать коэффициент

Вообще-то источник тактирования задается фьюзами... Программно можно только поменять делитель, да и то не везде.
Смотреть ТУТ
Vadim.S писал(а):3.Ассемблер-программа должна сконфигурировать разряды 8-разрядного порта как входы и при приеме сигнала отличного от нуля, записать значение в РОН (R16)$ = (PINx)$+(R16)$

Не особо отличается от предыдущего, только надо еще смотреть как устроены порты в AVR
Vadim.S писал(а):4.Ассемблер-программа должна сконфигурировать аналоговый компаратор (включить компаратор, разрешить прерывание от компаратора), сгенерировать прерывание по изменению состояния выхода компаратора с «1» на «0», записать результат сравнения в ячейку памяти по адресу 0001$
5.Ассемблер-программа должна сконфигурировать АЦП (включить АЦП, разрешить прерывание от АЦП, режим работы – одиночное преобразование, частота тактового сигнала АЦП – двукратная по отношению к тактовому сигналу МК), запустить АЦП в режиме ADC Noise Reduction, сгенерировать прерывание от АЦП, записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL

Такая же фигня, правда написано как-то коряво... Сгенерировать прерывание где? В симуляторе чтоли? Тогда ладно. Частота тактового сигнала АЦП двукратная по отношению к тактовой МК это шИдевр! Учитывая что вся периферия тактируется от тактовой МК. Ну предположим что это корявая опечатка, вот в 2 раза меньше можно...
Vadim.S писал(а):Учусь на экономиста а преподаватель озадачил по Информатике.Выручайте

Учусь на механизатора, но препод по анатомии зачем-то требует знать сколько у человека костей в организме :facepalm:
Вот извините, но что-то не верится, серьезно... Почему почти все кто попадает в ту тему говорят примерно одно и то же? Сейчас что, во всех учебных заведениях на уроках информатики проходят 8-битные микроконтроллеры, да еще и ассемблер? Вот везет же людям!


Я попросил помочь поскольку эти задачи к моей профессии не какого отношения не имеют.Если вы не хотели помогать даже писать ничего не нужно.На пример когда у вас допустим идёт судебное разберательство вы приходите к юристу он же вам не даёт ссылки И не говорит:,,На вот тебе информация сам разберайся и защищай себя сам"Щас конешно же какой то умник напишет что я плачу ему за это деньги,но тут речь не об этом,а о взаимовыручке, я догадываюсь что эти задания для вас как семечки!Так почему же не помочь безвозмездно,и так общество катится в пропасть.Не какой взаимовыручки,а одни упрёки.Если у вас не было желания помочь так зачем тогда вообще коментировать запись?Ради увелечения количества сообщений указанных в вашем профиле!?
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Engineer_Keen »

Vadim.S писал(а):Я попросил помочь поскольку эти задачи к моей профессии не какого отношения не имеют.

Мне и моим одногруппникам в институте пришлось изучить экономику, менеджмент, маркетинг, психологию, социологию, философию, основы права и еще х.з. что, при том что учились мы на инженеров, жизнь несправедлива, ага.
Vadim.S писал(а):Так почему же не помочь безвозмездно,и так общество катится в пропасть.

Так может общество и катится в пропасть из-за недоучек?
Vadim.S писал(а):Если у вас не было желания помочь так зачем тогда вообще коментировать запись?Ради увелечения количества сообщений указанных в вашем профиле!?

Да, а еще поглумиться и поиздеваться :))) :kill:
Вот вам 5-е, т.к. самое сложное. Все за вас никто делать не будет, ну разве что очень добрые люди, которым делать нечего. Попробуете сделать 1-е и покажете тут что (не)получилось, тогда остальное посмотрим :P
Спойлер

Код: Выделить всё

.include "m8def.inc" ;т.к. модель вы один фиг не сказали, будем работать на Mega8

.cseg
.org 0
RJMP START
.org ADCCaddr
RJMP   READ_ADC
START:
LDI R16,Low(Ramend)
OUT   SPL,R16
LDI R16,High(Ramend)
OUT   SPH,R16
LDI R16,(1<<ADEN)|(1<<ADIE) ;включить АЦП, разрешить прерывание от АЦП, режим работы – одиночное преобразование, частота тактового сигнала АЦП 1/2 Fclk
OUT ADCSRA,R16
SEI
LDI R16,(1<<SE)|(1<<SM0) ;режим ADC Noise Reduction
SBI   ADCSRA,ADSC ;запустить АЦП
SLEEP
LOOP:
RJMP LOOP
READ_ADC:
IN R16,ADCL
IN R17,ADCH
PUSH R16 ;записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL
PUSH R17
RETI

Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Vadim.S
Родился
Сообщения: 4
Зарегистрирован: Ср сен 30, 2015 08:44:46

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Vadim.S »

Engineer_Keen писал(а):
Vadim.S писал(а):Я попросил помочь поскольку эти задачи к моей профессии не какого отношения не имеют.

Мне и моим одногруппникам в институте пришлось изучить экономику, менеджмент, маркетинг, психологию, социологию, философию, основы права и еще х.з. что, при том что учились мы на инженеров, жизнь несправедлива, ага.
Vadim.S писал(а):Так почему же не помочь безвозмездно,и так общество катится в пропасть.

Так может общество и катится в пропасть из-за недоучек?
Vadim.S писал(а):Если у вас не было желания помочь так зачем тогда вообще коментировать запись?Ради увелечения количества сообщений указанных в вашем профиле!?

Да, а еще поглумиться и поиздеваться :))) :kill:
Вот вам 5-е, т.к. самое сложное. Все за вас никто делать не будет, ну разве что очень добрые люди, которым делать нечего. Попробуете сделать 1-е и покажете тут что (не)получилось, тогда остальное посмотрим :P
Спойлер

Код: Выделить всё

.include "m8def.inc" ;т.к. модель вы один фиг не сказали, будем работать на Mega8

.cseg
.org 0
RJMP START
.org ADCCaddr
RJMP   READ_ADC
START:
LDI R16,Low(Ramend)
OUT   SPL,R16
LDI R16,High(Ramend)
OUT   SPH,R16
LDI R16,(1<<ADEN)|(1<<ADIE) ;включить АЦП, разрешить прерывание от АЦП, режим работы – одиночное преобразование, частота тактового сигнала АЦП 1/2 Fclk
OUT ADCSRA,R16
SEI
LDI R16,(1<<SE)|(1<<SM0) ;режим ADC Noise Reduction
SBI   ADCSRA,ADSC ;запустить АЦП
SLEEP
LOOP:
RJMP LOOP
READ_ADC:
IN R16,ADCL
IN R17,ADCH
PUSH R16 ;записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL
PUSH R17
RETI



вообще с програмированием сталкивался только в школе
add r1,r2,r3
mov r4,r1
вот что удалось сделать прочитав про команды этой программы сложение рон и перенос все сложенных в одну и то я думаю что фигня какая то получилось.Понял что не моё это.Причём понял ещё в школе когда программировали на паскале
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Engineer_Keen »

Vadim.S писал(а):вообще с програмированием сталкивался только в школе
add r1,r2,r3
mov r4,r1
вот что удалось сделать прочитав про команды этой программы сложение рон и перенос все сложенных в одну и то я думаю что фигня какая то получилось.Понял что не моё это.Причём понял ещё в школе когда программировали на паскале

Ну не фигня, логика есть, понятно что нет знаний по ассемблеру конкретно AVR.
Во первых числа же загрузить надо:
LDI R16,0x01 ;загружаем 3 произвольных шестнадцатеричных числа
LDI R17,0x0A ;в R16,R17,R18 потому как загружать константы можно только в старшие 16 регистров
LDI R18,0x0F
А складывать можно только по 2 числа или регистра:
ADD R16,R17
ADD R16,R18
Ну а последнее сделано правильно, только с учетом вышеизложенного:
MOV R4,R16
Подскажу насчет второго. Источник тактирования выбирается фьюзами, т.е. непосредственно при программировании. Единственное что тут можно сделать, это использовать делитель тактовой, который настраивается через регистр CLKPR. Он есть далеко не во всех AVR. Что же касается коэффициентов периферии, то опять же, какой периферии? У АЦП за него отвечают биты ADPS регистра ADCSRA, у UART регистры UBRRH:UBRRL, у SPI и TWI тоже свои делители.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение Alexeyslav »

PUSH R16 ;записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL
PUSH R17
RETI

Ааайй.... и куда мы улетим при выполнении команды RETI? она же из стека вытянет адрес возврата... а там, эта фигня лежит! Получится переход по принципу "куда бог пошлёт".

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


Одно могу еще сказать - изучать экономику гораздо сложнее чем микроконтроллеры. Документация к AVR-контроллерам на удивление максимально полна и логична, надо только английский знать(а для экономики этого не нужно?) и уметь читать.
Вобщем-то понятно зачем ЭТО изучать экономисту - задания вобщем-то очень простые чтобы разобраться с ними в ограниченные сроки, а с другой стороны они раскрывают тайну больших шайтан-машин которые экономисты называют процессорами, и на которых вся эта экономика считается в числах.
И чтобы знать как эти шайтан-машины работают изучают такие простейшие их представители как микроконтроллеры.
Скажи спасибо, что вас не заставляют осваивать умножение/деление на МК...
Кстати, можно ан русском языке скачать описание системы команд контроллера, немного поработав с таким документом приходит понимание как их применять начиная с 1-й задачи и продвигаясь далее.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: AVR studio в вопросах и ответах

Сообщение Engineer_Keen »

Alexeyslav писал(а):Ааайй.... и куда мы улетим при выполнении команды RETI? она же из стека вытянет адрес возврата... а там, эта фигня лежит! Получится переход по принципу "куда бог пошлёт".

Да там все задачки один фиг абстрактные, сказали в стек положить, я и положил, без заморочек, все равно никто в железе проверять не будет. Ну да, в итоге будет переход в произвольное место и с вероятностью 99% (т.к. почти весь флешь свободен) - сброс по причине Invalid Opcode.
Alexeyslav писал(а):Кстати, можно ан русском языке скачать описание системы команд контроллера, немного поработав с таким документом приходит понимание как их применять начиная с 1-й задачи и продвигаясь далее.

Да, я как раз в первом посте ссылку на gaw дал, там перевод описания команд в том числе.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
Akula
Открыл глаза
Сообщения: 48
Зарегистрирован: Ср дек 09, 2009 20:48:46

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Akula »

Я попросил помочь поскольку эти задачи к моей профессии не какого отношения не имеют.Если вы не хотели помогать даже писать ничего не нужно.На пример когда у вас допустим идёт судебное разберательство вы приходите к юристу он же вам не даёт ссылки И не говорит:,,На вот тебе информация сам разберайся и защищай себя сам"Щас конешно же какой то умник напишет что я плачу ему за это деньги,но тут речь не об этом,а о взаимовыручке, я догадываюсь что эти задания для вас как семечки!Так почему же не помочь безвозмездно,и так общество катится в пропасть.Не какой взаимовыручки,а одни упрёки.Если у вас не было желания помочь так зачем тогда вообще коментировать запись?Ради увелечения количества сообщений указанных в вашем профиле!?[/quote]

Сдаётся мне, что Вы лукавите молодой человек. С трудом верится, что будующего экономиста вынуждают изучать алгоритмы работы машинно-ориентированных команд, рассчитанных на применение конректного микроконтроллера. Информатика это не тот предмет где ставятся подобные задачи. Присоединяюсь к ответу:

Vadim.S писал(а):
Учусь на экономиста а преподаватель озадачил по Информатике.Выручайте

Учусь на механизатора, но препод по анатомии зачем-то требует знать сколько у человека костей в организме :facepalm:
Вот извините, но что-то не верится, серьезно... Почему почти все кто попадает в ту тему говорят примерно одно и то же? Сейчас что, во всех учебных заведениях на уроках информатики проходят 8-битные микроконтроллеры, да еще и ассемблер? Вот везет же людям!
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение Alexeyslav »

Да всё норм, у нас экономисты по информатике тоже проходили команды КР580ВМ80. Конечно, они прошли по принципу сегодня выучили - завтра забыли, но это необходимо потому что экономика сейчас неразделима с вычислениями, а все вычисления происходят на машинах. Нужно знать как работает эта шайтан-машина чтобы не наступать ан одни и те же грабли пытаясь составлять вычислительные алгоритмы. Как еще дальше надо будет объяснять экономистам, что компьютер имеет принципиальное ограничение по точности операций с числами, из-за чего на сложных вычислениях накапливается приличная ошибка?
Это нужно пройти самостоятельно. Благо задачи не сложные и полная документация доступна.
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение prinv »

Поставил себе Atmel Studio 7 - некоторые дефайны (типа F_CPU) и функции (например, atoi()) стали писаться курсивом. Почему?
Никакая контра не уйдёт от нас
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: AVR studio в вопросах и ответах

Сообщение Engineer_Keen »

Наверно в настройках редактора так задано. А что значит "некоторые"? По идее одинаковые категории слов должны и выделяться одинаково...
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение prinv »

Вот как это выглядит
Вложения
Скриншот 2015-10-02 14.28.00.png
(3.48 КБ) 448 скачиваний
Скриншот 2015-10-02 14.27.00.png
(2.92 КБ) 390 скачиваний
Скриншот 2015-10-02 14.26.02.png
(2.36 КБ) 459 скачиваний
Никакая контра не уйдёт от нас
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: AVR studio в вопросах и ответах

Сообщение Engineer_Keen »

А есть все таки какие-нибудь настройки у редактора? Типа выделять стандартные функции и переменные или что-то вроде того... Может там ответ.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Аватара пользователя
Akula
Открыл глаза
Сообщения: 48
Зарегистрирован: Ср дек 09, 2009 20:48:46

Re: AVR studio в вопросах и ответах

Сообщение Akula »

prinv писал(а):Поставил себе Atmel Studio 7 - некоторые дефайны (типа F_CPU) и функции (например, atoi()) стали писаться курсивом. Почему?


A какая версия Windows на компьютере установлена?
Аватара пользователя
prinv
Вымогатель припоя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь
Контактная информация:

Re: AVR studio в вопросах и ответах

Сообщение prinv »

Akula писал(а):A какая версия Windows на компьютере установлена?

Не думаю, что это важно, но Win 10 x64
Engineer_Keen писал(а):А есть все таки какие-нибудь настройки у редактора? Типа выделять стандартные функции и переменные или что-то вроде того... Может там ответ.

Ничего подобного в настройках не нашёл
Никакая контра не уйдёт от нас
Аватара пользователя
Akula
Открыл глаза
Сообщения: 48
Зарегистрирован: Ср дек 09, 2009 20:48:46

Re: AVR studio в вопросах и ответах

Сообщение Akula »

prinv писал(а):
Akula писал(а):A какая версия Windows на компьютере установлена?

Не думаю, что это важно, но Win 10 x64

У меня на 10-ку "криво" встаёт, с ошибками. Вот и хотел уточнить.
Vadim.S
Родился
Сообщения: 4
Зарегистрирован: Ср сен 30, 2015 08:44:46

Re: Задачи с использованием программы AVRstudio Помогите реш

Сообщение Vadim.S »

Engineer_Keen писал(а):
Vadim.S писал(а):вообще с програмированием сталкивался только в школе
add r1,r2,r3
mov r4,r1
вот что удалось сделать прочитав про команды этой программы сложение рон и перенос все сложенных в одну и то я думаю что фигня какая то получилось.Понял что не моё это.Причём понял ещё в школе когда программировали на паскале

Ну не фигня, логика есть, понятно что нет знаний по ассемблеру конкретно AVR.
Во первых числа же загрузить надо:
LDI R16,0x01 ;загружаем 3 произвольных шестнадцатеричных числа
LDI R17,0x0A ;в R16,R17,R18 потому как загружать константы можно только в старшие 16 регистров
LDI R18,0x0F
А складывать можно только по 2 числа или регистра:
ADD R16,R17
ADD R16,R18
Ну а последнее сделано правильно, только с учетом вышеизложенного:
MOV R4,R16
Подскажу насчет второго. Источник тактирования выбирается фьюзами, т.е. непосредственно при программировании. Единственное что тут можно сделать, это использовать делитель тактовой, который настраивается через регистр CLKPR. Он есть далеко не во всех AVR. Что же касается коэффициентов периферии, то опять же, какой периферии? У АЦП за него отвечают биты ADPS регистра ADCSRA, у UART регистры UBRRH:UBRRL, у SPI и TWI тоже свои делители.

Спасибо огромное что откликнулся!Одну задачу уже сдал!!и отдельное спасибо за пояснительные коментарии к командам!!!!
Ответить

Вернуться в «AVR»