Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Какие команды вставить?

Непрочитано 08.11.2013, 11:32  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Какие команды вставить?

Задача - шутка. DEVICE ATMEGA8
Нужно покрутиться в цикле aaa, затем что-нибудь сделать, например, записать 01,02,03 в регистры r20,21,22 и навсегда уйти в цикл bbb.
Нельзя использовать команды условных переходов,*jmp, *call.
Ниже обязательные условия - остальное Ваше.

.DEVICE ATMEGA8
.CSEG
.ORG 0
rjmp init ;Reset
rjmp вектора прерываний
rjmp
...
rjmp вектора прпрерываний
......

init:
xxx ;нужно вставить 4 команды
xxx
xxx
xxx
aaa:
nop
rjmp aaa

....
dddd:
nop
rjmp dddd
bbb:
nop
rjmp bbb

....
Реклама:

Последний раз редактировалось zelvans; 09.11.2013 в 04:34.
zelvans вне форума  
Непрочитано 08.11.2013, 13:48  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,011
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Какие команды вставить?

Сообщение от zelvans Посмотреть сообщение
Задача - шутка. DEVICE ATMEGA8 Нужно
50 долларов/команда
jump вне форума  
Непрочитано 08.11.2013, 15:20  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Какие команды вставить?

так?
Код:
.include "m8def.inc"

.DEVICE ATMEGA8
.CSEG
.ORG 0
	rjmp init ;Reset
	nop
	nop
init:
	ldi r16, 1  ;нужно вставить 4 команды
	out TCCR0, r16 
	out TIMSK, r16
	sei
aaa:
	nop
	rjmp aaa
	nop
	nop
	cli
bbb:
	nop
	rjmp bbb
oleg110592 вне форума  
Непрочитано 08.11.2013, 16:36  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Re: Какие команды вставить?

Начало правильное. А как в цикл bbb зайти? Условие немного неправильно поставил одна rjmp в векторах прерываний допускается

Последний раз редактировалось zelvans; 08.11.2013 в 16:41.
zelvans вне форума  
Непрочитано 08.11.2013, 17:02  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Какие команды вставить?

Проверил в симуляторе Студии - все заходит по условиям 1 сообщения:
Миниатюры:
Нажмите на изображение для увеличения
Название: TestASM.png
Просмотров: 49
Размер:	17.8 Кб
ID:	54402  
oleg110592 вне форума  
Непрочитано 08.11.2013, 17:37  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Re: Какие команды вставить?

Может я не вижу весь текст вижу только следующее
.include "m8def.inc"

.DEVICE ATMEGA8
.CSEG
.ORG 0
rjmp init ;Reset
nop
nop
init:
ldi r16, 1 ;нужно вставить 4 команды
out TCCR0, r16
out TIMSK, r16
sei
aaa:
nop
rjmp aaa
nop
nop
cli
bbb:
nop
rjmp bbb

после того как произошло прерывание что происходит?(не описан вектор прерывания) и давайте цикл bbb прикроем другим циклом. Предполагается, что цикл bbb закрыт текстом программы.
......
еее:
nop
rjmp eee
bbb:
nop
rjmp bbb
......
Похоже не до конца продумал этюд
zelvans вне форума  
Непрочитано 08.11.2013, 17:40  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Какие команды вставить?

все что надо на экране, в протеусе может виднее будет:
Миниатюры:
Нажмите на изображение для увеличения
Название: TestASM_Proteus.png
Просмотров: 55
Размер:	24.4 Кб
ID:	54403  
oleg110592 вне форума  
Непрочитано 08.11.2013, 17:54  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Re: Какие команды вставить?

А если циклы задвинем на адреса 200 и 300 соответственно? и сделать что-нибудь заполнить несколько регистров например и цикл bbb прикрыт другим циклом.
zelvans вне форума  
Непрочитано 08.11.2013, 17:59  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Какие команды вставить?

ну так не честно - условия первого поста считаю выполнены
а так, конечно надо заполнить вектора прерываний и т.д.
oleg110592 вне форума  
Непрочитано 08.11.2013, 18:13  
zelvans
Частый гость
 
Регистрация: 11.07.2007
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 1 сообщении
zelvans на пути к лучшему
По умолчанию Re: Какие команды вставить?

Я подкорректировал стартовое сообщение, сам не ожидал,что может быть частный случай. Для общего случая все-таки есть решение, т.е. один rjmp в векторах допускается. init находится по адресу 200. Еще раз прошу прощения за то что до не продумал все до конца.

Последний раз редактировалось zelvans; 08.11.2013 в 18:18.
zelvans вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование AVR, FUSE и все что с этим связано dosikus AVR 1244 21.09.2022 12:14
Нелинейное компандирование - какие элементы можно использовать shock1 Микроконтроллеры, АЦП, память и т.д 5 29.12.2011 12:27
Какие существуют протоколы обмена rfid 125 khz ? Hron.OS Автоматика и аппаратура связи 2 03.03.2011 01:27
Помогите записать и передать команды с ПДУ 975 Электроника - это просто 15 14.12.2010 11:00
Какие команды идут к контроллеру ЧПУ? graham Производственное оборудование 15 28.04.2005 19:49


Часовой пояс GMT +4, время: 23:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.