Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Помогите начинающему по ATmega8515

Непрочитано 29.12.2011, 02:42  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от MisterDi Посмотреть сообщение
БРЕД СИВОЙ КОБЫЛЫ !!!!! Вы хоть раз смотрели на процедуру начального старта любой вычислительной системы???
Согласно стандартов, объявления процедур и функций обязаны находиться.... достигается или расположением тел функций перед основной программой или объявлением их в заголовочном файле или в теле основного модуля. Для программ на ассемблере это не действует, там программист сам должен заботиться о правильном размещении функций в памяти программ. Но я не знаю контроллера, у которого по адресу начального сброса в радиусе 3-10 команд не находился бы безусловный переход на процедуру начальной инициализации системы.
А вы хоть раз смотрели текст проги от DAVE_ELEKTRIK который сейчас обсуждаем - посмотрите , ссылка на файл в посте 297 - вот о нем сейчас речь.

Посмотрел я теперь и на сам вектор прерываний для RESET-a - в общем там стоит rjmp для перехода сразу на кусок как раз инициализации ,и перед основной программой - да ,переход есть туда минуя все подпрограммы , и это будет работать , тогда получается я ошибся сказав что после включения контроллер проходит и все сначала написанные подпрограммы - получается он их сразу - идет в нормальный кусок кода с RESET и инициализацией .Здесь MisterDi прав , признаю. Но писать именно вначале все подпрограммы и подпрограммы обработки прерываний думаю что все же не стоит , и нагляднее и безопаснее их размещать - после текста основной проги.

А чем вручную при отладке и вводится в программу значение нажатой или отжатой кнопки с внешних выводов контроллера ? (что-то не заметил обработку никаких входных пинов контроллера).

Не удержался ,и тоже прогнал прогу в студии .
В ходе прогона обнаружил что после сработки проги ,как и полагается на нажатие (считаем что нажатие кнопки дает на какой-либо входной вывод 0 , а отжатие ее - 1), при нажатой еще кнопке - регистр MCUCR неправильно перебивается на прерывание на отжатие: не те биты какие надо для INT0 - вместо ISC00 перебивается ISC11 который к INT0 не имеет отношения , надеюсь строчку там сами найдете , а обратно пока правильно .Еще заметил что времена антидребезга перепутаны - для выжидания нажатого состояния записывается 128 число в счетчики , а для выжидания отжатого состояния - 50, а надо бы наоборот - подольше на отжатие поставить а меньше на нажатие, так что поправьте там у себя .А так в целом прога работает , и реакция именно на нажатие сделано , и после инициализации первой же реакция тоже именно на нажатие включено.Про breq посмотрел поподробнее , освежил свою память - эта команда работает и с "dec" и "inc" тоже ,а потому можно оставить в проге перед breq все как было ,это работает и так .
Реклама:
__________________
Короче асма кода нет !

Последний раз редактировалось pinco; 29.12.2011 в 07:58.
pinco вне форума  
Непрочитано 29.12.2011, 06:25  
roma9112
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2008
Адрес: Волгоград
Сообщений: 507
Сказал спасибо: 42
Сказали Спасибо 49 раз(а) в 46 сообщении(ях)
roma9112 на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от DAVE_ELEKTRIK Посмотреть сообщение
Да я не боюсь этих прерываний, я боюсь сложных алгоритмов!
А именно где надо всю периферию задействовать, в нужном месте какую команду лучше использовать - ASM. Не художник я пока этих алгоритмов! Вот сижу и по 10 раз одну и тоже главу перечитываю, может где то смысл потерял, или что то пропустил в книге!
А Вы не бойтесь! Тут как говорится - не войдя в реку... Книги(теория)-оч. хорошо, но без практики - тоже, пустота... Тоже читаю, наступаю на грабли постоянно, иной раз и на свои(чаще на свои), но сначала Студия и Протеус терпит мои издевательства, а потом контроллер, зато, когда что-то получается в реале - такой восторг
Зато мы самого MisterDi сюда умудрились вовлечь! Вправит он нам наконец-то мозг!

Последний раз редактировалось roma9112; 29.12.2011 в 06:30.
roma9112 вне форума  
Непрочитано 29.12.2011, 09:01  
DAVE_ELEKTRIK
Прописка
 
Аватар для DAVE_ELEKTRIK
 
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
DAVE_ELEKTRIK на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от pinco Посмотреть сообщение
Посмотрел я теперь и на сам вектор прерываний для RESET-a - в общем там стоит rjmp для перехода сразу на кусок как раз инициализации ,и перед основной программой - да ,переход есть
Вот я пытался сказать в 317 посте, что у меня есть относительный переход но не сумел правильно выразится.
И вообще, тему надо было открывать с обсуждения наверное правильности оформления программ, а потом уже подниматься по лесенке. Хотя так тоже полезно, всеравно без рассмотрения программы, не получится обсудить оформление!
Сообщение от pinco Посмотреть сообщение
В ходе прогона обнаружил что после сработки проги ,как и полагается на нажатие
Сегодня еще раз пересмотрю программу, в дизасссемблере попробую, пошагово
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...
DAVE_ELEKTRIK вне форума  
Непрочитано 29.12.2011, 19:05  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от DAVE_ELEKTRIK Посмотреть сообщение
...Хотя так тоже полезно, всеравно без рассмотрения программы, не получится обсудить оформление!

Сегодня еще раз пересмотрю программу, в дизасссемблере попробую, пошагово...
Сама программа хоть и коротенькая но обработка кнопок в ней состоит из вложенных друг в друга циклов по прерыванию с изменяющимися условиями которые в текущем прерывании перебиваются для следующего прерывания , и к тому попутно же вставлена еще и перебивка таймера , для начинающего полагаю что возможно сложновато будет это освоить, я бы предложил DAVE_ELEKTRIK-у написать сначала что-нибудь по алгоритму попроще ,например простой опрос только в одном цикле и плюс отдельный таймер , программный , на любом регистре ,или аппаратный , в виде отдельной подпрограммы, для изучения понятнее будет , а потом уже переходить для изучения на программы типа этой , тем более Вы где-то признаете что в алгоритмах не художник пока , так что советую пока набить руку (и мозг!) на составленных Вами своих прогах попроще сначала , пусть даже без изысков будет ,зато легче для понимания и быстрее освоите .
__________________
Короче асма кода нет !

Последний раз редактировалось pinco; 29.12.2011 в 19:32.
pinco вне форума  
Непрочитано 30.12.2011, 08:39  
DAVE_ELEKTRIK
Прописка
 
Аватар для DAVE_ELEKTRIK
 
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
DAVE_ELEKTRIK на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от pinco Посмотреть сообщение
регистр MCUCR неправильно перебивается на прерывание на отжатие: не те биты какие надо для INT0 - вместо ISC00 перебивается ISC11 который к INT0 не имеет отношения
Прогнал прогу слов нет... одни выражения!
Вы правы на все сто!!! Вот слепота... возьми да посмотри справочник, так нет! Думаешь, КНИГА, должно быть все правильно! Расписал даже на листочке алгоритм, смотришь ну должна работать прога, а тут да... или типография "Наука" без ответственно подошла к оформлению книги или Ревич Ю.В. просто наскоро прогу косячил!
Сообщение от pinco Посмотреть сообщение
Сама программа хоть и коротенькая но обработка кнопок в ней состоит из вложенных друг в друга циклов по прерыванию с изменяющимися условиями которые в текущем прерывании перебиваются для следующего прерывания , и к тому попутно же вставлена еще и перебивка таймера , для начинающего полагаю что возможно сложновато будет это освоить
Для меня, мне кажется, наоборот лучше будет уже сейчас потихоньку переходить на более сложные рассмотрения программ. Сам конечно не потяну, надо что бы кто то подсказывал. Я около года пытаюсь обуздать искусство программирования AVR. А для тех кто только взял книгу в руки, согласен, конечно трудновато.
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...

Последний раз редактировалось DAVE_ELEKTRIK; 30.12.2011 в 09:03.
DAVE_ELEKTRIK вне форума  
Непрочитано 31.12.2011, 04:46  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от DAVE_ELEKTRIK Посмотреть сообщение
Прогнал прогу слов нет... одни выражения!
Вы правы на все сто!... или типография "Наука" без ответственно подошла к оформлению книги или Ревич Ю.В. просто наскоро прогу косячил!

