КРУЖОК для желающих изучить микроконтроллеры 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
n max писал:
..........Начинал писать простенькие проги ещё на Z80 от синклера так,что опыт кое какой имееться

это даже очень хорошо. пока еще наберём несколько человек заинтересованных в этом и можно будет понемногу начинать с миганий светодиодиков на ножках мк

ДОБАВЛЕНО 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
vbvb писал:
люди- "советчики" и "всезнайки-теоретики" , которые начинают излевать друг на друга потоки , в которых, как обычно, даже тема не прослеживается .Вот чего требуется избежать.
Я вот и горюю в три ручья от таких учителей. когда можно объяснить человеку по понятней они начинают показывать свою силу ума, а правду пишут или нет не понятно.

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 писал:
вот убегать теперь не надо раз зашли

ок , не буду

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 писал:
Желающих я как вижу море!

Да нет, все в порядке, желающие есть, я просто вникаю, читаю тему, репу чешу - занятно, но пока непонятно, для меня как открытие Антарктики. Есть желание приобщиться, но пока нет времени. Вообщем наблюдаю, интересно же! подмигивание

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
Klop писал:

Нужно четко определить - "что есть цель?".


Klop писал:
Для того, чтобы научиться писать софтварь, нужно ставить конкретную задачу - конкретное устройство, которое будет воплощено в железе.
Учиться чисто теоретически - нерационально долго и не продуктивно.


Когда то сидел на 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
INSAN писал:
какое устройство для разработки вы сами порекомендовали бы для начала?

Idea Придумал Ё ма Ё смех .
Сегодня припёрли какойто саббуфер,чиста китаёза,и чиста без опознавательных знаков,здох проц,чисто корпус с ногами гы-гы ,шо то э,не понятно.Задача элементарная-
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
сначала надо установить
Цитата:
Интегрированная среда для проектирования AVR Studio 4.12 (45Mb Ноябрь 2005 г.)

а потом обновления
Цитата:
AVR Studio 4.12 Service Pack 4 (сентябрь 2006)
тогда всё получится, у меня заработало именно в этой последовательности.

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
INSAN писал:
stas-mas, интересно что получилось , больше интересует управление PT2313 и IR


[

ДОБАВЛЕНО Январь 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, мне очень сложно ответить на твой вопрос
INSAN писал:
vbvb, не объясните мне как управлять по шине pt2313 с помошью avr на asm.?

ибо я это прошёл ещё 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 сегментных на ЖКИ
- посылка последовательного кода (в зависимости от выбранной управляющей микросхемы усилителя аналогового сигнала)

INSAN писал:
.... ч тоб одна двигала строку влево а вторая в на право при помощи нажатия двух кнопок. одна кнопка для вызова одной подпрограммы, вторая под вторую п\программу. но чтото не получается.

Я пока не разбирался с данным процессором, есть ли там битовые команды. Я бы такую задачу сделал бы так
кнопка 1 устанавливает левый бит, и сбрасывает правый, 2-ая кнопка наоборот. И в зависимости от установленных битов (условий) выполняется сдвиг влево или вправо соответствующими командами.

INSAN
17/01/2013 00:26
Очень даже хорошо понимаю вас , что вы предлагаете . но у меня проблема с таймерами, мне бы не большой примерчик по инициализации таймера и его использовании в программе. может объясните мне как используют таймеры простыми словами??

ДОБАВЛЕНО 17/01/2013 01:29

сам принцип управления 7 сегментных инд. и ЖКИ мне известен.

vbvb
17/01/2013 00:34
INSAN писал:
Очень даже хорошо понимаю вас , что вы предлагаете . но у меня проблема с таймерами, мне бы не большой примерчик по инициализации таймера и его использовании в программе. может объясните мне как используют таймеры простыми словами??

Читайте как сделано в этом, думаю что как и в других
Есть регистры таймера и биты его управления.
Регистры загружаются значением, соответствующей задержки. Старт . Он считает по каждому такту генератора.(ну или что то в этом роде) и при переполнение выставляет бит прерывания.Если он соответствующей командой разрешен(или не запрещен) выполняется переход на метку обработки данного прерывания, где выполняются желаемые команды.Можно тут же его инициализировать и запустить заново. Как то так.Думаю в книгах это подробно описано
INSAN писал:


сам принцип управления 7 сегментных инд. и ЖКИ мне известен.

дело за малым -назначить порты управления, так как выводов немного и пора уже скоро определяться с периферией.

INSAN
17/01/2013 00:35
вот как к примеру таймер использовать за место подпрограммы задержки, для создания генератора прямоугольных импульсов с выходом сигнала через вывод порта с регулированием частоты сигнала кнопками меньше\больше к примеру?

vbvb
17/01/2013 00:46
INSAN писал:
вот как к примеру таймер использовать за место подпрограммы задержки, для создания генератора прямоугольных импульсов с выходом сигнала через вывод порта с регулированием частоты сигнала кнопками меньше\больше к примеру?

ну как пример -да
но применительно к практическим задачам- малоинтересно, если только управлять тиристором, запуская таймер от прерывания, возникающего при переходе через 0 в сети 220. Хватит там таймера на 20мсек?

INSAN
17/01/2013 00:49
а почему именно на 20мсек?

vbvb
17/01/2013 00:51
длительность волны 50 герц, ну или 10мсек если использовать каждую полуволну , применительно к симистору

liveinternet.ru RadioTOP Rambler's Top100 –ейтинг@Mail.ru