Страница 1 из 1
Счетчик На At90S2313 ошибка при ассемблировании
#1
Отправлено 02 Сентябрь 2011 - 15:37
Решил повторить схему, но для начала провести симуляцию в протеусе. При попытке в AVRStudio асемблировать скачанный исходник выдало ошибку:
D:\AVRStudio\work\90c2313\90c2313.asm(5): Including file 'D:\AVRStudio\AvrAssembler2\Appnotes\2313def.inc'
Er D:\AVRStudio\work\90c2313\90c2313.asm(7): error: .def: SREG redefinition
D:\AVRStudio\AvrAssembler2\Appnotes\2313def.inc(60): info: previous definition of 'SREG'
W D:\AVRStudio\work\90c2313\90c2313.asm(26): warning: Register r26 already defined by the .DEF directive
Assembly failed, 1 errors, 1 warnings
Как я понимаю ругается по поводу повторного определения регистра SREG.
Подскажите, пожалуйста, что делать?
D:\AVRStudio\work\90c2313\90c2313.asm(5): Including file 'D:\AVRStudio\AvrAssembler2\Appnotes\2313def.inc'
Er D:\AVRStudio\work\90c2313\90c2313.asm(7): error: .def: SREG redefinition
D:\AVRStudio\AvrAssembler2\Appnotes\2313def.inc(60): info: previous definition of 'SREG'
W D:\AVRStudio\work\90c2313\90c2313.asm(26): warning: Register r26 already defined by the .DEF directive
Assembly failed, 1 errors, 1 warnings
Как я понимаю ругается по поводу повторного определения регистра SREG.
Подскажите, пожалуйста, что делать?
#2
Отправлено 06 Сентябрь 2011 - 11:18
Отбуилтил исходник в AVRSt. Пробовал используемое оборудование и "2313def.inc" и "Tn2313def.inc". Нормально компилир, без ошибок и предупреждений.
Сначала сохранил предлагаемый файл с текстом программы в корне каталога (скачал в виде архива, потом разархивировал здесь же).Открыл студию-новый проект-АВРАСМ-ТН2313-Финиш, потом указал путь к разархив. папке и все, почему-то без проблем. Нет ли у Вас законченного работающего нормально в
Протеусе ключа для динамической индикации: подать плюс питания на общий анод при нулевом потенциале на базе (ток немного больше 100млА), при единице
на базе знакоместо чтобы молчало.
Сначала сохранил предлагаемый файл с текстом программы в корне каталога (скачал в виде архива, потом разархивировал здесь же).Открыл студию-новый проект-АВРАСМ-ТН2313-Финиш, потом указал путь к разархив. папке и все, почему-то без проблем. Нет ли у Вас законченного работающего нормально в
Протеусе ключа для динамической индикации: подать плюс питания на общий анод при нулевом потенциале на базе (ток немного больше 100млА), при единице
на базе знакоместо чтобы молчало.
#3
Отправлено 09 Сентябрь 2011 - 14:57
Привет всем
Есть проблема с данным счетчиком, Первое этот микроконтроллер устарел и купить его практически нет возможности, есть ATTINY2313 но в симуляции в протеусе при прямом счете после того как счёт досчитает до 100 счетчик сбрасывается в ноль и дальше считает нормально, в симуляции на AT90S2313 такого нет. Второе это отсутствие прошивки под общий катод и анод.Третье мало разрядов хотя бы пять и шикарно шесть.
Возможно найдется энтузиаст и переделает это весьма полезное устройство в хозяйстве самоделкина, будем надеяться. СПАСИБО.
Есть проблема с данным счетчиком, Первое этот микроконтроллер устарел и купить его практически нет возможности, есть ATTINY2313 но в симуляции в протеусе при прямом счете после того как счёт досчитает до 100 счетчик сбрасывается в ноль и дальше считает нормально, в симуляции на AT90S2313 такого нет. Второе это отсутствие прошивки под общий катод и анод.Третье мало разрядов хотя бы пять и шикарно шесть.
Возможно найдется энтузиаст и переделает это весьма полезное устройство в хозяйстве самоделкина, будем надеяться. СПАСИБО.
#4
Отправлено 11 Сентябрь 2011 - 23:18
444c-c4 Ключа для динамической индикации нет, и из вашего сообщения не понял, что он может из себя представлять.
rasel Я не собираюсь делать счетчик на AT90S2313 по причине указанной Вами, но ATTINY2313 является полным аналогом с расширенными возможностями, хотя
при ремонтной замене могут быть преодолимые сложности с программным обеспечением. В сети можно найти массу историй с приключениями на эту тему.
Я - схемотехник, программирование - добровольно-принудительная необходимость.
Возвращаясь к проблеме: Исходный текст LCD5.asm содержит ошибки, с которыми я разобрался на 50%. Запятую на точку с запятой в строке 217 исправил,
а о том, что не понял задал вопрос на форуме. Пока ответов от программистов нет
rasel Я не собираюсь делать счетчик на AT90S2313 по причине указанной Вами, но ATTINY2313 является полным аналогом с расширенными возможностями, хотя
при ремонтной замене могут быть преодолимые сложности с программным обеспечением. В сети можно найти массу историй с приключениями на эту тему.
Я - схемотехник, программирование - добровольно-принудительная необходимость.
Возвращаясь к проблеме: Исходный текст LCD5.asm содержит ошибки, с которыми я разобрался на 50%. Запятую на точку с запятой в строке 217 исправил,
а о том, что не понял задал вопрос на форуме. Пока ответов от программистов нет
#5
Отправлено 12 Сентябрь 2011 - 01:13
Да я собрал и нормально работает, как я уже говори мало разрядов
#6
Отправлено 12 Сентябрь 2011 - 13:13
rasel! При сборке Вы зашили в проц код и исходник не трогали?
#8
Отправлено 14 Сентябрь 2011 - 13:35
Здесь http://forum.eldigi....p?showtopic=772 четырехразрядный счетчик
#9
Отправлено 17 Сентябрь 2011 - 09:36
Вы правы. При повторной попытке отбуилтить исходник вылезли ошибки: строка 218-отсутствие комента из-за отсутствия точки, вторая проблемма на мой взгляд в следующем(я тоже еще тот чайник):регистр SREG нельзя непосредственно сохранить в стеке командой push, а для корректной работы проги
при наличии подпрограммы обработки прерывания(Forward, Back)это делать желательно. Автор хотел сделать SREG тоже самое что и R0 ( в самом начале
.def SREG=R0) и сохранять SREG, сохраняя R0. Но SREG -регистр ввода/вывода, а R0 - РОН, они не могут быть равнозначны, потому и имеем вторую
ошибку( так-то, если задефайнить уже определенный регистр по "tn2313def.inc" - будет только предупреждение, с ним жить можно). Я сделал так
.def SREG=R0 - убрал(лучше закоментить), в начале подпрограм. обработки прерыв. и форвард и бак после reti следующей строкой in R0, SREG след. строкой push R0 далее по тексту, под меткой Endint после rcall LeDdecod - две строки pop R0 OUT SREG, R0. После этого отбуилтилось без ошибок
(одно предупр-двойное определение 26). Вообще, счетчиком заинтересовался т.к. там есть вариант готовый представления любых чисел поразрядно(един, десятки ...) на индикаторе.
Ключ имел ввиду. что в схеме общий катод или анод индикатора непосредственно соединен с выводом микросхемы и по току явно не потянет (необходимые
где-то 100 млА при нагр. возможности приб. 15 млА). Усилитель тока между ними вроде не помешает. Но умные люди говорят, что в импульсном режиме
будет все в порядке и с током и с яркостью. (что-то не верится). Мои варианты усилителей не работали, но как оказалось совсем из-за другого момента.
Прогнать на симуляторе не смог по времени исправленную прогу (тянут за грибами). Счастливо.
при наличии подпрограммы обработки прерывания(Forward, Back)это делать желательно. Автор хотел сделать SREG тоже самое что и R0 ( в самом начале
.def SREG=R0) и сохранять SREG, сохраняя R0. Но SREG -регистр ввода/вывода, а R0 - РОН, они не могут быть равнозначны, потому и имеем вторую
ошибку( так-то, если задефайнить уже определенный регистр по "tn2313def.inc" - будет только предупреждение, с ним жить можно). Я сделал так
.def SREG=R0 - убрал(лучше закоментить), в начале подпрограм. обработки прерыв. и форвард и бак после reti следующей строкой in R0, SREG след. строкой push R0 далее по тексту, под меткой Endint после rcall LeDdecod - две строки pop R0 OUT SREG, R0. После этого отбуилтилось без ошибок
(одно предупр-двойное определение 26). Вообще, счетчиком заинтересовался т.к. там есть вариант готовый представления любых чисел поразрядно(един, десятки ...) на индикаторе.
Ключ имел ввиду. что в схеме общий катод или анод индикатора непосредственно соединен с выводом микросхемы и по току явно не потянет (необходимые
где-то 100 млА при нагр. возможности приб. 15 млА). Усилитель тока между ними вроде не помешает. Но умные люди говорят, что в импульсном режиме
будет все в порядке и с током и с яркостью. (что-то не верится). Мои варианты усилителей не работали, но как оказалось совсем из-за другого момента.
Прогнать на симуляторе не смог по времени исправленную прогу (тянут за грибами). Счастливо.
#11
Отправлено 18 Сентябрь 2011 - 21:55
Спасибо! Все понял, поправил, откомпилировал с одним предупреждением.
Но в Протеусе пока моделирование на работает. Буду разбираться.
По поводу ключа:
Для работ типа "попробовал-получилось" можно включать прямо на ноги, будет парится, но поработает.
Если подходить серьезно - выходной ключ обязателен, т.к. даже при отображении 1 при токе сегмента 10 мА ток через общий анод
будет превышать нагрузочную способность МК. В качестве ключа можно поставить npn транзистор на общий катод или pnp на анод.
Но в Протеусе пока моделирование на работает. Буду разбираться.
По поводу ключа:
Для работ типа "попробовал-получилось" можно включать прямо на ноги, будет парится, но поработает.
Если подходить серьезно - выходной ключ обязателен, т.к. даже при отображении 1 при токе сегмента 10 мА ток через общий анод
будет превышать нагрузочную способность МК. В качестве ключа можно поставить npn транзистор на общий катод или pnp на анод.
#12
Отправлено 19 Сентябрь 2011 - 12:23
При анимации в Проте проверьте как раз сохранение значения SREG ( до и после выполнения прерывания). Написаную мной конструкцию я на практике
не проверял. Удачи.
не проверял. Удачи.
Поделиться темой:
Страница 1 из 1