|
замена s1200 на tiny 2313 |
|
|
|
Sep 13 2006, 07:14
|
Частый гость
 
Группа: Свой
Сообщений: 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-дюемовых дискетах
|
|
|
|
|
Sep 13 2006, 07:22
|

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

|
Цитата(Семён @ Sep 13 2006, 11:14)  Также надо проверить, что там твориться с прерываниями (не для всех прерываний At20s1200, совпадают вектора прерываний в ATTiny2313, плюс в ATTiny2313 их больше), хотя думаю можно сначала только выставить стек. Плюс посмотреть используется компаратор или нет (в ATTiny2313 по умолчанию он включен.) И напоследок самое интересное: правильно нужно выставить фуз биты в ATTiny2313 их очень много, у Евстигнеева они очень неплохо описаны. И напоследок почитайте документ AVR093 на сайте Atmel. стэк уже выставлен давно и с фузами экспериментировал, прерывания вроде тож нормально, все равно на плате индикации либо ничего не высвечивается, либо частями
Сообщение отредактировал IgorKossak - Sep 13 2006, 12:22
|
|
|
|
|
Sep 13 2006, 08:52
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Схему и код в студию тогда. По другому думаю проблему не ришить. Скорей всего Вы всеже гдето ошибаетесь.
Сообщение отредактировал IgorKossak - Sep 13 2006, 12:22
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Sep 13 2006, 10:07
|

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

|
а вот и схема платы индикации
Сообщение отредактировал IgorKossak - Sep 13 2006, 12:20
Прикрепленные файлы
Схема1.rar ( 229.32 килобайт )
Кол-во скачиваний: 290
|
|
|
|
|
Sep 13 2006, 10:35
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(Terapefft @ Sep 13 2006, 14:07)  а вот и схема платы индикации Данная схема не должна вызывать проблем с переносом, поэтому повторюсь Вы гдето ошибаетесь или у Вас неисправный чип. На всякий случай кладу руское описание на AT90S1200. Проверьте все регистры совподают по адресам с AtTiny2313
Сообщение отредактировал IgorKossak - Sep 13 2006, 12:23
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Sep 13 2006, 22:04
|

кекс
     
Группа: Свой
Сообщений: 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).
|
|
|
|
|
Sep 14 2006, 20:58
|

кекс
     
Группа: Свой
Сообщений: 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 хоть сути это и не изменит.
|
|
|
|
|
Sep 15 2006, 06:57
|
Частый гость
 
Группа: Свой
Сообщений: 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-дюемовых дискетах
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|