Бегущий огонёк

Обсуждаем контроллеры компании Atmel.
Ответить
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

Вечер добрый! В Atmel Studio 6 даная программа вроде работает (в симуляторе), биты меняются как надо, а когда загружаю программу на ATtiny2313A - все светодиоды постоянно "горят", вместо бегущего огня! Второй вечер не могу понять где проблема! Заранее спасибо!

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

.include	"tn2313adef.inc"
.list

.def	temp = R16
.def	temp2 = R17
.def	temp3 = R18
.def	temp4 = R19
.def	rab = R20

; ***************

ldi	temp, 0xFF
out	DDRB, temp
out	DDRD, temp
out	PORTB, temp
out	PORTD, temp

; ***************

m1:
	ldi	rab, 0b10000000
m2:
	ldi	temp, 0xFF
	eor	temp, rab
	out	PORTB, temp
	rcall	setVar
	lsr	rab
	brcc	m2
	rjmp	m1

; ***************

setVar:
	ldi	temp2, 0x64
	ldi	temp3, 0x64
	ldi	temp4, 0x0C

loop:
	dec	temp2
	brne	loop

loop2:
	dec	temp3
	brne	loop2

loop3:
	dec	temp4
	brne	loop3

	ret
Реклама
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Скорость кто будет учитывать?
Реклама
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

Так получается же что аж после 120.000 циклов светодиоды меняются местами, а так, они постояно горят! :shock:
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Или 120000 раз меняются местами?

Человек не успеет столько увидеть, только муха.
Короче, где цикл задержки? (Удержания визуального эффекта)...
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

В m1 в переменную rab загружаем 0b10000000, потом в m2 в temp загружаем 0xFF, а потом eor temp, rab даёт нам 0b01111111, загружаем это значение в PORTB и зажигаем первый светодиод, после чего вызываем цикл задержки setVar, 120.000 раз, а команда ret возвращает нас к команде lsr rab. brcc m2 выполняет переход к m2, где у нас уже после команды lsr, rab имеет значение 0b01000000, и опять по кругу.
Реклама
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Поправьте меня, но циклы не вложенные, а последовательные, т.е. 64+64+0С? Сколько по времени?...
Реклама
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

Да, вы правы, извиняюсь, надо мне отдыхать видно, а то )))
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Там, кстати, нужно будет сделать переопределение переменных внутри вложенных циклов, а то получится хня.
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »


вот что получилось, только видео немножко ускорено, думаю дело в фюзах (я с ними ешё не знаком), а то ставил несколько разных значениях, а скорость та же!
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Таки и программу подрихтованую тогда выложите...
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

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

.include	"tn2313adef.inc"
.list

.def	temp = R16
.def	temp2 = R17
.def	temp3 = R18
.def	temp4 = R19
.def	rab = R20

; ***************

ldi	temp, 0xFF
out	DDRB, temp
out	DDRD, temp
out	PORTB, temp
out	PORTD, temp

; ***************

m1:
	ldi	rab, 0b10000000
m2:
	ldi	temp, 0xFF
	eor	temp, rab
	out	PORTB, temp
	rcall	setVar
	lsr	rab
	brcc	m2
	rjmp	m1

; ***************

setVar:
	ldi	temp2, 0x32
	ldi	temp3, 0x32
	ldi	temp4, 0x0C

loop:
	dec	temp2
	brne	loop

loop2:
	dec	temp3
	brne	loop

loop3:
	dec	temp4
	brne	loop

ret
Я только "loop"-ы патчил и всё )
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Вы уж извините, но как я и думал:

-это не вложенные циклы, а бардак. Переменные, заданные перед началом циклов доходят до "0", а потом идёт отсчёт не от заданных значений, а от 256. Вы так время не посчитаете...
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

Ну, новичёк, зелёный ешё :)))
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

Давайте обсудим. Перепишите кусок с задержкой, выложите.

Я, конечно, могу сам всё написать, но разберитесь, для понимания сути. Подсказки выше я уже дал.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 192
Зарегистрирован: Вт дек 24, 2013 17:22:18
Откуда: Ярославль

Сообщение Muzykant »

Здравствуйте!
Я тоже решил начать изучение с бегущего огонька, который так хорошо и увлекательно описан в обучалке. Но дело в том, что в статье все ссылки на программы, компиляторы, файлы - битые. Гугл не помог. Может сохранился у кого архивчик со всем необходимым? Спасибо!
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

Muzykant писал(а):Может сохранился у кого архивчик со всем необходимым?
Белов А.В. - Разработка устройств на микроконтроллерах AVR шагаем от «чайника» до профи, страница 161.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 192
Зарегистрирован: Вт дек 24, 2013 17:22:18
Откуда: Ярославль

Сообщение Muzykant »

Спасибо! Я непременно ознакомлюсь с этой книгой.
Но я имел ввиду:
1. Программа для прошивки находится на страничке ее автора – Редчук Александра: http://ln.com.ua/~real/avreal.
Внимательно прочитайте, что там написано, и скачайте саму программу, и если требуется – драйвер DLportIO.
2. Компилятор, который мы будем юзать, называется tavrasm. Он скачивается с сайта www.tavrasm.org.
3. Качаем вот этот архивчик (компилятор Avrasm): http://atmel.com/dyn/resources/prod_documents/ASM.ZIP
4. Заголовочные файлы xxxdef.inc содержатся в установочной папке любого атмеловского компилятора для AVR-ок. Например - AVR Studio. Он качается на сайте Atmel. Качаем, ставим, ищем папочку, куда установилась программа.
5. Также (ВНИМАНИЕ: ХАЛЯВА), все (почти все) заголовочные файлы для контроллеров AVR Atmel, можно скачать прямо у нас на сайте. Они находятся в архивчике appnotes.zip.
Может еще что упустил, но все ссылки битые, видимо статья давно написана... Вот и прошу, может кто разбирался по этому же пути и остались у него необходимые программы...
Первый раз сказал Мяу!
Сообщения: 31
Зарегистрирован: Пт ноя 01, 2013 14:52:41

Сообщение tourniquet »

Во первых, я не видел где это вы вдруг имели в виду, а во вторых, если есть в книжке, то зачем искать в другом месте?
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 192
Зарегистрирован: Вт дек 24, 2013 17:22:18
Откуда: Ярославль

Сообщение Muzykant »

tourniquet писал(а):Во первых, я не видел где это вы вдруг имели в виду?
Вот здесь:
Muzykant писал(а):Но дело в том, что в статье все ссылки на программы, компиляторы, файлы - битые
tourniquet писал(а):если есть в книжке, то зачем искать в другом месте?
Книгу скачал, читаю, непонятно только, что в ней есть? Все программы, описанные в статье?
Ответить

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