Страница 1 из 3
Мой первый проект на attiny2313 - не работает.
Добавлено: Вс ноя 27, 2011 20:07:41
BoRtO
Почитал, позубрил
Самоучитель разработчика устройств на микроконтроллерах AVR, решил написать свою первую програму, жмеш кнопку светодиод светит, пустил - не светит
откомпилировав, собрал в протеусе, а оно не работает

может подскажет кто-нибудь в чем суть...
в архиве схема, исходник, протеус
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Вс ноя 27, 2011 23:52:37
ut1wpr
BoRtO писал(а):может подскажет кто-нибудь в чем суть...
в архиве схема, исходник, протеус
Суть в полном непонимании происходящего. Убегайте бегом от всяческих визардов! Вы хоть поняли, что вам этот "волшебник" нагородил? В идеале ваша программа должна состоять из нескольких строк. А что у вас? Рановато вы компилировать начали. Этому должно предшествовать внимательное чтение литературы и понимание прочитанного. Кодевижны и прочие визарды этому не способствуют.
Правда, есть среди здесь их яростные поклонники, утверждающие что визарды экономят им бесконечное количество времени, которое они рационально тратят на глобальное решение глобальных проблем, не размениваясь на такие мелочи, как настройки портов, таймеров, уартов и прочей мелочи. Не барское это дело, мол.
Не уподобляйтесь им. Вникайте. Пригодится.
Чтобы немножко подсказать, помогу. Уберите ВСЕ инициализации после объявления функции main() вплоть до оператора while(1). Краткость вашей первой программы (уверен, она не ваша, вы бы не написали такого) поражает. Если вы еще вдобавок слегка владеете английским, вас должна будет насторожить фраза "Place your code here". Насторожить и призадуматься, а что же я должен "place here"?

