Terapefft 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба Помогите пожалуста никак не могу разобратся с прогой, она написана под 1200, мне надо ее под тини2313 переделать. вторую неделю ничего не получается.... посмотрите пожалуста. она вроде компилится, но когда прошиваешь мк и на плату устанавливаешь то нифига не работает, просто я совсем недавно начал этим заниматся.....или посоветуйте какую нить книгу где асемблеру уделяется большое внимание, потому что я прочитал Естифеева и еще какую то, но там основной уклон на архитектуру, поэтому я никак не могу разобратся со всеми тонкостями dozator.txt Изменено 13 сентября, 2006 пользователем Terapefft Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rryybb 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба Вопрос на эту тему поднимался неоднократно, но повторюсь в AT90S1200 аппаратный стек, а в ATTiny2313 нет, его надо при старте установить, используя следующие команды: ldi tmp,low(RAMEND) out SPL,tmp Также надо проверить, что там твориться с прерываниями (не для всех прерываний At20s1200, совпадают вектора прерываний в ATTiny2313, плюс в ATTiny2313 их больше), хотя думаю можно сначала только выставить стек. Плюс посмотреть используется компаратор или нет (в ATTiny2313 по умолчанию он включен.) И напоследок самое интересное: правильно нужно выставить фуз биты в ATTiny2313 их очень много, у Евстигнеева они очень неплохо описаны. И напоследок почитайте документ AVR093 на сайте Atmel. Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terapefft 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба Также надо проверить, что там твориться с прерываниями (не для всех прерываний At20s1200, совпадают вектора прерываний в ATTiny2313, плюс в ATTiny2313 их больше), хотя думаю можно сначала только выставить стек. Плюс посмотреть используется компаратор или нет (в ATTiny2313 по умолчанию он включен.) И напоследок самое интересное: правильно нужно выставить фуз биты в ATTiny2313 их очень много, у Евстигнеева они очень неплохо описаны. И напоследок почитайте документ AVR093 на сайте Atmel. стэк уже выставлен давно и с фузами экспериментировал, прерывания вроде тож нормально, все равно на плате индикации либо ничего не высвечивается, либо частями Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rryybb 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба Схему и код в студию тогда. По другому думаю проблему не ришить. Скорей всего Вы всеже гдето ошибаетесь. Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_Pol 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба Насчёт стека и вектора прерывания я ему неделю как подсказал. Это он исправил. Там ещё есть обращение к ЕЕПРОМ, и могут гнездиться грабли. Сейчас нет времени разбираться. А схему я у него в самом начале попросил. Не даёт. Партизан, блин. :) Начало истории - в ветке для чайников. Изменено 13 сентября, 2006 пользователем Alex_Pol Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terapefft 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба а вот и схема платы индикации Схема1.rar Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rryybb 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба а вот и схема платы индикации Данная схема не должна вызывать проблем с переносом, поэтому повторюсь Вы гдето ошибаетесь или у Вас неисправный чип. На всякий случай кладу руское описание на AT90S1200. Проверьте все регистры совподают по адресам с AtTiny2313 avr1200rdoc.rar Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BOS 1 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба а вот и схема платы индикации Беглым взглядом по схеме, могу сказать: Невидно общей точки соединения цепи OV c общей шиной (точки соединения S1-S4, С1) ;) Есть она там или ее нет ? Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terapefft 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 (изменено) · Жалоба Беглым взглядом по схеме, могу сказать: Невидно общей точки соединения цепи OV c общей шиной (точки соединения S1-S4, С1) ;) Есть она там или ее нет ? есть :) Изменено 13 сентября, 2006 пользователем IgorKossak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 13 сентября, 2006 Опубликовано 13 сентября, 2006 · Жалоба редко встретишь ветку, где все сообщения отредактированы. Программа - "ужос". имена 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). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба редко встретишь ветку, где все сообщения отредактированы. Надеюсь, хоть в этом случае научатся цитировать правильно, только то, на что отвечают, а не весь топик с самого начала со всеми вложенными цитатами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_Pol 0 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба 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 Это должно помочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 14 сентября, 2006 Опубликовано 14 сентября, 2006 · Жалоба sbi EECR,EEMPE ; ВСТАВИТЬ ВОТ ЭТУ КОМАНДУ!!! sbi EECR,EEWE ; set EEPROM Write strobe Это должно помочь. и мои 5 копеек: sbi EECR,EEMPE ; ВСТАВИТЬ ВОТ ЭТУ КОМАНДУ!!! sbi EECR,EEPE ; set EEPROM Erase/Program strobe ; <-- поменять EEWE на EEPE хоть сути это и не изменит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terapefft 0 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба 2 Alex_Pol попробовал так как вы сказали, все равно индикатор не загорается, только когда нажимаешь кнопки зажигаются отдельные сегменты. может там что нибудь надо в схеме переделать? я уже пробовал кварц подключать - никакого эфекта... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rryybb 0 15 сентября, 2006 Опубликовано 15 сентября, 2006 · Жалоба 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 который зажигал бы какой небудь светодиод. И Вам сразу станет ястно Выскакивает ли программа по какому небудь прерыванию не предусмотреную в Вашей программе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться