КРУЖОК для желающих изучить микроконтроллеры AVR. | |||||
---|---|---|---|---|---|
INSAN 05/12/2012 14:24 |
Как вы думаете , стоит ли всё таки начать тему про программирование AVR ?(я помню ,что я тему эту уже обсуждал с вами,но хочу видеть конкретных людей настроенных для изучения этих микроконтроллеров) Задаю этот вопрос потому, что одному мне как то скучно да и трудно разбираться в этом деле одному. Последний год как то забросил это дело не смотря на то , что много потратил в денежном выражении на покупку необходимого оборудования да времени уделил не мало . В общем говоря дайте знать кто хочет изучить микроконтроллеры AVR. Давайте пока, что организуемся(построимся ) а потом обсудим материальную часть для изучения AVR , и потом начнём потихонечку учиться . Мне .лично не стыдно лишний раз спросить, если не понятно и добиться своей цели в последующем. (надеюсь у нас всё получиться!) |
||||
n max 05/12/2012 14:43 |
это можно тоже начал изучать но забросил с пиками более менее разобрался из материальной базы есть только программатор тритон с переходниками-отладка обычно на макетке правда под авр проги не писал но даташиты почитывал от пиков они не очень сильно отличаються |
||||
INSAN 05/12/2012 15:04 |
n max, давайте подключайтесь. чем пики авр более привлекательны и легче показались мне. Да , забыл написать с разу, ИЗУЧАТЬ будем АССЕМБЛЕР для AVR. так легче будет изучать внутренности микрокантроллера |
||||
n max 05/12/2012 15:42 |
дык я не против начинал с пиков потому,что был халявный доступ к самим микросхемам в принципе если написать пару простеньких прог по морганию светодиодами а потом постепенно усложнять то и с авр разобраться можно.Внутренности контроллера подробно описаны в даташите.Начинал писать простенькие проги ещё на Z80 от синклера так,что опыт кое какой имееться |
||||
INSAN 05/12/2012 15:51 |
это даже очень хорошо. пока еще наберём несколько человек заинтересованных в этом и можно будет понемногу начинать с миганий светодиодиков на ножках мк ДОБАВЛЕНО 05/12/2012 17:03 А я за сутки в наряде до завтра почитаю кое какую литературу и подумаю как удобней будет нам работать совместно .нужно составить некий план-конспект я думаю так |
||||
СЕРГЕЙ-МАСТЕР 05/12/2012 18:26 |
Да,да, я тоже хочу! Правда , опыта нету никакого. Только пару раз прошил PIC на легендарные мусатовские тестилки VGA и TV самопальным IC-прогером. |
||||
n max 05/12/2012 20:22 |
тады ждём плана и подтягивания заинтересованных людей |
||||
mehub 05/12/2012 21:31 |
Я уже неделю назад посмотрел вот ролик по загрузке данного софта по программированию AVR. Реально похожим заняться. Но программировать помимо основной ремонтной деят-сти пока не очень хочется- слишком много информации.https://www.youtube.com/watch?v=4s0b3_C-2ys |
||||
INSAN 06/12/2012 20:00 |
mehub, очень не плохо (я про курсы) но ты не обратил внимания наверное , что vinavr устанавливается на пару со студией для написания программ на си , нам эта прога не понадобится..не хочу си. А протеус со студией можете уже устанавливать как описано в ролике- они нужны в первую очередь , только давайте договоримся , чтоб все мы поставили одинаковые версии
ДОБАВЛЕНО 06/12/2012 21:02 Еще скачаем себе даташит на ATtiny2313 на русском и оригинальную на всяк случай |
||||
INSAN 06/12/2012 20:36 |
ставим Proteus 7.7
и студию версии 4.12 не забываем ещё чтоб у вас была установлена винда хр ..обязательно! протеус руссифицировать не нужно. |
||||
n max 06/12/2012 21:08 |
это типа avr studio 4.12?так ссылки в студию если с одного источника скачаем то и версии у всех будут одинаковые.Завтра на работе скачаю.С виндой понятно-это есть пишет,что сервис пак 3-это покатит? |
||||
INSAN 06/12/2012 21:17 |
под 3 пак тоже работал у меня . да avr studio 4.12
ДОБАВЛЕНО 06/12/2012 22:22 C:\Program Files\Atmel вот где у меня стоит avr studio. русские названия(кирилицу ) студия не терпит..при создании проектов или цифрами обзываем или латиницей , а папка куда складывать проекты должна создаваться на диске С и обязательно обозвана латинскими или цифрами |
||||
vbvb 06/12/2012 21:29 |
Хорошая идея, пока буду читателем. А СЕРГЕЙ-МАСТЕР может сделает свой спектральный анализатор какой хотел)
Если хотите пользоваться одним софтом, то лучше выкладывать ссылку на скачку И рекомендую начинать с кнопок и индикаторов, эти программные модули всегда будут применяться. |
||||
INSAN 06/12/2012 21:37 |
vbvb, у меня уже установлены эти версии , которые я указал. я не думаю , что вам будет тяжело их скачать. у меня просто нет времени качать и устанавливать другие версии . я больше думаю , чтоб организовать людей для одной идеи и разработать некие правила , чтоб все получалось у нас по порядку и понятно. |
||||
vbvb 06/12/2012 21:42 |
INSAN,
Да и не нужно других, если вы считаете что этих достаточно, то пусть эти и будут.- чтобы новичкам не растеряться в программах и правильно задавать вопросы. Синхронизироваться другими словами) Можно обговорить этапы разработок программных модулей К примеру -кнопки и индикаторы (индикаторы простейшие - светодиодные, 7 сегментные) - ЦАП, АЦП - детектирование фазы сети и управление семистором - последовательные шины обмена данными - переферийные устройства (контроллер ЖКИ и др) |
||||
INSAN 06/12/2012 21:55 |
vbvb, я пока что знаю тоже не много ,но у меня уже есть некий опыт заставить помигать светодиодиками ,подключать кнопки ...но опять же и я не богат познаниями..могу к примеру связать между собой некие подпрограммы между собой и заставить их работать. но это всего лишь какой то маленький процент знаний.
ДОБАВЛЕНО 06/12/2012 22:58 - ЦАП, АЦП - детектирование фазы сети и управление семистором - последовательные шины обмена данными - переферийные устройства (контроллер ЖКИ и др) а вот это и мне интересно. но это нужно детально и настойчиво изучать по даташитам и пробовать на практике. |
||||
vbvb 06/12/2012 22:06 |
Ну если будут возникать вопросы, что знаю-выскажусь
Нужны какие то общие правила изучения-создания, направления разработки, чтобы потом не возвращаться и не переделывать. |
||||
INSAN 06/12/2012 22:09 |
общие правила , да. может тоже предложишь , что нибудь. мне почему то в голову пришло типа один за всех и все за одного в плане помощи, не все же понимают по одинаковому материал
ДОБАВЛЕНО 06/12/2012 23:15 и самое главное не посылать по ссылкам разным если кто то отстаёт от другого. а разбираться до конца здесь вместе и без обид и оскорблений |
||||
vbvb 06/12/2012 22:19 |
Общие правила при создании программ (не сочтите за занудство) -
создание словесного описания (задачи п/пр, входные переменные, выходные переменные...), затем граф, при написании команд - комментарии обязательны. вот как пример ;--------------------------------------INIT TIMER 0--------------------- mov TMOD,#10010001b ;timer/counter control mov TH0,#0d8h ;load to counter of timer #0 mov TL0,#0f0h ;constant (T=10mS) setb TR0 ;run control timer #0 setb ET0 ;interrupt of timer #0 is possible один за всех.....это не наш метод потому как должна образоваться группа единомышленников, возможно с дифференциацией разрабатываемых функций, кто то лучше освоил ЖКИ, ктото I2C |
||||
INSAN 06/12/2012 22:41 |
общие правила взаимоподдержки в освоении материала..а про программы я согласен-каждый что лучше умеет. ...но мне пока далеко до сложных задач. группа единомышленников и группа начинающих тогда получаются разные сословия |
||||
vbvb 06/12/2012 22:57 |
INSAN, ну а как вы видите, к примеру, такой вариант
группа, сразу включившихся в разработку чего либо, освоили процессор, изучили Hitachi 44780, занимается IR управлением. В этот момент приходит чел и говорит, я тоже хАчу - как тут из регистра в регистр пересылать? Причем читать не умею, расскажите все с самого начала. А завтра еще такой же. И сколько нужно обучить таких? 5? 100? 1000? "Нет, генацвале! Когда у общества нет цветовой дифференциации штанов, то нет цели!" (c) |
||||
INSAN 06/12/2012 23:03 |
в общем поживём увидим , что получиться. |
||||
vbvb 06/12/2012 23:34 |
Ничего другого, как самообучение, придумать сложно, а далее задать вопрос , если затруднения есть, человеку, уже имеющиему четкое представление о предмете.
Очень часто в форумах возникают люди- "советчики" и "всезнайки-теоретики" , которые начинают изливать друг на друга потоки , в которых, как обычно, даже тема не прослеживается .Вот чего требуется избежать. |
||||
INSAN 06/12/2012 23:42 |
|
||||
Klop 07/12/2012 00:17 |
Щас в меня полетят помидоры...
Почему Асм? ИМНО начинать много много проще на С. Память использует больше? Да ну и ... с ней., Но старт с минимума на С много быстрее. И конечный результат быстрее. Начинать нужно с камня у которого представлена периферия по максимуму. Сейчас что тини2313 что мега 8 в цене равнозначны. 2313 не имеет АЦП и это есть плохо. ухожу..ухожу... |
||||
INSAN 07/12/2012 00:25 |
Klop, в прнципе я е проотив си но мне легче просто по уровню своего образования работать на асме чем на си . так как на си образно как то все. а вот убегать теперь не надо раз зашли
ДОБАВЛЕНО 07/12/2012 01:27 почему 2313? потому ,что легче понять структуру мк , а далее перешёл бы на мега16 или 32 ДОБАВЛЕНО 07/12/2012 01:28 камней у меня хватает . все есть до меги 32 ДОБАВЛЕНО 07/12/2012 01:29 дело не в мат.базе ДОБАВЛЕНО 07/12/2012 01:34 и по цене они не до того уж и дорогие |
||||
vbvb 07/12/2012 00:36 |
Klop,
при изучении темы, как мне кажется, нужно попрактиковаться и в асм и более высоких языках. Есть + и - у каждого языка. И очень часто в разрабатываемых сложных устройствах наряду с Си, необходимо вставлять асм модули, когда возникают тонкости решения. А быстро не значит лучше. |
||||
INSAN 07/12/2012 00:40 |
2313 не имеет АЦП и это есть плохо. зато как я понимаю как там реализуется искуственно-изврашенчески этот АЦП. по схеме ёмкостного датчика я прав или нет?
ДОБАВЛЕНО 07/12/2012 01:43 vbvb, честно, я всё понимаю..но мне нужно еще разобраться кое в чём ещё относительно блоков мк и их работы и правильного применения |
||||
Klop 07/12/2012 01:05 |
Пусть я еще пару глупостей ляпну, уж простите...
Нужно четко определить - "что есть цель?". - так как название топика "изучить МК АВР" - тогда АСМ и без вариантов. более жестко привязанного к МК (любому) языка нет и не будет. Изучть устройство МК нужно будет во всех подробностях и со всех сторон. Иначе и с места тронутся не получится. (сужу по 8051, на который писал н асме, не думаю что что-то поменялось) - научится ИСПОЛЬЗОВАТЬ МК АВР и писать программы под себя. для этого случая можно немного расслабится, и не учитывать при написании многие обязательные вещи (сохранение переменных, регистров затолкать вынуть из стека и т.д.). Все сделает компилятор. Простенькая программа на С (пошевелить ногой) пишется за 5 минут. Использование С для АВР это не значит профанация , нужно понимать и устройство конкретного МК и знать рычаги (регистры управления) конкретного МК ( не смотря на схожесть ядер у всех АВР есть отличия и сильные. Без даташита ну никак ). На С много проще построить скелет и нарастить мускулы конкретной программы, чем на Асме. А вот отточить плавность движений или скорость - да, Асм вне конкуренции. Про математику на асме я промолчу. на С - одна строчка в привычном написании , но ценой не малого куска пямяти Просто для примера напишите простую программу мигания светиком с частой 1 гц. на асме и на С. на время.
ок , не буду |
||||
INSAN 07/12/2012 01:18 |
ну я знаком с примерами в частности и мигалок ..на си конечно супер коротко но я заблужусь потом в регистрах, в битах ихних .а если честно то выбор на асм упал так как читал Карабельникова, где он вроде бы если не ошибаюсь настоятельно просил учить именно асму под мк (у него конечно не авр а пики...но всёж микроконтроллеры) |
||||
INSAN 07/12/2012 17:11 |
Желающих я как вижу море!
ДОБАВЛЕНО 07/12/2012 18:11 Ну и ладно! |
||||
serega-64 07/12/2012 17:34 |
Да нет, все в порядке, желающие есть, я просто вникаю, читаю тему, репу чешу - занятно, но пока непонятно, для меня как открытие Антарктики. Есть желание приобщиться, но пока нет времени. Вообщем наблюдаю, интересно же! |
||||
INSAN 08/12/2012 23:43 |
serega-64, а времени нужно будет очень много. |
||||
Klop 09/12/2012 00:29 |
Для того, чтобы научится писать софтварь нужно ставить конкретную задачу - конкретное устройство, которое будет воплощено в железе.
Учится чисто теоретически - нерационально долго и не продуктивно. |
||||
INSAN 09/12/2012 01:04 |
Klop, да,это самый верный способ |
||||
stas-mas 10/12/2012 12:43 |
Когда то сидел на 80хх серии,ни как не мог перейти на AVR,потом паявился проэкт,который 80хх не тянул,перепрыгнул за пару недель на AVR,потом паявился проэкт ещё сложнее,была цель и на ARM перешёл за три дня. Поэтому пока не будет конкретной задачи,говорить о чём та безполезно. Ставим конкретную задачу,подбираем железо,и конкретно занимаемся. |
||||
INSAN 10/12/2012 19:33 |
какое устройство для разработки вы сами порекомендовали бы для начала? |
||||
Klop 10/12/2012 21:02 |
Нужное ВАМ! |
||||
vbvb 10/12/2012 21:31 |
Заинтересованность в результате -правильный подход, но сразу делать прибор ( плату и др) рановато, тем более если нет опыта. Cофт это хорошо, но еще существует "железная" часть
Софтовые разработки на эмуляторах конечно выигрывают, но есть и обратная сторона медали - труднее осваивать тонкости монтажа, которые иногда влияют и на разрабатываемый процессорный модуль, точнее на периферийные части и иногда на принципы обмена данными и собственно на софтвар. Процесс этот может быть итерационен. Можно конечно создать универсальный "кубик", который можно подсовывать в любое разрабатываемое устройство, но это тоже придет с опытом |
||||
Klop 11/12/2012 12:33 |
Именно так, разрабатывать (не делать сразу конечно) все устройство.
Иначе теряется связь програмного и железного подхода к проектированию. Прийдется освоить и проектирование периферии под МК и обслуживание периферии програмно. Но если "учащийся" не знаком со схемотехникой, то вероятно это в другой "кружок" Я , к примеру, Непосредственно к изготовленнию платы или устройства преходу уже после того как софт (почти весь) для мк отлажен и точно ясно распределений выводов. да, процесс итерационен, изенение трассировки приводит к изменению софта и обратно... Просто нужно "вкусить" этот плод. Хватит языком трепать , делом нужно зянятся. |
||||
INSAN 11/12/2012 16:08 |
делом так делом |
||||
INSAN 11/12/2012 17:08 |
С КАЧАЙТЕ ЭТУ КНИГУ А.В.Белов.Микроконтроллеры AVR в радиолюбительской практике.2007 ОТСЮДА - http://rutracker.org/forum/viewtopic.php?t=993059 - там полное описание Attiny2313 по русски |
||||
INSAN 11/12/2012 17:59 |
Начнём! Микроконтроллер -это микросхема на борту которого имеются множество блоков , которыми управляют с помощью программы . Программы пишутся в определённых для этого программах . Меня устраивает вполне программа AVR Studio в которой пишется и налаживается вся программа или по частям(по подпрограммам) и после компилируется -программа написанная нами переводится в машинный код, как раз таки в тот самый код , который понимает микроконтроллер , который мы заливаем в микроконтроллер , чтоб он оживился и начал работать по заданному нами алгоритму (программе). Также через AVR Studio и программируется микроконтроллер . Для написания программ используют специальные аббревиатуры (команды) -ассемблер для микроконтроллеров AVR. Используются эти команды по определённым правилам относительно что ,где и как мы используем в самом МК. Сами команды(ассемблер для мк) я считаю не очень сложным . Нужно знать только , что каждый программист пишет по своему (по своему стилю) и разобраться в чужой программе (так называемом еще исходнике(исходном коде)) очень тяжело. В общем жду вопросы по подготовительному этапу ,назовём его * Осмотр мк и подготовка блоков мк к укладке*
..или дополняем. |
||||
n max 11/12/2012 21:33 |
пока изучаем рекомендованную литературу,потом надо купить чип для опытов(или свинтить из какого-нибудь девайса) тама и вопросы появяться
хотя посмотрел в местном магазине радиохлама,чип стоит меньше 3баксов-завтра прикуплю |
||||
stas-mas 12/12/2012 13:55 |
Придумал Ё ма Ё . Сегодня припёрли какойто саббуфер,чиста китаёза,и чиста без опознавательных знаков,здох проц,чисто корпус с ногами ,шо то э,не понятно.Задача элементарная- 7 сегтентный индикатор,два разряда и микруха PT2313, регулируем нужный параметр и уровень выводим на индикатор. |
||||
vbvb 12/12/2012 14:48 |
stas-mas,
И что там с органами управления? Кнопки? ручки? В перспективу можно добавить управление IR к этому |
||||
stas-mas 13/12/2012 00:35 |
В данном случае всё управление через пульт.
Завтра возьму TINY2313 или ATmegа4-8 ,чота сварганю |
||||
INSAN 13/12/2012 14:40 |
stas-mas, интересно что получилось , больше интересует управление PT2313 и IR
ДОБАВЛЕНО 13/12/2012 15:58 n max, как успехи? |
||||
mehub 13/12/2012 16:38 |
AVR-studio какой версии скачать- свободного скачивания? |
||||
INSAN 13/12/2012 17:04 |
http://www.gaw.ru/html.cgi/txt/soft/avr/astudio.htm AVR Studio 4.12 Service Pack 4 (сентябрь 2006)
ДОБАВЛЕНО 13/12/2012 18:08 mehub, AVR-studio бесплатная везде, фирма Атмел позаботилась о нас любителях поковырять ихние микроконтроллеры \а тут протеус лежит http://eldigi.ru/site/prog/1.php |
||||
INSAN 13/12/2012 19:28 |
схема-проект для протеуса для создания разных мигалок, бегущих огней
ДОБАВЛЕНО 13/12/2012 20:30 в архиве сам проект , который можно открыть в протеусе. |
||||
INSAN 13/12/2012 21:02 |
пишем первую подпрограмму и смотрим , что происходит с регистром r22 в AVR Studio
DELAY: ;подпрограмма задержки LDI r22,5 ;загрузить в регистр r22 число 10 d1: DEC r22 ; декремент содержимого регистра r22 BRNE d1 ; если содержимое регистра r22 не нуль ; перейти на метку d1 RET ;возврат из подпрограммы DELAY ДОБАВЛЕНО 13/12/2012 22:04 знаю, что будут вопросы про как создавать проект в avr studio и т.д. |
||||
n max 13/12/2012 21:11 |
http://forum.chipmk.ru/index.php/topic/139-программирование-c-нуля-в-avrstudio-5/page__p__1693#entry1693
вот нарыл тута нормально написано |
||||
INSAN 13/12/2012 21:14 |
распакуйте закреплённую папку на диск С и запустите файл pr_1
ДОБАВЛЕНО 13/12/2012 22:18 n max, лучше читаем тут : http://electronics.inf.ua/AVRStudio4.htm а то у вас там AVRStudio 5)) |
||||
n max 13/12/2012 21:53 |
скачал по ссылкам тута поставилась 4 версия теперь просит обновиться с родного сайта до 6й-дал добро пусть обновляеться
насчёт 5 и 6 думаеться глобальных отличий не должно быть на начальном этапе |
||||
mehub 14/12/2012 08:08 |
[quote="INSAN"]http://www.gaw.ru/html.cgi/txt/soft/avr/astudio.htm AVR Studio 4.12 Service Pack 4 (сентябрь 2006)
ДОБАВЛЕНО 13/12/2012 18:08 Не запускается- говорит через 6 секунд- ошибка, AVR должен быть инсталлирован |
||||
INSAN 14/12/2012 14:50 |
винда какая стоит? |
||||
INSAN 16/12/2012 12:11 |
операционка должна быть Windows XP Professional |
||||
KAP1958 19/12/2012 16:39 |
Попробую и я с Вами |
||||
vbvb 20/12/2012 10:41 |
Для начинающих IR control -сложная штука, может отбить всю охоту заниматься. |
||||
KAP1958 22/12/2012 18:19 |
mehub
сначала надо установить
а потом обновления
|
||||
Garoldy 24/12/2012 21:34 |
Не трогайте 5 и 6 студию, с ними путь будет длиннее.
http://www.atmel.com/Images/AvrStudio4Setup.exe это последняя 4 версия. Для 8битных лучше и не придумаешь! Коль начали с ASM, то достаточно только студии. Если хотите ещё и Си, то качайте Toolchain. Все есть на на офф сайте atmel.com |
||||
Garoldy 24/12/2012 22:12 |
Есть такой товарищ DI_HALT, а у него есть сайт, а на сайте есть уроки по работе с AVR (на ASM). Следует отметить то, что хорошо подобрана последовательность уроков. Есть графика и порой даже демонстрационное видео. Книги по AVR я начал читать уже после изучения материала на сайте и как мне показалось, в печатных изданиях, порой, попусту тратят бумагу. Как показал DI_HALT, можно более кратко и более доступно объяснить.
В этой теме можно обсуждать не понятные моменты, которые возникли при чтении каких-либо источников. А когда появиться человек с идеей, можно всей толпой взяться за её реализацию. От себя могу предложить следующее: сделать цифровой вольтметр на 7сегментных индикаторах (3 разряда). |
||||
INSAN 25/12/2012 00:31 |
цифровой вольтметр на 7сегментных индикаторах? Давайте попробуем , какой мк возьмём в разработку?
ДОБАВЛЕНО 25/12/2012 01:38 хочу тиньку2313 |
||||
kapral_82 25/12/2012 14:17 |
АЦП внешний бушь прикручивать???:D |
||||
Klop 25/12/2012 14:18 |
Ну хотеть можно, и не вредно... но вот измерять чем будеш? в тиньке 2313 АЦП нетути.
Не гонитесь за тинькой, берите мегу 8 и в путь. |
||||
kapral_82 25/12/2012 14:35 |
В таком случае уж лучше 88-ую или 16-ую на худой конец, там хоть возможность отладки есть, Ну а если тиньки нравятся, то тогда 261/461/861 |
||||
vbvb 25/12/2012 14:57 |
Не торопитесь с периферией, успеется.
Начните с кнопок и индикаторов. А остальные свободные порты + IRQ выводятся на разъем , там и подключаться будет, что душе угодно |
||||
Garoldy 25/12/2012 16:38 |
Для вольтметра идеально подходит tiny261. На мой взгляд, начинать с вольтметра хорошо по следующим причинам:
- Можно легко найти применение; - Для ввода и вывода информации нужно знать только архитектуру МК и его команды. - Минимум математики; - Реализовать алгоритм можно многими путями. Кто не разобрался с прерываниями, можно сделать на опросе флагов, кто не разобрался с таймером, можно сделать на задержках и т.д. - Простая схемотехника. Плюсов в общем хватает. У меня есть уже готовая схема, плата и код на Си. Можем общими усилиями довести схему до ума, более грамотно развести плату и переписать код на ASM. Мне бы очень хотелось что бы тема развивалась, потому как у самого много вопросов ещё. |
||||
lan-73 25/12/2012 17:41 |
Давно хотел етим заняться, попробую и я с Вами. |
||||
INSAN 25/12/2012 20:05 |
нужные подпрограммы |
||||
INSAN 26/12/2012 21:57 |
люди, ау))) вы где
ДОБАВЛЕНО 26/12/2012 22:59 ждём лёгких решений вопросов...ну...извините, так в этом деле не бывает. не стесняйтесь, пишите ! |
||||
INSAN 31/12/2012 15:00 |
Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL + CD. А. В. Евстифеев, 5-е издание, 2008 г. качайте книгу с диском. качество очень хорошее! |
||||
INSAN 31/12/2012 16:13 |
http://radioparty.ru/index.php/literatura/272-mcu-avr-semeystva-tiny-and-mega |
||||
stas-mas 06/01/2013 23:33 |
[ ДОБАВЛЕНО Январь 06 2013 а IR привяжеш любой,я привязывался к родному пульту,я очень сомневаюсь что кому то попадётся такойже самый ,кодировка 24 бита адреса + данные,плюс тройная проверка |
||||
vbvb 09/01/2013 10:39 |
Повторюсь -для начинающих IR это сложно. Не говоря даже о принципах парсера, существует довольно много протоколов и у каждого окажется отличный от других пульт, с протоколом которого придется разбираться в одиночку. И даже если попался пульт, с казалось бы известным протоколом, могут быть нюансы в посылке данных. Вот как пример stas-mas , пишет что 24 бита адреса. Мне известны протоколы с 3, 4, 5, 8, 16 или 32 бита адреса(прямой +обратный код). Или он ошибается или это еще какой то клон более распространенного протокола |
||||
INSAN 09/01/2013 14:34 |
stas-mas, код на си , без комментариев , ничего не понятно что там делается относительно pt2313 |
||||
vbvb 09/01/2013 15:07 |
INSAN, ничего там интересного нет - вырванный кусок исполнения команд. |
||||
INSAN 09/01/2013 19:13 |
vbvb, не объясните мне как управлять по шине pt2313 с помошью avr на asm.?
ДОБАВЛЕНО 09/01/2013 20:23 даташит pt2313 |
||||
INSAN 10/01/2013 00:27 |
«Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера» http://controllersystems.com/static/soderjanie.html Процедурa обмена по интерфейсу I2С http://nagits.wordpress.com/2010/12/18/avr_i2c_eeprom/ http://nauchebe.net/2010/06/programmnaya-emulyaciya-protokola-i2c/ http://cxem.net/comp/comp67.php http://bdn.narod.ru/opis/I2c.pdf ftp://pti.kpi.ua/pub/electric/CONTROLE |
||||
stas-mas 12/01/2013 20:56 |
INSAN, мне очень сложно ответить на твой вопрос
ибо я это прошёл ещё 10 лет тому,поэтому давай конкретно, конкретный вопрос-конкретный ответ,не большой совет-забудь про асм и переходи на С |
||||
INSAN 13/01/2013 13:11 |
stas-mas, давай перейдём, с чего начать? |
||||
vbvb 14/01/2013 09:48 |
INSAN,
по вашему вопросу о управлении переферией - вы уже разобрались с прерываниями, работой таймеров? и как же ваше замыслы о изучении ассемблера? Надеюсь понятно почему ваш кружок загнулся? |
||||
INSAN 14/01/2013 14:01 |
vbvb, ничего пока не загнулось. Я пока не могу сам сосредоточиться из-за основной моей работы, скоро отпуск и тогда целыми днями и ночами буду проводить на этой страничке. От ассемблера я НЕ БУДУ ОТХОДИТЬ ничуть так , как я хоть там малость уже понимаю и и изучение контроллера взяв за основу программирования ассемблер даёт практически полный контроль над внутренностями контроллера ..т.е я лично не вижу других путей кроме ассемблера по "курению" даташитов и внутренностей М.К. А пока меня вполне устраивают такие дискуссии по данной теме - читаю ваши мнения ,анализирую свои промахи ошибки в организации темы, пытаюсь организоваться. Ведь сами же понимаете, что даже конкретно задать вопрос (если , что то не понятно) тяжело изложить правильно суть вопроса, чтоб тебе же не ответили вопросом типа "чего ты хочешь". Вот для этого заказал очередную книгу Белова А.В. "Разработка устройств на микроконтроллерах AVR Шагаем от "чайника" до профи. Читаю книгу и вникаю в суть всего происходящего в М.К. ... помощи ждать не от кого - мы целиком в окружении вражеских микроконтроллеров ... но единственное , что знаю и понимаю хорошо , что нет не выполнимых задач.. Да поможет мне моя упёртость!!! |
||||
vbvb 14/01/2013 16:44 |
Ну тогда не нужно разбрасываться - от простого к сложному.
намечу 2-3 шага для начинающих - разработать бегущие огни (1 светодиод горит, как вариант 2горят) Кому не интересны огни могут изменять 2 разряда от 00 до FF в 7 сегментом варианте - тоже самое с фиксированным изменением скорости на 200мсек за шаг, от 2-х кнопок (+ и -) - тоже самое но изменение плавное (то есть пока держишь"+" идет плавное увеличение) и не бросайтесь сразу на написание команд, сначала граф Рекомендация по организации программы {начальный модуль} - сброс , инициализация таймеров, переменных, констант, периферии, проверка разных условий. {основное тело программы} только проверки - ветвления и вызов п/программ. [модуль п/программ, таблицы и пр] |
||||
INSAN 14/01/2013 21:59 |
vbvb, я вас полностью понял , дельный совет - хороший подход к данной теме. На этом дискуссии заканчиваем.. если у вас есть материал по выдвинутой так сказать вашей программе обучения ,то начните сами с бегущих огней . спасибо за совет! |
||||
INSAN 14/01/2013 23:17 |
Ну вот, первый проект-- бегущие огни . проект в студии и проект в протеусе во вложенном архиве. распакуйте архив на диск С и запускайте проекты.
;############################################## ;## Пример 1 ## ;## БЕГУЩИЕ ОГНИ ## ;############################################## ;------------------------- Псевдокоманды управления .include "tn2313def.inc" ; Присоединение файла ;описаний .list ; Включение листинга ;------------------------- Начало программного кода ;(начальный модуль) .cseg ; определяем с какого адресса в памяти програм (Flash) .org 0 ; будет начинаться наша программа. мы ;определили , что с 0-го .def temp = r16 ; Определяем главноый рабочий регистр ;-------------------------- Инициализация стека (начальный ;модуль) ldi temp, RAMEND ; Выбор адреса вершины стека out SPL, temp ; Запись его в регистр ;стека ;-------------------------- Инициализация портов Ввода\Вывод ;(начальный модуль) ldi temp, 0xFF ; Записываем число ;$FF(255) в регистр temp out DDRB, temp ; Записываем это число в DDRB (порт PB на вывод) ;-------------------------- Основной цикл (основное тело ;программы) main: ldi temp, 0b000000001 ; out PORTB, temp ; отправляем в порт ;PB , включим 1 светодиод rcall DELAY; переход в подпрограмму задержки ldi temp, 0b00000010 ; out PORTB, temp ; отправляем в порт ;PB включим 2 светодиод rcall DELAY; переход в подпрограмму задержки ldi temp, 0b00000100 ; out PORTB, temp ; отправляем в порт ;PB включим 3 светодиод rcall DELAY ; переход в подпрограмму задержки rjmp main ; К началу цикла DELAY: ; Подпрограмма задержки (модуль п/программ, ;таблицы и пр) ldi r23,255 ; d1: ldi r22,255 d2: dec r22 ; brne d2 ; dec r23 ; brne d1; RET ;Возврат из DELAY ДОБАВЛЕНО 15/01/2013 00:21 читайте код , задавайте вопросы (это я совсем начинающим) |
||||
INSAN 15/01/2013 00:02 |
.include "tn2313def.inc" ; Присоединение файла ;описаний
...тут мы присоединили к нашему проекту файл с описанием всех регистров микроконтроллера.. в общем выбрали мк для которой мы пишем прогу .list ; Включение листинга --это не обязательно! .cseg ; определяем с какого адресса в памяти програм (Flash) .org 0 ; будет начинаться наша программа. мы ;определили , что с 0-го -----тут понятно я думаю. ldi temp, RAMEND ; Выбор адреса вершины стека out SPL, temp ; Запись его в регистр ;стека --- необходим для возврата в основную программу ...нууу, в данном случае после выполнения подпрограммы задержки... в стеке перед выполнением подпр. задержки сохраняется адрес с которого мы перешли на выполнение подпр. задержки ... в нашем случае это адрес команды rcall DELAY +1 что значит +1, объясняю, это значит , что после выполнения подпрограммы DELAY мы не возврашаемся именно на команду (на адрес в памяти программ команды rcall DELAY) а переходим на следующий адрес за командой rcall DELAY -вызова подпрограммы DELAY (в нашем случвае это ldi temp, 0b000000001,ldi temp, 0b00000010,ldi temp, 0b00000100 , потому, что у нас в трёх местах с проге осуществляется переход на подпрограмму задержки(во времени конечно ) DELAY посредством команд rcall DELAY. rjmp main ; К началу цикла --- это мы уже переходим на начало main: -нашей основной программы, это произойдёт как программа выполнит последние три команды в нашей основной программе под названием main ldi temp, 0b00000100 ; out PORTB, temp ; отправляем в порт ;PB rcall DELAY т.е. включит третий светодиод, подержит её светящей пока не выполнится подпрограмма задержки DELAY .и потом выполнит команду rjmp main ; К началу цикла ... светодиод погаснет и начнётся всё с начала...и так мы получим вечно бегущие одна за другим три светодиода.... остальные 5светодиодов вы можете сами подключить . как ? подумайте сами чуток. ДОБАВЛЕНО 15/01/2013 01:12 да, забыл про ldi temp, 0xFF ; Записываем число ;$FF(255) в регистр temp out DDRB, temp ; Записываем это число в DDRB (порт PB на вывод) тут мы переводим порт B К КОТОРОМУ ПОДКЛЮЧЕНЫ СВЕТОДИОДЫ в режим вывода информации , для этого мы в регистр управления портом В DDRB вводим число 0xFF(0b11111111) |
||||
vbvb 15/01/2013 22:03 |
Для начала может и сгодится, но чуть поправлю в организации.
ldi temp, 0b000000001 ; out PORTB, temp и тд А представьте, что если нужно таких посылок штук 80. как я называю, получится "колбаса" или "макаронина" Попробуйте то же самое, используя цикл и сдвиговые команды Выйдет гораздо симпатичнее и на будущее сгодится. и еще....распишите подробнее комментарии к Delay, про вложенный цикл |
||||
INSAN 16/01/2013 14:20 |
vbvb, я понял. вечером поработаю над этим. попробую сам состряпать чё нить не подсматривая в готовые примеры. |
||||
INSAN 16/01/2013 19:27 |
m1: ldi temp, 0b00000001
m: out PORTB, temp rcall DELAY cpi r16,0b10000000 breq m1 lsl temp rjmp m вот основная программа с использованием команды сдвига влево lsl . в архиве всё остальное-проект в протеусе и студии ДОБАВЛЕНО 16/01/2013 20:55 описание подпрограммы DELAY (задержки) DELAY: ; Подпрограмма задержки (модуль п/программ, ;таблицы и пр) ldi r23,255 ; d1: ldi r22,255 d2: dec r22 ; brne d2 ; dec r23 ; brne d1; RET ;Возврат из DELAY ldi r23,255 ; записали число 255 в регистр r23 ldi r22,255 ; записали число 255 в регистр r22 dec r22 ; отнимаем единицу от числа(255) находящемся в ;регистре r22 brne d2 ; проверяем не равно ли нулю результат после вычитания единицы от числа находящегося в регистре r22 , если да, то переходим к следующей команде (dec r23) , если нет- на метку d2: т.е. d2: dec r22 ; и так далее пока при выполнении команды сравнения (brne d1) число в r23 не окажется нулём , тогда выполнится команда RET RET ;Возврат из DELAY ----эта команда вернёт к выполнению основной программы , в нашем случае команда вызвавшая подпрограмму DELAY была команда rcall DELAY( переход в подпрограмму задержки ), естественно команда RET вернёт к выполнению команды идущей после команды rcall DELAY. |
||||
vbvb 16/01/2013 23:56 |
и еще совет- в небольшой программе это не важно, а в большом проекте, который может длиться долго, лучше именовать метки ближе к теме выполняемого. Не a1:, b2:, а к примеру, leftshiftstart:, movetoport: (ограничение по длине метки в нашем случае сколько?)
И еще - желательно иметь список регистров и описание их назначений для данной разработки. |
||||
INSAN 17/01/2013 00:04 |
Я понял. vbvb, над чем мне дальше трудиться?
ДОБАВЛЕНО 17/01/2013 01:13 вот хотел создать две подпрограммы , ч тоб одна двигала строку влево а вторая в на право при помощи нажатия двух кнопок. одна кнопка для вызова одной подпрограммы, вторая под вторую п\программу. но чтото не получается. |
||||
vbvb 17/01/2013 00:16 |
небольшой план такой
-освоить таймер( программировать значение- обработать прерывание- запустить заново) Заменить п/пр delay функцией таймера - далее вместо светодиодов 7 сегментные индикаторы - вывод значения таймера на эти 7 сегментные - работа с кнопками - замена 7 сегментных на ЖКИ - посылка последовательного кода (в зависимости от выбранной управляющей микросхемы усилителя аналогового сигнала)
Я пока не разбирался с данным процессором, есть ли там битовые команды. Я бы такую задачу сделал бы так кнопка 1 устанавливает левый бит, и сбрасывает правый, 2-ая кнопка наоборот. И в зависимости от установленных битов (условий) выполняется сдвиг влево или вправо соответствующими командами. |
||||
INSAN 17/01/2013 00:26 |
Очень даже хорошо понимаю вас , что вы предлагаете . но у меня проблема с таймерами, мне бы не большой примерчик по инициализации таймера и его использовании в программе. может объясните мне как используют таймеры простыми словами??
ДОБАВЛЕНО 17/01/2013 01:29 сам принцип управления 7 сегментных инд. и ЖКИ мне известен. |
||||
vbvb 17/01/2013 00:34 |
Читайте как сделано в этом, думаю что как и в других Есть регистры таймера и биты его управления. Регистры загружаются значением, соответствующей задержки. Старт . Он считает по каждому такту генератора.(ну или что то в этом роде) и при переполнение выставляет бит прерывания.Если он соответствующей командой разрешен(или не запрещен) выполняется переход на метку обработки данного прерывания, где выполняются желаемые команды.Можно тут же его инициализировать и запустить заново. Как то так.Думаю в книгах это подробно описано
дело за малым -назначить порты управления, так как выводов немного и пора уже скоро определяться с периферией. |
||||
INSAN 17/01/2013 00:35 |
вот как к примеру таймер использовать за место подпрограммы задержки, для создания генератора прямоугольных импульсов с выходом сигнала через вывод порта с регулированием частоты сигнала кнопками меньше\больше к примеру? |
||||
vbvb 17/01/2013 00:46 |
ну как пример -да но применительно к практическим задачам- малоинтересно, если только управлять тиристором, запуская таймер от прерывания, возникающего при переходе через 0 в сети 220. Хватит там таймера на 20мсек? |
||||
INSAN 17/01/2013 00:49 |
а почему именно на 20мсек? |
||||
vbvb 17/01/2013 00:51 |
длительность волны 50 герц, ну или 10мсек если использовать каждую полуволну , применительно к симистору |