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

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

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

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

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

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

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

 
Опции темы

Испортились значения в ОЗУ

Непрочитано 01.03.2011, 15:37  
putmannn
Почётный гражданин KAZUS.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
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.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 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.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

микросхема новая, шилась раз 20
прошивка и верификация норм.
а как в другое место перетащить таблиццу ?
putmannn вне форума  
Непрочитано 01.03.2011, 16:41  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 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.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Испортились значения в ОЗУ

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

Экономия переменных всему виной.
В листинге видно temp2 закомментил.
Не надо было, адрес неправильный формировался и вылезали кракозябры.
Надо разобраться как этот адрес получается, не понимаю.
putmannn вне форума  
Непрочитано 01.03.2011, 21:11  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 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, время: 10:24.


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