Форум по микроконтроллерам: Счетчик На At90S2313 - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Счетчик На At90S2313 ошибка при ассемблировании

#1 Пользователь офлайн   makucha 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 02 Сентябрь 11

Отправлено 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.
Подскажите, пожалуйста, что делать?
0

#2 Пользователь офлайн   444c-c4 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08 Январь 11

Отправлено 06 Сентябрь 2011 - 11:18

Отбуилтил исходник в AVRSt. Пробовал используемое оборудование и "2313def.inc" и "Tn2313def.inc". Нормально компилир, без ошибок и предупреждений.
Сначала сохранил предлагаемый файл с текстом программы в корне каталога (скачал в виде архива, потом разархивировал здесь же).Открыл студию-новый проект-АВРАСМ-ТН2313-Финиш, потом указал путь к разархив. папке и все, почему-то без проблем. Нет ли у Вас законченного работающего нормально в
Протеусе ключа для динамической индикации: подать плюс питания на общий анод при нулевом потенциале на базе (ток немного больше 100млА), при единице
на базе знакоместо чтобы молчало.
0

#3 Пользователь офлайн   rasel 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 26 Февраль 11

Отправлено 09 Сентябрь 2011 - 14:57

Привет всем ;)
Есть проблема с данным счетчиком, :mellow: Первое этот микроконтроллер устарел и купить его практически нет возможности, есть ATTINY2313 но в симуляции в протеусе при прямом счете после того как счёт досчитает до 100 счетчик сбрасывается в ноль и дальше считает нормально, в симуляции на AT90S2313 такого нет. Второе это отсутствие прошивки под общий катод и анод.Третье мало разрядов хотя бы пять и шикарно шесть.
Возможно найдется энтузиаст и переделает это весьма полезное устройство в хозяйстве самоделкина, будем надеяться. СПАСИБО. :(
0

#4 Пользователь офлайн   makucha 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 02 Сентябрь 11

Отправлено 11 Сентябрь 2011 - 23:18

444c-c4 Ключа для динамической индикации нет, и из вашего сообщения не понял, что он может из себя представлять.
rasel Я не собираюсь делать счетчик на AT90S2313 по причине указанной Вами, но ATTINY2313 является полным аналогом с расширенными возможностями, хотя
при ремонтной замене могут быть преодолимые сложности с программным обеспечением. В сети можно найти массу историй с приключениями на эту тему.
Я - схемотехник, программирование - добровольно-принудительная необходимость.
Возвращаясь к проблеме: Исходный текст LCD5.asm содержит ошибки, с которыми я разобрался на 50%. Запятую на точку с запятой в строке 217 исправил,
а о том, что не понял задал вопрос на форуме. Пока ответов от программистов нет :(
0

#5 Пользователь офлайн   rasel 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 26 Февраль 11

Отправлено 12 Сентябрь 2011 - 01:13

Да я собрал и нормально работает, как я уже говори мало разрядов :(
0

#6 Пользователь офлайн   makucha 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 02 Сентябрь 11

Отправлено 12 Сентябрь 2011 - 13:13

rasel! При сборке Вы зашили в проц код и исходник не трогали?
0

#7 Пользователь офлайн   rasel 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 7
  • Регистрация: 26 Февраль 11

Отправлено 13 Сентябрь 2011 - 15:23

я не компилировал я просто прошил микроконтроллер :(
0

#8 Пользователь офлайн   makucha 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 02 Сентябрь 11

Отправлено 14 Сентябрь 2011 - 13:35

Здесь http://forum.eldigi....p?showtopic=772 четырехразрядный счетчик
0

#9 Пользователь офлайн   444c-c4 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08 Январь 11

Отправлено 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 млА). Усилитель тока между ними вроде не помешает. Но умные люди говорят, что в импульсном режиме
будет все в порядке и с током и с яркостью. (что-то не верится). Мои варианты усилителей не работали, но как оказалось совсем из-за другого момента.
Прогнать на симуляторе не смог по времени исправленную прогу (тянут за грибами). Счастливо.
0

#10 Пользователь офлайн   444c-c4 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08 Январь 11

Отправлено 17 Сентябрь 2011 - 09:54

push pop SREG я везде убрал
0

#11 Пользователь офлайн   makucha 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 02 Сентябрь 11

Отправлено 18 Сентябрь 2011 - 21:55

Спасибо! Все понял, поправил, откомпилировал с одним предупреждением. ;)
Но в Протеусе пока моделирование на работает. Буду разбираться. :(
По поводу ключа:
Для работ типа "попробовал-получилось" можно включать прямо на ноги, будет парится, но поработает.
Если подходить серьезно - выходной ключ обязателен, т.к. даже при отображении 1 при токе сегмента 10 мА ток через общий анод
будет превышать нагрузочную способность МК. :mellow: В качестве ключа можно поставить npn транзистор на общий катод или pnp на анод.
0

#12 Пользователь офлайн   444c-c4 

  • Участник
  • PipPip
  • Группа: Пользователи
  • Сообщений: 19
  • Регистрация: 08 Январь 11

Отправлено 19 Сентябрь 2011 - 12:23

При анимации в Проте проверьте как раз сохранение значения SREG ( до и после выполнения прерывания). Написаную мной конструкцию я на практике
не проверял. Удачи.
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей