реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> замена s1200 на tiny 2313
Terapefft
сообщение Sep 13 2006, 05:07
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



Помогите пожалуста никак не могу разобратся с прогой, она написана под 1200, мне надо ее под тини2313 переделать. вторую неделю ничего не получается.... посмотрите пожалуста. она вроде компилится, но когда прошиваешь мк и на плату устанавливаешь то нифига не работает, просто я совсем недавно начал этим заниматся.....или посоветуйте какую нить книгу где асемблеру уделяется большое внимание, потому что я прочитал Естифеева и еще какую то, но там основной уклон на архитектуру, поэтому я никак не могу разобратся со всеми тонкостями

Сообщение отредактировал Terapefft - Sep 13 2006, 05:19
Прикрепленные файлы
Прикрепленный файл  dozator.txt ( 18.11 килобайт ) Кол-во скачиваний: 183
 
Go to the top of the page
 
+Quote Post
Семён
сообщение Sep 13 2006, 07:14
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Вопрос на эту тему поднимался неоднократно, но повторюсь в AT90S1200 аппаратный стек, а в ATTiny2313 нет, его надо при старте установить, используя следующие команды:
ldi tmp,low(RAMEND)
out SPL,tmp
Также надо проверить, что там твориться с прерываниями (не для всех прерываний At20s1200, совпадают вектора прерываний в ATTiny2313, плюс в ATTiny2313 их больше), хотя думаю можно сначала только выставить стек. Плюс посмотреть используется компаратор или нет (в ATTiny2313 по умолчанию он включен.) И напоследок самое интересное: правильно нужно выставить фуз биты в ATTiny2313 их очень много, у Евстигнеева они очень неплохо описаны. И напоследок почитайте документ AVR093 на сайте Atmel.

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:21


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Sep 13 2006, 07:22
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



Цитата(Семён @ Sep 13 2006, 11:14) *
Также надо проверить, что там твориться с прерываниями (не для всех прерываний At20s1200, совпадают вектора прерываний в ATTiny2313, плюс в ATTiny2313 их больше), хотя думаю можно сначала только выставить стек. Плюс посмотреть используется компаратор или нет (в ATTiny2313 по умолчанию он включен.) И напоследок самое интересное: правильно нужно выставить фуз биты в ATTiny2313 их очень много, у Евстигнеева они очень неплохо описаны. И напоследок почитайте документ AVR093 на сайте Atmel.


стэк уже выставлен давно и с фузами экспериментировал, прерывания вроде тож нормально, все равно на плате индикации либо ничего не высвечивается, либо частями

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:22
Go to the top of the page
 
+Quote Post
Семён
сообщение Sep 13 2006, 08:52
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Схему и код в студию тогда. По другому думаю проблему не ришить. Скорей всего Вы всеже гдето ошибаетесь.

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:22


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Sep 13 2006, 09:41
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Насчёт стека и вектора прерывания я ему неделю как подсказал. Это он исправил. Там ещё есть обращение к ЕЕПРОМ, и могут гнездиться грабли. Сейчас нет времени разбираться. А схему я у него в самом начале попросил. Не даёт. Партизан, блин. smile.gif Начало истории - в ветке для чайников.

Сообщение отредактировал Alex_Pol - Sep 13 2006, 09:45
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Sep 13 2006, 10:07
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



а вот и схема платы индикации

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:20
Прикрепленные файлы
Прикрепленный файл  Схема1.rar ( 229.32 килобайт ) Кол-во скачиваний: 290
 
Go to the top of the page
 
+Quote Post
Семён
сообщение Sep 13 2006, 10:35
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(Terapefft @ Sep 13 2006, 14:07) *
а вот и схема платы индикации

Данная схема не должна вызывать проблем с переносом, поэтому повторюсь Вы гдето ошибаетесь или у Вас неисправный чип. На всякий случай кладу руское описание на AT90S1200. Проверьте все регистры совподают по адресам с AtTiny2313

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:23
Прикрепленные файлы
Прикрепленный файл  avr1200rdoc.rar ( 92.01 килобайт ) Кол-во скачиваний: 323
 


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
OLEG_BOS
сообщение Sep 13 2006, 10:47
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639



Цитата(Terapefft @ Sep 13 2006, 13:07) *
а вот и схема платы индикации


Беглым взглядом по схеме, могу сказать: Невидно общей точки соединения цепи OV c общей шиной (точки соединения S1-S4, С1) wink.gif Есть она там или ее нет ?

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:24
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Sep 13 2006, 11:04
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



Цитата(OLEG_BOS @ Sep 13 2006, 14:47) *
Беглым взглядом по схеме, могу сказать: Невидно общей точки соединения цепи OV c общей шиной (точки соединения S1-S4, С1) wink.gif Есть она там или ее нет ?

есть smile.gif

Сообщение отредактировал IgorKossak - Sep 13 2006, 12:19
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 13 2006, 22:04
Сообщение #10


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



редко встретишь ветку, где все сообщения отредактированы.

Программа - "ужос".
имена tmp1, tmp2, tmp3 не добавляют читабельности, также как и метки pm1, pm2, pm3, pm4, pme1 и т.л..

Позволю себе предположить, что программу писали не Вы. Может быть проще просто купить s1200 и зашить туда оригинал программы (при условии, что программа работала под s1200).

Цитата
или посоветуйте какую нить книгу где асемблеру уделяется большое внимание, потому что я прочитал Естифеева и еще какую то, но там основной уклон на архитектуру, поэтому я никак не могу разобратся со всеми тонкостями

Весь ассемблер AVR помещается на двух листах - Instruction Set Summary. Спорные вопросы решаются с помощью документа AVR Instruction Set Reference. А вот программировать с помощью этого можно лишь только поняв архитектуру, о которой рассказывается в соответвующем даташите. Учитывая что Instruction Set Summary находится в даташите, то для программирования на ассемблере AVR необходимо и достаточно иметь в распоряжении только даташит на интересующий МК и help к ассемблеру (имеется AVR-Studio).
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Sep 14 2006, 09:50
Сообщение #11


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(defunct @ Sep 14 2006, 01:04) *
редко встретишь ветку, где все сообщения отредактированы.

Надеюсь, хоть в этом случае научатся цитировать правильно, только то, на что отвечают, а не весь топик с самого начала со всеми вложенными цитатами.
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Sep 14 2006, 12:06
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



2 terapefft попробуйте в это кусок:
EEWrite:
sbic EECR,EEWE ; if EEWE not clear
rjmp EEWrite ; wait more
out EEAR,zl ; output address
out EEDR,tmp3 ; output data
sbi EECR,EEMPE ; ВСТАВИТЬ ВОТ ЭТУ КОМАНДУ!!!
sbi EECR,EEWE ; set EEPROM Write strobe
inc zl
cpi zl,10
brne pme1
mov zl,tmp1

Это должно помочь.
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 14 2006, 20:58
Сообщение #13


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Alex_Pol @ Sep 14 2006, 15:06) *
sbi EECR,EEMPE ; ВСТАВИТЬ ВОТ ЭТУ КОМАНДУ!!!
sbi EECR,EEWE ; set EEPROM Write strobe
Это должно помочь.

и мои 5 копеек:

sbi EECR,EEMPE ; ВСТАВИТЬ ВОТ ЭТУ КОМАНДУ!!!
sbi EECR,EEPE ; set EEPROM Erase/Program strobe ; <-- поменять EEWE на EEPE

хоть сути это и не изменит.
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Sep 15 2006, 06:13
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052



2 Alex_Pol попробовал так как вы сказали, все равно индикатор не загорается, только когда нажимаешь кнопки зажигаются отдельные сегменты. может там что нибудь надо в схеме переделать? я уже пробовал кварц подключать - никакого эфекта...
Go to the top of the page
 
+Quote Post
Семён
сообщение Sep 15 2006, 06:57
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Цитата(Terapefft @ Sep 15 2006, 10:13) *
2 Alex_Pol попробовал так как вы сказали, все равно индикатор не загорается, только когда нажимаешь кнопки зажигаются отдельные сегменты. может там что нибудь надо в схеме переделать? я уже пробовал кварц подключать - никакого эфекта...

Загрузил Ваш код в AVR-Studio, но он отказался компилироваться. Для того чтобы программа скомпилировалась пришлость вставить следующий оператор: def T4H =r12. В отладчике после этого на первый взгляд программа заработала. Детально изучать код нехочиться (про стиль уже писали), но навсякий случай я бы еще вручную сделал бы так:
;вектора прерывания
S1: rjmp start
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp tim_0
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1
rjmp ERR1


start ldi tmp1,low(RAMEND) ; определение начала
out SPL,tmp1 ; стэка в ОЗУ
далее ВАШ код
Далее напишите простенький код по метки ERR1 который зажигал бы какой небудь светодиод. И Вам сразу станет ястно Выскакивает ли программа по какому небудь прерыванию не предусмотреную в Вашей программе.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01471 секунд с 7
ELECTRONIX ©2004-2016