Страница 97 из 160

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

Добавлено: Чт окт 01, 2015 08:33:50
ks0
Vadim.S писал(а):записать в три РОН три шестнадцатеричных числа, произвести суммирование данных РОН и записать результат суммирования в четвертый РОН без переноса.
Отсюда и далее че-то не сходится дебет с кредитом, или AVR 16-ричные стали, или об ARM речь идет.

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

Добавлено: Чт окт 01, 2015 09:17:31
Engineer_Keen
ks0 писал(а):Отсюда и далее че-то не сходится дебет с кредитом, или AVR 16-ричные стали, или об ARM речь идет.
Не путайте шестнадцатеричные (это форма записи числа) с шестнадцатиразрядными (это разрядность ядра).

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

Добавлено: Чт окт 01, 2015 11:57:55
Pnjom-Penb
Vadim.S писал(а):1.Ассемблер-программа должна записать в три РОН три шестнадцатеричных числа, ...
Абсолютно исключено! РОНы могут хранить только двоичные числа и никакие другие в них не записать. :dont_know:

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

Добавлено: Чт окт 01, 2015 12:11:18
akl

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

LDI R22,$FF
LDI R22,0xFF
LDI R22,0b11111111
LDI R22,255
LDI R22,-1

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

Добавлено: Чт окт 01, 2015 12:34:36
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-битные микроконтроллеры, да еще и ассемблер? Вот везет же людям!
Я попросил помочь поскольку эти задачи к моей профессии не какого отношения не имеют.Если вы не хотели помогать даже писать ничего не нужно.На пример когда у вас допустим идёт судебное разберательство вы приходите к юристу он же вам не даёт ссылки И не говорит:,,На вот тебе информация сам разберайся и защищай себя сам"Щас конешно же какой то умник напишет что я плачу ему за это деньги,но тут речь не об этом,а о взаимовыручке, я догадываюсь что эти задания для вас как семечки!Так почему же не помочь безвозмездно,и так общество катится в пропасть.Не какой взаимовыручки,а одни упрёки.Если у вас не было желания помочь так зачем тогда вообще коментировать запись?Ради увелечения количества сообщений указанных в вашем профиле!?

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

Добавлено: Чт окт 01, 2015 13:11:34
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


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

Добавлено: Чт окт 01, 2015 13:24:45
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
вот что удалось сделать прочитав про команды этой программы сложение рон и перенос все сложенных в одну и то я думаю что фигня какая то получилось.Понял что не моё это.Причём понял ещё в школе когда программировали на паскале

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

Добавлено: Чт окт 01, 2015 14:00:37
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 тоже свои делители.

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

Добавлено: Чт окт 01, 2015 20:24:00
Alexeyslav
PUSH R16 ;записать результат преобразования в ячейку памяти, адрес которой указан в указателе стека SPH:SPL
PUSH R17
RETI
Ааайй.... и куда мы улетим при выполнении команды RETI? она же из стека вытянет адрес возврата... а там, эта фигня лежит! Получится переход по принципу "куда бог пошлёт".

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


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

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

Добавлено: Чт окт 01, 2015 20:53:07
Engineer_Keen
Alexeyslav писал(а):Ааайй.... и куда мы улетим при выполнении команды RETI? она же из стека вытянет адрес возврата... а там, эта фигня лежит! Получится переход по принципу "куда бог пошлёт".
Да там все задачки один фиг абстрактные, сказали в стек положить, я и положил, без заморочек, все равно никто в железе проверять не будет. Ну да, в итоге будет переход в произвольное место и с вероятностью 99% (т.к. почти весь флешь свободен) - сброс по причине Invalid Opcode.
Alexeyslav писал(а): Кстати, можно ан русском языке скачать описание системы команд контроллера, немного поработав с таким документом приходит понимание как их применять начиная с 1-й задачи и продвигаясь далее.
Да, я как раз в первом посте ссылку на gaw дал, там перевод описания команд в том числе.

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

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

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

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

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

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

Добавлено: Чт окт 01, 2015 21:41:55
Alexeyslav
Да всё норм, у нас экономисты по информатике тоже проходили команды КР580ВМ80. Конечно, они прошли по принципу сегодня выучили - завтра забыли, но это необходимо потому что экономика сейчас неразделима с вычислениями, а все вычисления происходят на машинах. Нужно знать как работает эта шайтан-машина чтобы не наступать ан одни и те же грабли пытаясь составлять вычислительные алгоритмы. Как еще дальше надо будет объяснять экономистам, что компьютер имеет принципиальное ограничение по точности операций с числами, из-за чего на сложных вычислениях накапливается приличная ошибка?
Это нужно пройти самостоятельно. Благо задачи не сложные и полная документация доступна.

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

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

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

Добавлено: Пт окт 02, 2015 10:50:06
Engineer_Keen
Наверно в настройках редактора так задано. А что значит "некоторые"? По идее одинаковые категории слов должны и выделяться одинаково...

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

Добавлено: Пт окт 02, 2015 11:23:27
prinv
Вот как это выглядит

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

Добавлено: Пт окт 02, 2015 13:00:07
Engineer_Keen
А есть все таки какие-нибудь настройки у редактора? Типа выделять стандартные функции и переменные или что-то вроде того... Может там ответ.

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

Добавлено: Пт окт 02, 2015 20:38:37
Akula
prinv писал(а):Поставил себе Atmel Studio 7 - некоторые дефайны (типа F_CPU) и функции (например, atoi()) стали писаться курсивом. Почему?
A какая версия Windows на компьютере установлена?

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

Добавлено: Пт окт 02, 2015 21:42:00
prinv
Akula писал(а):A какая версия Windows на компьютере установлена?
Не думаю, что это важно, но Win 10 x64
Engineer_Keen писал(а):А есть все таки какие-нибудь настройки у редактора? Типа выделять стандартные функции и переменные или что-то вроде того... Может там ответ.
Ничего подобного в настройках не нашёл

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

Добавлено: Сб окт 03, 2015 20:43:14
Akula
prinv писал(а):
Akula писал(а):A какая версия Windows на компьютере установлена?
Не думаю, что это важно, но Win 10 x64

У меня на 10-ку "криво" встаёт, с ошибками. Вот и хотел уточнить.

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

Добавлено: Пн окт 05, 2015 07:43:30
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 тоже свои делители.
Спасибо огромное что откликнулся!Одну задачу уже сдал!!и отдельное спасибо за пояснительные коментарии к командам!!!!