Для меня, мне кажется, наоборот лучше будет уже сейчас потихоньку переходить на более сложные рассмотрения программ. Сам конечно не потяну, надо что бы кто то подсказывал. Я около года пытаюсь обуздать искусство программирования AVR. А для тех кто только взял книгу в руки, согласен, конечно трудновато.
Может и накосячили чего ,а может и в типографии просто опечатались - это ж пример просто , для обучения , так что уж слишком сильно там баги не стали вылавливать - но в любом случае всегда проверяйте сами что там написано в книге а не доверяйте слепо - это и изучение попутно , того что написано , а не просто просмотр будет ,и сами научитесь быстрее уже свои проги создавать .Старайтесь разные свои варианты сами пробовать больше , а не только из книг , так и запоминается быстрее - "как-то само собой" , и интереснее чем просто повторять написанные примеры.Насчет подсказок - подскажу , по мере возможности и свободного времени, да и к тому же этот форум наверняка еще масса народу просматривает - если я что упущу - другие подскажут обязательно , надеюсь .

P.S. Рекомендую также скачать себе и оригиналы датачетов на контроллеры на английском , и уже по ним сверяться - насколько правильно используются в проге те или иные биты , регистры , флаги и прочее - в оригинале куда и для чего там они предназначены как правило обычно меньше ошибок ,чем в наших переводных книгах (хотя и не факт ,иногда бывает и наоборот , но реже).Если с английским не очень то ничего не поделаешь - придется первое время и со словарем посидеть . Да и этот сам английский технический о-о-очень потом пригодится Вам в дальнейшем при конструировании вообще электроники современной .
__________________
Короче асма кода нет !

Последний раз редактировалось pinco; 31.12.2011 в 04:52.
pinco вне форума  
Непрочитано 31.12.2011, 12:01  
DAVE_ELEKTRIK
Прописка
 
Аватар для DAVE_ELEKTRIK
 
Регистрация: 18.10.2010
Адрес: Planet Earth )
Сообщений: 120
Сказал спасибо: 14
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
DAVE_ELEKTRIK на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от pinco Посмотреть сообщение
пример просто для обучения - но в любом случае всегда проверяйте сами что там написано в книге а не доверяйте слепо - это и изучение попутно , того что написано , а не просто просмотр будет ,и сами научитесь быстрее уже свои проги создавать .Старайтесь разные свои варианты сами пробовать больше , а не только из книг , так и запоминается быстрее - "как-то само собой" , и интереснее чем просто повторять написанные примеры.Насчет подсказок - подскажу , по мере возможности и свободного времени, да и к тому же этот форум наверняка еще масса народу просматривает - если я что упущу - другие подскажут обязательно , надеюсь .
Что бы что то там свое создать, опыта нет по созданию алгоритма, честно я даже сейчас не представляю, а если захочу создать сложную схему чего то там...! Приходится рассматривать алгоритмы уже написанные кем то, тем более алгоритмы для кнопок... Зачем выдумывать велосипед, когда есть готовый. Кто то там в постах, рекомендовал использовать куски кода из готовых программ. Пока так и делаю
Цитата:
так и запоминается быстрее - "как-то само собой"
Бывает туплю, за это просто прошу прощения. Не хватает времени, если спокойно сесть и заниматься только этим, то возможно и сам разобрался, так что это все не моя работа, а просто мой интерес - хобби.
За подсказки Вам и всем кто отвечает на вопросы новичков конечно огромное спасибо! Я надеюсь что так и дальше будет,- возможность рассмотрения всяких интересных кусков программ для ознакомления.

Цитата:
Рекомендую также скачать себе и оригиналы датачетов на контроллеры на английском , и уже по ним сверяться...
Если с английским не очень то ничего не поделаешь - придется первое время и со словарем посидеть ...
Мне кажется на все МК сразу скачивать нет смысла, занимает только дисковое пространство, сейчас можно в любое время посмотреть онлайн в нете (для тех у кого безлимитный или шара). В компе только тот, который нужен.
А по поводу английского, я говорю за себя, кое что знаю - а кое что через гугл переводчик перевожу. Проблем с этим нет.
С уважением и наступающим всех Новым годом! DAVE_ELEKTRIK
__________________
Мозги кипят, ядрить твою валентность!!! Пойду закладывать остальные ингредиенты...
DAVE_ELEKTRIK вне форума  
Непрочитано 01.01.2012, 04:16  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Начните сами создавать хоть что-то - вот Вам и опыт начнет прибавляться , а так как сейчас говорите - получается что не создаете прог пока опыта нет , а опыта нет пока не создаете , и значит замкнутый круг- и в итоге получается что так и никогда этого самого опыта и не наберетесь , ну и соответственно - еще долго не создадите ничего собственного . Заблуждение это огромное. Для начинания что-то творить надо именно начать творить , а не просматривать готовые примеры переписывая просто их себе , простое переписывание многого не даст ,и насчет велосипеда скажу одно - если коротко - то просто нет готовых велосипедов на все случаи жизни ,и в общем никто их Вам не предоставит, даже инет , и что там Вам надо в конкретной схеме-задумке , какие функции или действия, если есть по настоящему стремление создать свою конструкцию , схему , - дотумкайте написать именно сами свою программу без всяких долгих шатаний и копирований по примерам , пусть она будет и не такая заковыристая как в примерах, попроще, да зато Вы ее создаете ,сами , и это лучше будет, и к тому же чтобы начать писать по простым алгоритмам опыта можно не иметь и совсем почти никакого .А второе заблуждение это как раз для начинающих - "...использовать готовые куски кода... " - такая типа освобождалка для лентяев , если можно так выразиться , но не думайте что использовать готовые куски это -"так и запоминается быстрее - "как-то само собой" - , я говорил что когда именно сам начинаешь писать хоть что-то - вот тогда наконец на самом деле "...так и запоминается быстрее - "как-то само собой"..." , а просто копирование на первых этапах чужих кусков кода - это никак не быстрее усваивается ,и тем более не само по себе запоминается , поскольку по настоящему не вникаешь внутрь этих самых чужих кусков кода ,а просто используешь их, а все потому что не ты сам их создаешь .Это потом можно готовые куски конечно использовать , когда врубаешься конкретно как они работают ,и изменить их и дополнить ,или поправить , но все это - когда УЖЕ ЕСТЬ ОПЫТ , и много времени поэтому это не займет .А так сейчас, как есть , как Вы относитесь к этому - можно еще ну о-о-очень долго разбираться ,так и не начав ничего писать самому . Надеюсь в общих чертах понятно , о чем я .

P.S. Естественно все датачеты по всем МК какие есть скачивать не нужно , - никакой емкости компа для этого не хватит , я имел ввиду только на те МК которые изучаете в данный момент .
__________________
Короче асма кода нет !

Последний раз редактировалось pinco; 01.01.2012 в 05:28.
pinco вне форума  
Непрочитано 01.01.2012, 15:21  
Pajatel
Прописка
 
Аватар для Pajatel
 
Регистрация: 04.12.2010
Сообщений: 243
Сказал спасибо: 9
Сказали Спасибо 51 раз(а) в 32 сообщении(ях)
Pajatel на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Прочитал ветку - прикольно, потому как сам тоже новичёк в этом деле. Как начинающий - начинающему поделюсь своим опытом изучения программирования авр. Я электронщик - ремонтник авто, жизнь просто заставила занятся контроллерами вот и дерзаю. Начал с Tiny45 и асма, читал всё подряд - даташиты, всяческие статьи, проэкты, короче всё на что падал взгляд. Потом взял готовый проэкт, сварганил на макетке, зашил проц и дерзал его до потери пульса Идеальных проэктов не существует, потому все замеченные недостатки в чужом проэкте переделывал до такой степени чтоб мне это понравилось. Потом понадобилось решить одну прикладную задачу с передлкой работы фар на одном американском авто, проблемка не большая, но заняла недельку, пока отработал схемотехнику, програмульку и т.д.Но результат отличный - с десяток авто катается с моей переделкой, все счастливы. Теперь следущий этап - поверил в свои силы и взялся за сложный проэкт диагностического пробора, контроллер - ATMega88, LCD,encoder и ещё много всякой хрени.На данный момент прибор готов на 25%, даже уже помогает зарабатывать деньги. СИ не знаю, только в общих чертах, но думаю займусь изучением но только исходя из того, что в будущем собираюсь перейти на другие контроллеры типа STM32 и т.д. Для авр вполне достаточно и асма.И не соглашусь, что на асме программа пишется долго, всё зависит на сколько хорошо ты его знаешь и понимаешь суть процессов.А если не ленится код сопровождать понятными для тебя коментариями, то вообще программирование будет доставлять удовольтвиеПереферию контроллеров изучаю по мере необходимости, начал с портов, таймеров, сейчас подхожу к UART,SPI и т.д. По поводу использования чужих наработок, хм, тут сложно, может я очень придирчивый, может просто слабо ищу, но то что мне поподалось, всё почему то или как то криво работает или не устраивает в принципе, потому даже такую процедуру как обработка тех же кнопок изобретаю сам. Но эти свои алгоритмы пишу с таким расчётом, чтобу в дальнейшем мог легко перенести в другие проэкты, чтоб не изобретать потом велосипед дважды. Вот допустим всё те же кнопки, мне нужно обсасывать 3 кнопки, висящих на разных портах/пинах. Сделал алгоритм с запасом так сказать, может обрабатывать одновременно 5 кнопок, не использует не одно внешнее прерывание, нажатие сопровождается звуком, легко поменять задержку на дребезг, отнимает на свои нужды один младший и один старший регистр. Думаю без проблем можно встроить в любой проэкт.Работает замечательно с разными типами кнопок, будь то резиновые контакты или металические, код получился компактый. Вот натворю таких алгоримиков на основные задчки, которые обычно используются практически в любом проэкте и состряпать очередной проэкт займет совсем не много времени хоть и пишу на асме. СИ конечно тоже нужен особенно для математики, вот сейчас столкнулся с задачкой, нужны арифметические операции с большими числами и подвис малёха, интернет молчит как рыба, на СИ видел решения, хотя опять же, не очень они мне нравятся, но какие никакие а есть Буду дерзать, глядишь и на асме малой кровью обойдусь) Ну надеюсь мой опус будет тебе полезен, хотя у каждого свой путь.
Pajatel вне форума  
Непрочитано 01.01.2012, 21:27  
pinco
Гражданин KAZUS.RUN
 
Регистрация: 04.04.2007
Сообщений: 937
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
pinco на пути к лучшему
По умолчанию Re: Помогите начинающему по ATmega8515

Сообщение от Pajatel Посмотреть сообщение
...СИ конечно тоже нужен особенно для математики, вот сейчас столкнулся с задачкой, нужны арифметические операции с большими числами и подвис малёха, интернет молчит как рыба, на СИ видел решения, хотя опять же, не очень они мне нравятся...
Ну да , насчет обработки кнопок , кусков кода , железа, и прочего - у Вас нормальный подход , считаю.

А про асм - на асме нет такой арифметической операции которая не может быть написана-реализована на нем, да хоть черта с рогами , на асме всё можно отлично реализовать . Те же самые функции на С если посмотреть его библиотеки для арифметических функций внутри - как раз на асме всё (но для разных семейств контроллеров - свои разные реализации), так что смело пробуйте операции с большими многобайтовыми числами и на асме , раз на нем у Вас легче и проще самому себе что либо сделать .
__________________
Короче асма кода нет !

Последний раз редактировалось pinco; 01.01.2012 в 21:33.
pinco вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите начинающему (PIC16F84A). Slava-martyn Микроконтроллеры, АЦП, память и т.д 11 09.09.2010 21:55
помогите начинающему по WinAVR umkamaks Микроконтроллеры, АЦП, память и т.д 4 05.05.2010 21:01
Помогите начинающему! kolira Микроконтроллеры, АЦП, память и т.д 6 30.01.2010 15:22
Помогите советом начинающему eler Делимся опытом 100 11.09.2008 17:28
Помогите начинающему!!!! sma-etu Микроконтроллеры, АЦП, память и т.д 2 13.12.2006 18:31


Часовой пояс GMT +4, время: 03:52.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.