Мой первый проект на attiny2313 - не работает.

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

Почитал, позубрил Самоучитель разработчика устройств на микроконтроллерах AVR, решил написать свою первую програму, жмеш кнопку светодиод светит, пустил - не светит
откомпилировав, собрал в протеусе, а оно не работает :cry:
может подскажет кто-нибудь в чем суть...
в архиве схема, исходник, протеус
Вложения
main project.rar
(70.25 КБ) 262 скачивания
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

BoRtO писал(а):может подскажет кто-нибудь в чем суть...
в архиве схема, исходник, протеус
Суть в полном непонимании происходящего. Убегайте бегом от всяческих визардов! Вы хоть поняли, что вам этот "волшебник" нагородил? В идеале ваша программа должна состоять из нескольких строк. А что у вас? Рановато вы компилировать начали. Этому должно предшествовать внимательное чтение литературы и понимание прочитанного. Кодевижны и прочие визарды этому не способствуют.
Правда, есть среди здесь их яростные поклонники, утверждающие что визарды экономят им бесконечное количество времени, которое они рационально тратят на глобальное решение глобальных проблем, не размениваясь на такие мелочи, как настройки портов, таймеров, уартов и прочей мелочи. Не барское это дело, мол.
Не уподобляйтесь им. Вникайте. Пригодится.
Чтобы немножко подсказать, помогу. Уберите ВСЕ инициализации после объявления функции main() вплоть до оператора while(1). Краткость вашей первой программы (уверен, она не ваша, вы бы не написали такого) поражает. Если вы еще вдобавок слегка владеете английским, вас должна будет насторожить фраза "Place your code here". Насторожить и призадуматься, а что же я должен "place here"? :) ВЫ НЕ ЗАДАЛИ МК НИКАКОЙ ПРОГРАММЫ ДЕЙСТВИЙ. Вернее, попросили крутиться в бесконечном ПУСТОМ цикле. Скорее всего МК это и выполняет, и ничего более.
С уважением,
Виктор.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Волшебник то вещь норм, но понимать что он делает надо!
Но тут даже не в том дело
Вообще функциональность не описана, автор покажи мне какая строчка твоего кода включает светодиод? И какая реагирует на нажатие кнопки?
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57

Сообщение O-LED »

Убегайте бегом от всяческих визардов!

BoRtO и еще от всяких догм, часто глупых, часто не своих (кем то написанных).
Изучите поглубже работу какого нибудь компилятора (любого, какой вам больше понравится), и он ответит вам взаимностью. Ну а когда ваш уровень вырастет, то и советы в чем писать, и на чем писать вам не понадобятся.

По существу. у вас действительно кроме инициализации устройств ничего нет. Т.е. кроме того что с генерировал кодевижен нет ни одной вашей строчки. Может просто выложили не тот архив??
KIT
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 451
Зарегистрирован: Сб фев 26, 2011 14:38:42
Откуда: Новочеркасск

Сообщение Reloader »

Большие, сильные, тяжелые коты...
наиздевались? полегчало?
если бы мне так ответили - я бы реально обиделся. Не стыдно?

Хот бы кто - нить переборол свою лень и строчку кода написал...
Это, пес вас забери, ПЕРВЫЙ проект. с этого все начинается, от этого зависит - будет человек заниматься или нет. Вам бы помочь, а вы подножки ставите

Друг, во вложении исходник с описанием и протеуссовская модель.
и не служай "больших" - тем, кто может подключить экран от мобильника и рисовать на нем уже не под силу помигать светодидом
Вложения
TestLed.zip
Исходник, модель
(47.37 КБ) 201 скачивание
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Reloader писал(а):Хот бы кто - нить переборол свою лень и строчку кода написал...
Так все время и будет кто-то строчку кода писать. Мне не лень - просто это не педагогично. В интернетах куча примеров - надо их посмотреть и попробовать свое.
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Это, пес вас забери, ПЕРВЫЙ проект. с этого все начинается, от этого зависит - будет человек заниматься или нет. Вам бы помочь, а вы подножки ставите
Интересно, почему я в своём первом проекте, после того, как зажег светодиод и поморгал им, через десяток-другой минут сумел инициализировать UART и наблюдать эхо на компе?
Наверное потому, что писал в блокноте, и держал перед собой даташит? Или потому, что перед этим почитал статей на тему, что такое МК и с чем его едят?
Почему, вообще, у меня USB-программатор заработал сразу? С первого раза!? Потому, что паять умею? Или я уникум такой?

Ответ на все эти вопросы один: если хочешь научиться - учись. Что-то непонятно - спрашивай. А коли спрашиваешь - слушай, что советуют.

На написание этого поста у меня ушло гораздо больше времени, чем дать автору готовую строчку. А иногда приходится тянуть темы страницами, и объяснять примитивные вещи, но когда видишь, что человек учится и делает успехи - это только в радость.
Мучитель микросхем
Аватара пользователя
Сообщения: 451
Зарегистрирован: Сб фев 26, 2011 14:38:42
Откуда: Новочеркасск

Сообщение Reloader »

А коли спрашиваешь - слушай, что советуют.
а советуют "читай мануалы"
просто это не педагогично

зато "читай мануалы" это мега педагогично!!!

Не нужно быть специалистом, чтоб сказать "у тебя что-то неправильно, смотри в книжке"
ИМХО : Форумы создаются для помощи друг другу, а не для того, чтоб показать, насколько кто крут.

хвостами меряйтесь в другом месте!!!
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Reloader писал(а):Форумы создаются для помощи друг другу
вот именно. А это не помощь, а только во вред.
Когда не получается что-то конкретное и человек спрашивает что не так - всегда с радостью отвечу. А когда с бухты барахты что-то сделано с полным непониманием того, что делается это совсем другое - человек должен вникнуть в происходящее.
Контактная информация:
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение 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
жму: генерировать програму, сохранитьи выйти, а оно мне кучу всякой...
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Отлично. Можешь теперь прокомментировать каждую строку кода? Попробуй. Уверен, узнаешь много интересного :)

Например: зачем тебе понадобился аналоговый компаратор? И что будет после того, как кнопка будет нажата? Вообще, где проверяется нажатие?
Мы видим, видишь ли это ты?
жму: генерировать програму, сохранитьи выйти, а оно мне кучу всякой...
Так наверное надо написать, что не так. Перед этим желательно прочитать ошибки. После прочтения, в 90% случаев доходит, что надо сделать.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Код: Выделить всё

            out         ACSR. temp
Там между операндами точка или это опечатка?
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Это нежелание прочесть вывод компилятора, который теперь явно указал на эту строку.
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

Engineer_Keen писал(а): Там между операндами точка или это опечатка?
опечатка. должна быть запятая
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение 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             ; начало цикла
прокоментировав

не ругайтесь на меня, я начинающий в написании программ
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

sbrc temp, 0 ; переслать в порт PB
Вот тут у тебя ошибка.
SBRC - Skip if Bit in Register Cleared - дословно, "пропустить, если бит в регистре очищен".
Если бит, номер которого ты указал в этой команде, (тут нулевой, младший бит) будет очищен (равен нулю), следующая команда пропускается. А следующая команда - rjmp, т.е. при нажатии ты её перепрыгиваешь и попадаешь в никуда (дальше кода нет)

Думаем...

зы: а зачем всё-таки компаратор-то?
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

вот надумал

Код: Выделить всё

out         PORTB, temp       ; переслать в порт PB
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Код: Выделить всё

.def temp = 16                           ; главный рабочий регистир
Может R16?
Docendo discimus
Контактная информация:
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

от балда :oops:
спасибо :)
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Друг Кота
Сообщения: 3424
Зарегистрирован: Вт ноя 30, 2010 11:46:16
Откуда: Україна

Сообщение BoRtO »

ploop писал(а):А следующая команда - rjmp, т.е. при нажатии ты её перепрыгиваешь и попадаешь в никуда (дальше кода нет)
а что тогда с rjmp делать?
Пора что то поменять в своей жизни - поменял windows.
КПІ РТФ!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»