ВЫ НЕ ЗАДАЛИ МК НИКАКОЙ ПРОГРАММЫ ДЕЙСТВИЙ. Вернее, попросили крутиться в бесконечном ПУСТОМ цикле. Скорее всего МК это и выполняет, и ничего более.
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 00:03:09
BCluster
Волшебник то вещь норм, но понимать что он делает надо!
Но тут даже не в том дело
Вообще функциональность не описана, автор покажи мне какая строчка твоего кода включает светодиод? И какая реагирует на нажатие кнопки?
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 00:17:13
O-LED
Убегайте бегом от всяческих визардов!
BoRtO и еще от всяких догм, часто глупых, часто не своих (кем то написанных).
Изучите поглубже работу какого нибудь компилятора (любого, какой вам больше понравится), и он ответит вам взаимностью. Ну а когда ваш уровень вырастет, то и советы в чем писать, и на чем писать вам не понадобятся.
По существу. у вас действительно кроме инициализации устройств ничего нет. Т.е. кроме того что с генерировал кодевижен нет ни одной вашей строчки. Может просто выложили не тот архив??
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 08:25:41
Reloader
Большие, сильные, тяжелые коты...
наиздевались? полегчало?
если бы мне так ответили - я бы реально обиделся. Не стыдно?
Хот бы кто - нить переборол свою лень и строчку кода написал...
Это, пес вас забери, ПЕРВЫЙ проект. с этого все начинается, от этого зависит - будет человек заниматься или нет. Вам бы помочь, а вы подножки ставите
Друг, во вложении исходник с описанием и протеуссовская модель.
и не служай "больших" - тем, кто может подключить экран от мобильника и рисовать на нем уже не под силу помигать светодидом
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 09:01:45
BCluster
Reloader писал(а):Хот бы кто - нить переборол свою лень и строчку кода написал...
Так все время и будет кто-то строчку кода писать. Мне не лень - просто это не педагогично. В интернетах куча примеров - надо их посмотреть и попробовать свое.
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 09:24:38
ploop
Это, пес вас забери, ПЕРВЫЙ проект. с этого все начинается, от этого зависит - будет человек заниматься или нет. Вам бы помочь, а вы подножки ставите
Интересно, почему я в своём
первом проекте, после того, как зажег светодиод и поморгал им, через десяток-другой минут сумел инициализировать UART и наблюдать эхо на компе?
Наверное потому, что писал в блокноте, и держал перед собой даташит? Или потому, что перед этим почитал статей на тему, что такое МК и с чем его едят?
Почему, вообще, у меня USB-программатор заработал сразу? С первого раза!? Потому, что паять умею? Или я уникум такой?
Ответ на все эти вопросы один: если хочешь научиться - учись. Что-то непонятно - спрашивай. А коли спрашиваешь - слушай, что советуют.
На написание этого поста у меня ушло гораздо больше времени, чем дать автору готовую строчку. А иногда приходится тянуть темы страницами, и объяснять примитивные вещи, но когда видишь, что человек учится и делает успехи - это только в радость.
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 09:37:31
Reloader
А коли спрашиваешь - слушай, что советуют.
а советуют "читай мануалы"
просто это не педагогично
зато "читай мануалы" это мега педагогично!!!
Не нужно быть специалистом, чтоб сказать "у тебя что-то неправильно, смотри в книжке"
ИМХО : Форумы создаются для помощи друг другу, а не для того, чтоб показать, насколько кто крут.
хвостами меряйтесь в другом месте!!!
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 09:47:16
BCluster
Reloader писал(а):Форумы создаются для помощи друг другу
вот именно. А это не помощь, а только во вред.
Когда не получается что-то конкретное и человек спрашивает что не так - всегда с радостью отвечу. А когда с бухты барахты что-то сделано с полным непониманием того, что делается это совсем другое - человек должен вникнуть в происходящее.
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 09:57:19
BoRtO
вот это я написал в новом проекте
Код: Выделить всё
.include "tn2313def.inc"
.list
.def temp = 16
.cseg
.org 0
idi temp, RAMEND
out SPL, temp
idi temp, 0
out DDRD, temp
idi temp, 0xFF
out DDRB, temp
out PORTB, temp
out PORTD, temp
idi temp, 0x80
out ACSR. temp
main: in temp, PIND
sbrc temp, 0
rjmp main
жму: генерировать програму, сохранитьи выйти, а оно мне кучу всякой...
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 10:04:10
ploop
Отлично. Можешь теперь прокомментировать каждую строку кода? Попробуй. Уверен, узнаешь много интересного
Например: зачем тебе понадобился аналоговый компаратор? И что будет после того, как кнопка будет нажата? Вообще, где проверяется нажатие?
Мы видим, видишь ли это ты?
жму: генерировать програму, сохранитьи выйти, а оно мне кучу всякой...
Так наверное надо написать, что не так. Перед этим желательно прочитать ошибки. После прочтения, в 90% случаев доходит, что надо сделать.
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 10:10:57
Engineer_Keen
Там между операндами точка или это опечатка?
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 10:15:46
ploop
Это нежелание прочесть вывод компилятора, который теперь явно указал на эту строку.
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 10:23:32
BoRtO
Engineer_Keen писал(а):
Там между операндами точка или это опечатка?
опечатка. должна быть запятая
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 10:48:40
BoRtO
ploop писал(а):Отлично. Можешь теперь прокомментировать каждую строку кода? .
Код: Выделить всё
.include "tn2313def.inc" ; Файл описания
.list ; включение листинга
.def temp = 16 ; главный рабочий регистир
.cseg ; выбор памяти
.org 0 ; установка адреса на 0
idi temp, RAMEND ; выбор адреса стека
out SPL, temp ; запись регистра стека
idi temp, 0 ; пишу 0 в регистр temp
out DDRD, temp ; пишу 0 на порт PD - порт ввода
idi temp, 0xFF ; число $FF в регистр temp
out DDRB, temp ; пишу temp на порт PB - порт вывода
out PORTB, temp ; потушить светодиод
out PORTD, temp ; вкл. внутренный резистор
idi temp, 0x80 ; вкл. компаратор
out ACSR, temp
main: in temp, PIND ; чтения порта PD
sbrc temp, 0 ; переслать в порт PB
rjmp main ; начало цикла
прокоментировав
не ругайтесь на меня, я начинающий в написании программ
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 10:54:52
ploop
sbrc temp, 0 ; переслать в порт PB
Вот тут у тебя ошибка.
SBRC -
Skip if
Bit in
Register
Cleared - дословно, "пропустить, если бит в регистре очищен".
Если бит, номер которого ты указал в этой команде, (тут нулевой, младший бит) будет очищен (равен нулю), следующая команда пропускается. А следующая команда - rjmp, т.е. при нажатии ты её перепрыгиваешь и попадаешь в никуда (дальше кода нет)
Думаем...
зы: а зачем всё-таки компаратор-то?
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 11:00:17
BoRtO
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 11:01:30
pyzhman
Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 11:03:39
BoRtO
от балда
спасибо

Re: Мой первый проект на attiny2313 - не работает.
Добавлено: Пн ноя 28, 2011 11:16:55
BoRtO
ploop писал(а):А следующая команда - rjmp, т.е. при нажатии ты её перепрыгиваешь и попадаешь в никуда (дальше кода нет)
а что тогда с
rjmp делать?