Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб янв 03, 2026 07:39:29

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7961 ]     ... , , , 14, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 25, 2009 08:00:25 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
Igor писал(а):
Люди, подскажите пожалста. Программку пишу и захотел сделать сохранение данные в ЕЕПРОМ. Программа данные туда успешно записывает, но вот считывает почему-то все нули. Уже пробую просто вывести в порт, на котором весят светодиоды то что прочтено из ЕЕПРОМ. Результат аналогичен :( Подскажите в каком месте криво сделано

А вы уверены что у вас что-то записывает? Что за биты EEPE и ЕЕMPE? что за контроллер, что за среда программирования? Вот пример записи в ЕЕПРОМ из ДШ.
Код:
EEPROM_write:
; Wait for completion of previous write
sbic EECR,EEWE
rjmp EEPROM_write
; Set up address (r18:r17) in address register
out EEARH, r18
out EEARL, r17
; Write data (r16) to data register
out EEDR,r16
; Write logical one to EEMWE
sbi EECR,EEMWE
; Start eeprom write by setting EEWE
sbi EECR,EEWE
ret
[/code]


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 25, 2009 12:25:34 
Родился

Зарегистрирован: Вс янв 14, 2007 18:57:04
Сообщений: 8
Рейтинг сообщения: 0
Да, что записывает это 100%. Потому что при считывании памяти программатором там есть данные. Контроллер Attiny2313. Среда - AVR Studio4.16. Бит EEPE разрешает программирование ЕЕПРОМ, EEMPE разрешает работу предыдущего бита.
Цитата:
Вот пример записи в ЕЕПРОМ из ДШ.

Этот код я и использовал при написании программы. В протеусе работает замечательно, но вот в МК нивкакую :( Есть еще идеи?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 26, 2009 12:45:06 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
Идей нет :) В AVR Studio читает, а вот писать отказывается категорически и хз с чем это связано.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 26, 2009 13:36:55 
Родился

Зарегистрирован: Вс янв 14, 2007 18:57:04
Сообщений: 8
Рейтинг сообщения: 0
Вот и я уже не знаю в чем дело. Думал микросхема испорчена, купил нову - таже песня. Попробую еще на меге8. Если будет тоже самое, то я в ауте.....


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 27, 2009 13:00:02 
Мучитель микросхем

Зарегистрирован: Вт июл 22, 2008 08:10:54
Сообщений: 492
Рейтинг сообщения: 0
Igor писал(а):
Люди, подскажите пожалста. Программку пишу и захотел сделать сохранение данные в ЕЕПРОМ. Программа данные туда успешно записывает, но вот считывает почему-то все нули. Уже пробую просто вывести в порт, на котором весят светодиоды то что прочтено из ЕЕПРОМ. Результат аналогичен :( Подскажите в каком месте криво сделано

Есть еще 1 вариант, в вашем "tn2313def.inc" стоит неправильное значение RamEnd и потому программа после каждого rcall EEPROM_write начинается с 0. Попробуйте заменить RamEnd на 0хDF.

Проверьте fuse-биты, может у вас включен WD и постоянно перезагружает контроллер? Может что-то не так с reset?

Чудес не бывает. Программа рабочая :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 27, 2009 15:18:23 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вс мар 04, 2007 01:17:12
Сообщений: 690
Рейтинг сообщения: 0
Igor писал(а):
Люди, подскажите пожалста. Программку пишу и захотел сделать сохранение данные в ЕЕПРОМ. Программа данные туда успешно записывает, но вот считывает почему-то все нули.


Попробуй адрес записи поменять, возми что нть из последних- где то читал, что начальные адреса еепром могут глючить и не писаться...

Что за регистр
Код:
 EEPROM_read:
       sbic EECR,EEWE


может
Код:
 EEPROM_read:
       sbic EECR,eePE


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 30, 2009 12:08:18 
Родился

Зарегистрирован: Вс янв 14, 2007 18:57:04
Сообщений: 8
Рейтинг сообщения: 0
Всё, разобрался:) Почему-то ЕЕПРОМ читает всякую ерунду если включен делитель частоты тактовой на 8. Убрал, всё стало очень замечательно :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 02:09:27 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Ср мар 07, 2007 22:58:02
Сообщений: 586
Откуда: Черкассы, Украина
Рейтинг сообщения: 0
нужно красиво написать на асме но ника не уловлю "нить красоты". Наверно потому что 2 ночи на дворе :roll:
Алгоритм такой
Код:
Если бит 0 в регистре установлен, то
   Если бит 1 в регистре установлен, то
      rjmp end
   иначе
      sbr r16, (1<<7)
      rjmp l2_end
иначе
   если бит 1 в регистре установлен, то
      cbr r16, (1<<7)
      rjmp l2_end
   иначе
      rjmp end

в условиях работа с регистром r0. сам пытаюсь построить конструкцию из sbrc, sbrs но получается дофига меток.

_________________
There is only 10 kind of people: those who understands binary code and those who dont!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 08:38:25 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Попробуйте сначало на бумаге нарисовать алгоритм переходов, к сожалению без кучи меток не обойтись - это все-таки ASM.

1) со своей стороны я бы порекомендовал как-нибудь обзывать биты, очень удобно если надо к примеру поменять ногу на процике, да и наглядней чем просто цифра.
2) ИМХО не используйте R0 для хранения переменных, он используется для многих операций типа косвенного чтения, работы с EEPROM и т.п., очень легко допустить ошибку.

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 09:08:20 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Ср мар 07, 2007 22:58:02
Сообщений: 586
Откуда: Черкассы, Украина
Рейтинг сообщения: 0
ну по поводу битов и r0 - это я так, для примера. А по поводу бумаги - я уже её стока замарал, что коту хватит на целый год... Эх... ну раз куча меток значит куча меток :cry:

_________________
There is only 10 kind of people: those who understands binary code and those who dont!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 09:45:09 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
А кому сейчас легко :)
Бывает на бумаге все красиво, начинаешь писать..., и приходится опять рисовать исправлять, менять BRLO на BRSH, BRPL на BRMI и т.д. и так по кругу пока не получится "красиво" :)))

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 14:07:30 
Нашел транзистор. Понюхал.

Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03
Сообщений: 151
Откуда: Казахстан
Рейтинг сообщения: 0
Negor писал(а):
нужно красиво написать на асме.......но получается дофига меток.


Вот накорябал вариант..
Код:
              bst   r0,0
              brts  _M1

              sbrs  r0,1
              rjmp _l2_end

_BitChange:   bld   r16,7
              rjmp  _l2_end

_M1:          sbrs  r0,1
              rjmp  _BitChange
              rjmp  _end

Вроде алгоритму соответствует.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Регистровые пары
СообщениеДобавлено: Ср май 06, 2009 19:17:49 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 305
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2255
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Доброго времени суток. Недавно начал изучать асм, добрел до массивов и вот не могу понять. Загружаю адрес массива в регистровую пару Z и далее командой lpm гружу данные в регистр R0. Это касаемо пары Z. А если, например, используется пара X?

_________________
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Регистровые пары
СообщениеДобавлено: Ср май 06, 2009 20:27:04 
Мучитель микросхем

Зарегистрирован: Вс июн 01, 2008 12:16:38
Сообщений: 459
Рейтинг сообщения: 0
edm2007 писал(а):
Доброго времени суток. Недавно начал изучать асм, добрел до массивов и вот не могу понять. Загружаю адрес массива в регистровую пару Z и далее командой lpm гружу данные в регистр R0. Это касаемо пары Z. А если, например, используется пара X?

Из памяти программ можно считать данные только по указателю Z, правда есть варианты
Код:
lpm rd, Z; загрузить в rd данные по указателю Z rd - от r0 до r31
lpm rd, Z+ ;загрузить в rd данные по указателю Z с постинкрементом Z rd - от r0 до r29 

Если r30 или r31 в варианте с постинкрементом использовать, то результат неопределен, ибо это и есть пара Z.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Регистровые пары
СообщениеДобавлено: Ср май 06, 2009 20:38:50 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 305
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2255
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
smac писал(а):
Из памяти программ можно считать данные только по указателю Z, правда есть варианты
Код:
lpm rd, Z; загрузить в rd данные по указателю Z
lpm rd, Z+ ;загрузить в rd данные по указателю Z с постинкрементом Z
lpm rd, -Z  ;загрузить в rd данные по указателю Z с предекрементом Z


Да, спасибо. Нашел я такую информацию.

_________________
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Регистровые пары
СообщениеДобавлено: Ср май 06, 2009 21:05:13 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 305
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2255
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
smac писал(а):
Код:
lpm rd, Z; загрузить в rd данные по указателю Z rd - от r0 до r31
lpm rd, Z+ ;загрузить в rd данные по указателю Z с постинкрементом Z rd - от r0 до r29 



А с LD разница есть?

_________________
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт май 07, 2009 08:37:32 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вся разница в том что команды LD-ST работают с памятью данных и могут адресоваться через регистровые пары X,Y,Z
в том числе и с регистрам R0-R31 и служебными регистрами

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Массивы
СообщениеДобавлено: Чт май 07, 2009 19:57:13 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 305
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2255
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Я снова к вам и снова с той же темой. Не могу я разобраться с массивом, а дальше идти не хочу. Я понимаю что

Код:
ldi ZH, high (Array*2)
ldi ZL, low (Array*2)


загружает в старшую и младшую часть пары соответственно старшую и младшую часть адреса.

Но как LPM загружает данные из пары Z в R0 понять не могу. Адрес-то 16-ти битный. Вероятнее всего я глупость спрашиваю, но разобраться хочу.

_________________
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт май 07, 2009 22:48:22 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Что именно Вам не понятно?
Загрузка high:low характерна для старших кристалов семейства с большим объемом памяти, а для =128= и =256= серии еще один регистр нужен.
множитель (хххх*2) нужен из-за того что память программ имеет словную организацию
зы: врядли вы найдете описание того как конкретно по указателю Z данные из памяти попадают в R0. если вам так интересен механизм данного процесса ищите описание старых ЭВМ у которых ЦПУ собрано на логических элементах. (в свое время изучал СМ1480 он же PDP-11 там в мануале все процессы были расписаны по тактам :))) )

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт май 07, 2009 22:57:24 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 305
Зарегистрирован: Вт апр 21, 2009 22:24:10
Сообщений: 2255
Откуда: Иркутск
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
GP1 писал(а):
Что именно Вам не понятно?
Загрузка high:low характерна для старших кристалов семейства с большим объемом памяти, а для =128= и =256= серии еще один регистр нужен.
множитель (хххх*2) нужен из-за того что память программ имеет словную организацию


Про множитель понятно, и про загрузку в регистровую пару тоже. Адрес ПЗУ 16-ти битный, так? И все это в пару грузится нормально (два регистра). А вот как этот адрес в R0 загружается я не понимаю.

_________________
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7961 ]     ... , , , 14, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y