Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 01.03.2011, 15:37  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 95 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Испортились значения в ОЗУ

После очередного программирования атмеги8 через AVR910 USB из программы АВР студия слетели данные в ОЗУ, тоесть матрицы отображаемых цифр на свето диодном индикаторе.
Цитата:
DcMatrix:
.db 0b11110101,0b00000101 ;0,1
.db 0b11010110,0b01010111 ;2,3
.db 0b00100111,0b01110011 ;4,5
.db 0b11110011,0b01000101 ;6,7
.db 0b11110111,0b01110111 ;8,9
lcd:
ldi ZL,Low(DcMatrix*2)
ldi ZH,High(DcMatrix*2)

;ldi Temp2,0
add ZL,temp
;adc ZH,Temp2

lpm
mov temp,r0
Первая строка где 0 и 1 отображает корректно.
Остальное некорректно и перезапить меги8 не помогает, как быть ?
Реклама:
putmannn вне форума  
Непрочитано 01.03.2011, 16:15  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

Сообщение от putmannn Посмотреть сообщение
слетели данные в ОЗУ
Обычно такое у меня работает нормально... может уже у FLASH ресурс выработали?... при прошивке пишется нормально?... Верификация чо говорит? И перетащите в другое место FLASH таблицу, проверить...
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 01.03.2011 в 16:23.
picavr вне форума  
Непрочитано 01.03.2011, 16:27  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 95 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

микросхема новая, шилась раз 20
прошивка и верификация норм.
а как в другое место перетащить таблиццу ?
putmannn вне форума  
Непрочитано 01.03.2011, 16:41  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

Сообщение от putmannn Посмотреть сообщение
а как в другое место перетащить таблиццу ?
может уже подзабыл.. давненько не писал под AVR, но по моему адресс можно указать директивой .org, почитайте в даташитах по ассемблеру AVR. Или просто перенести в другое место в исходнике, что бы сменился адрес при компиляции..
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
Непрочитано 01.03.2011, 17:33  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

А почему перешивали? Меняли что-то в программе? тогда ищите где что-то не то делаете. Возможно что-то с именами. Проверьте листинг на корректность записи данных. Ассемблер тупой, что ему скажешь, то он и откомпилирует.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 01.03.2011, 20:42  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 95 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

Экономия переменных всему виной.
В листинге видно temp2 закомментил.
Не надо было, адрес неправильный формировался и вылезали кракозябры.
Надо разобраться как этот адрес получается, не понимаю.
putmannn вне форума  
Непрочитано 01.03.2011, 21:11  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

Сообщение от putmannn Посмотреть сообщение
Надо разобраться как этот адрес получается, не понимаю.
Кстати да
Если таблица располагается в конце блока 256 байт, например с адресса=1FDh, то прибавляя 3 получаем 200, а старший байт адреса (ZH) не изменяется, и попадаем в адрес 100h вместо 200h.
Команда add работает только с одним регистром.
А если прибавлять не переменную а константу, тогда изменяется и ZL и ZH.
Код:
	adiw	ZL,3
http://www.gaw.ru/html.cgi/txt/doc/m...r/asm/adiw.htm описание adiw, работает с парой регистров.

А я делал так, без дополнительных переменных, и длина кода одинаковая.
Код:
	add	zl,temp 
	brcc	pc+2
	inc	zh
либо можно и так:
Код:
	ldi	Temp2,0 
	add	ZL,temp 
	adc	ZH,Temp2
А перемещением адреса начала таблицы, что бы таблица целиком влазила в блок 256 байт, можно было бы обойтись и без двух дополнительных команд. Потому я и написал попробуйте переместить таблицу.
Код:
lcd:	ldi	ZL,Low(DcMatrix*2) 
	ldi	ZH,High(DcMatrix*2)
	add	ZL,temp 
	lpm 
	mov	temp,r0
	return
.org $200
DcMatrix: 
	.db 0b11110101,0b00000101 ;0,1
	.db 0b11010110,0b01010111 ;2,3
	.db 0b00100111,0b01110011 ;4,5
	.db 0b11110011,0b01000101 ;6,7
	.db 0b11110111,0b01110111 ;8,9
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 01.03.2011 в 21:30.
picavr вне форума  
Сказали "Спасибо" picavr
putmannn (01.03.2011)
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Измерение среднеквадратичного значения тока (напряжения) Aleksey_Sechov Измерительное оборудование 19 14.03.2012 10:02
использование FSR для обмена в ОЗУ и запись в EEPROM ESWANT Микроконтроллеры, АЦП, память и т.д 0 22.11.2010 09:59
Поиск значения в массиве maxNTF Микроконтроллеры, АЦП, память и т.д 22 23.02.2010 06:13
Нужен: атмел для (генератор + АЦП + ОЗУ) ramilkazus Микроконтроллеры, АЦП, память и т.д 7 15.12.2009 15:26
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot