Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужен учитель
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > Образование в области электроники
Страницы: 1, 2, 3
David_Ali
Здравствуйте, мн по долгу службы надо освоить программирование микроконтролееров(желательно авр и пик, но авр тоже будет достаточно), если есть знающие люди, огромная просьба помочь в етом нелегком деле.
Заранее спасибо всем отписавшимся.
kovigor
Цитата(David_Ali @ Mar 1 2013, 12:42) *
огромная просьба помочь в етом нелегком деле.

Дело это по силам и школьнику, учитель не нужен. Простейшая самодельная макетка, программатор PonyProg или AVREAL, даташит и книжка. Книжек сейчас масса. Ничего сложного там нет, вообще. Программировать для начала, наверное, лучше всего на ассемблере, потом перейдете на Си.
По Си очень рекомендую книжку Крупника "Изучаем Си", она для старшеклассников написана. Книжки по АВР здесь:

http://lord-n.narod.ru/walla.html
haker_fox
QUOTE (David_Ali @ Mar 1 2013, 18:42) *
Здравствуйте, мн по долгу службы надо освоить программирование микроконтролееров(желательно авр и пик, но авр тоже будет достаточно), если есть знающие люди, огромная просьба помочь в етом нелегком деле.
Заранее спасибо всем отписавшимся.

Онлайн учителю придется платить. Скорее всего.

Если у Вас адекватное начальство, то оно должно Вам предоставить и адекватные сроки на вникание в суть. Как минимум 2 -4 недельки надо. А за это время можно и на форуму погулять. Информации тут достаточно. Вопросы приветствуются rolleyes.gif
David_Ali
Большое спасибо, по форуму погулял, информации действительно много, но задачи поставленные передо мной немного не совсем просты, естественно что лучшее образование это самообразование, с этим я не спорил никогда, и я не совсем ноль в программировании, тихо тихо разбираюсь, просто помощь более знающих в этой области специалистов не помешала бы чтобы направили, как то показали верный путь,уберегли от ненужных трат и нерационального использования времени. ) За ссылки большое спасибо, и за ответы тоже. Надеюсь тоже смогу как то помочь в чем-то. ))
MALLOY2
Цитата
Как минимум 2 -4 недельки надо

Это если человек знает что такое программирование.

Тут вообще сначала главный вопрос, у вас есть навыки программирования чего либо ?
mempfis_
Цитата(David_Ali @ Mar 2 2013, 11:42) *
Большое спасибо, по форуму погулял, информации действительно много, но задачи поставленные передо мной немного не совсем просты...


Озвучте задачи. Может быть они не на столько сложны, как могут показаться Вам с первого раза.
David_Ali
Цитата(mempfis_ @ Mar 2 2013, 12:40) *
Озвучте задачи. Может быть они не на столько сложны, как могут показаться Вам с первого раза.

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

Цитата(MALLOY2 @ Mar 2 2013, 12:23) *
Это если человек знает что такое программирование.

Тут вообще сначала главный вопрос, у вас есть навыки программирования чего либо ?

Да навыки есть, учил ассемблер, еще кое что помню.. на С++ , джава, но она тут мне не помогла (
kovigor
Цитата(David_Ali @ Mar 3 2013, 00:04) *
Да навыки есть, учил ассемблер, еще кое что помню.. на С++ , джава, но она тут мне не помогла (

Так вы электронщик или программист ?
David_Ali
Цитата(kovigor @ Mar 3 2013, 01:36) *
Так вы электронщик или программист ?

В основном электронщик, программированием занимался довольно серьезно, но не профессионально. В отношении программирования МК все мои достижения в этой области это ардуино и пару мелочей на атмега 8. Компания у нас серьезная, поэтому этого добра у меня много, начиная от программаторов и заканчивая непосредственно самими МК разного рода. Нам нужны программисты именно по этой части. Вот и решил обратится к знанием обладающим ) А так я специализируюсь на системах безопасности, как говорится от харда до софта. Работаю в нефтяной компании в Баку, теперь хочу выучить это дело дабы сменить род деятельности и если повезет основать тут свое производство систем автоматизации ( ну небольшое конечно) хотя кто знает..
P.S. Если кто вдруг захочет побывать в этих краях, милости прошу, встречу как нам подобает. Гость посланник Бога. )
andron86
Цитата
производство систем автоматизации

Вы вообще представляете себе, что такое автоматизация? Не лучше ли Вам всё таки посмотреть в сторону http://promavtomatik.ru/ для Вас это самый верный путь.

забыл добавить:

"Так давайте же выпьем за кибернетика" beer.gif beer.gif

ХФ Кавказская пленница
One
Цитата(David_Ali @ Mar 3 2013, 00:04) *
...Ну, задачи таковы, есть завод, все там происходит вручную, завод собственно говоря по изготовлению пластиковых труб, нужно его автоматизировать...


автоматизировать завод...
автоматизировать линию по выпуску чего-то там....
автоматизировать станок...
автоматизировать технологическую операцию...
различные задачи, различные способы и методы решения, и программирование собственно МК в этом ряду далеко не на первом месте
David_Ali
Цитата(andron86 @ Mar 3 2013, 08:05) *
Вы вообще представляете себе, что такое автоматизация? Не лучше ли Вам всё таки посмотреть в сторону http://promavtomatik.ru/ для Вас это самый верный путь.

забыл добавить:

"Так давайте же выпьем за кибернетика" beer.gif beer.gif

ХФ Кавказская пленница

Нет, в данном случае это не решение. надо своими силами. )

Цитата(One @ Mar 3 2013, 09:51) *
автоматизировать завод...
автоматизировать линию по выпуску чего-то там....
автоматизировать станок...
автоматизировать технологическую операцию...
различные задачи, различные способы и методы решения, и программирование собственно МК в этом ряду далеко не на первом месте

список задач есть, если кто-то решится помогать то конечно же будут изложены все детали, главное найти человека который может помочь мне научится программировать МК. Освоив базовые навыки я разберусь даьше что и как делать. просто в моем случае обучение сиим навыкам будет проходить на реальных задачах. что думаю больше плюс чем минус. Надеюсь найдется дбрый человек который согласится стать сенсейем ))
MKdemiurg
Цитата(David_Ali @ Mar 3 2013, 18:02) *
Нет, в данном случае это не решение. надо своими силами. )


Думается вам одном автоматизировать даже одну операцию будет очень сложно, почти невозможно. Не говоря уже о целой линии.
Автоматика, телемеханика,датчики, программирование, теория систем...Люди этому годами учатся.
Ruslan1
Цитата(David_Ali @ Mar 3 2013, 16:07) *
Нет, в данном случае это не решение. надо своими силами. )

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

Вы вообще кто? по должности, по образованию, по практическому опыту работы? В проектах какого уровня и в качестве кого принимали участие? В проектах какого уровня поработали ведущим кем-то?

Вы подходите к задаче совершенно так же как человек, задумавший собрать ракету и полететь не ней, скажем, на Луну. И все что он хочет - это просто узнать как сделать скафандр с подогревом.
А когда ему начинают объяснять, что нужна целая инфраструктура, заводы, КБ, строители и вагон времени плюс разрешение спецслужб и доступ к технологиям, он просто не понимает о чем говорят. Ведь он когда-то в кружке юных техников уже картинг собирал, значит и на Луну проект осилит, нужно просто со скафандром разобраться.

Люди, кто тут говорил про 2-4 недели, вы вообще понимаете что говорите? 2-4 года при должном финансировании- это еще может быть и получится, если постараться. За недели можно научится лампочку зажигать на столе, но не автоматизацию-измерения-управление делать с нуля.

А топикстартеру совет: выложить самую примитивную по его мнению задачу из того что он хочет решить, и его предполагаемую трату ресурсов на нее. До этого вообще обсуждать нечего, так как непонятна ни квалификация задавшего вопрос как разработчика, ни как администратора. А задача "автоматизация" - это не две кнопочки плюс реле и человек с паяльником, а еще кучка документации с печатями-подписями, которая позволит эту конструкцию куда-то подключить.
David_Ali
Цитата(Ruslan1 @ Mar 3 2013, 19:38) *
Вы вообще кто? по должности, по образованию, по практическому опыту работы? В проектах какого уровня и в качестве кого принимали участие? В проектах какого уровня поработали ведущим кем-то?

Вы подходите к задаче совершенно так же как человек, задумавший собрать ракету и полететь не ней, скажем, на Луну. И все что он хочет - это просто узнать как сделать скафандр с подогревом.
А когда ему начинают объяснять, что нужна целая инфраструктура, заводы, КБ, строители и вагон времени плюс разрешение спецслужб и доступ к технологиям, он просто не понимает о чем говорят. Ведь он когда-то в кружке юных техников уже картинг собирал, значит и на Луну проект осилит, нужно просто со скафандром разобраться.

Люди, кто тут говорил про 2-4 недели, вы вообще понимаете что говорите? 2-4 года при должном финансировании- это еще может быть и получится, если постараться. За недели можно научится лампочку зажигать на столе, но не автоматизацию-измерения-управление делать с нуля.

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

Уважаемый, я не из кружка юных техников, по проффесии я инженер, работал и рабтаю по профилю уже немало, у нас в стране практически ничего не производят, загорелся идеей сам что-то начать, и мне просто нужен человек который может поделится знаниями, дабы я мог посмотреть по силам и по душе мне это или нет, задача самая простая, которая в данный момент решена без МК вообще, небольшая цистерна заполняется, мотор выключается, опустошается мотор включается, и таких баков 5, работают синхронно. проблема в том что в мрей стране нет ни должных факультетов, ни обучения, если мне будет это по душе я займусь этим серьезно, а пока ищу тут человека кто согласится помочь мне начать, но видимо таковых тут нет, потому что многочисленные посты это подтверждают. Топик я назвал "нужен учитель" , поэтому прошу отзыватся тех кто считает что обладает достаточными знаниями чтобы им стать. Остально обговорю лично с тем кто согласится, а для критикования могу открыть топик "нужен критик".
Iptash
Цитата(David_Ali @ Mar 3 2013, 18:07) *
главное найти человека который может помочь мне научится программировать МК. Освоив базовые навыки я разберусь даьше что и как делать. просто в моем случае обучение сиим навыкам будет проходить на реальных задачах. что думаю больше плюс чем минус. Надеюсь найдется дбрый человек который согласится стать сенсейем ))

Никто не поможет, потому что не реально "научить разговаривать ребенка через интернет" и никто не захочет "учить разговаривать чужого ребенка".
Самое реальное (если есть желание) это учиться самому, начиная с азов электроники, благо на это вся литература есть, не то что раньше.
Спросите любого программиста.
Herz
Тему перенёс. Попрошу автора не воспитывать и не переубеждать. Высказывать только конкретные предложения.
andron86
Цитата(Herz @ Mar 3 2013, 18:00) *
Тему перенёс. Попрошу автора не воспитывать и не переубеждать. Высказывать только конкретные предложения.

А для чего тогда форум? Или electronix стал форумом аля Петрик? Наверное да... cranky.gif
яман-тау
Возьмите программируемое реле для простых задач, для распеределенных систем уже ПЛК. Будет легче завязать на верхний уровень при надобности. Самодельные контроллеры применять не рекомендую, подумайте о тех, кто будет обслуживать систему после Вас. На фото пример, к чему могут привести ошибки на объектах.
Ruslan1
Цитата(David_Ali @ Mar 3 2013, 18:19) *
Уважаемый, я не из кружка юных техников, по проффесии я инженер, работал и рабтаю по профилю уже немало

Я ни в коей мере не имел намерения как-то Вас обидеть. Просто я высказал конкретные вопросы, ответы на которые позволят не объяснять то, что Вы и сами знаете, и наоборот- разжевать то, что пока что Вы не проходили.
Для начала, поставьте конкретную задачу и разделите ее на несколько частей, например для простейших задач:
1. Постановка задачи
2. реализация функционирующего макета
3. Переработка и обновление техзадания по результатам испытаний макета
4. реализация опытного образца
5. испытания опытного образца
6. Документация
7. Внедрение.

Если у Вас есть пункт 1- замечательно. в п.2 Вы можете использовать все что угодно, хоть лап-топ с андуриной в качестве исполнительного механизма.
про выбор процессора можно и не думать до третьего пункта плана.


P.S. А почему Вы так отрицательно к юным техникам относитесь? Лично я из них, и журнал мне родители выписывали, и на станцию ЮТ ходил, и на коллективной радиостанции там же зависал- и ни чуточки не стесняюсь этой страницы своей жизни sm.gif

P.P.S. И присоединяюсь к мнению,, что свой контроллер не делайте, берите готовое. Это позволит сэкономить несколько лет. Свое имеет смысл делать только в качестве довесков к покупному: исполнительные устройства, входные преобразователи.... Кстати, чем сам Ардуино не нравится? Судя по количеству и диапазону примеров применения- вполне себе железяка для мелкого самиздата. сейчас что-то в этом формате на STM32 вроде бы кто-то делает(или начинает делать).
DVF
Цитата(David_Ali @ Mar 1 2013, 13:42) *
Здравствуйте, мн по долгу службы надо освоить программирование микроконтролееров(желательно авр и пик, но авр тоже будет достаточно), если есть знающие люди, огромная просьба помочь в етом нелегком деле.
Заранее спасибо всем отписавшимся.

David_Ali, по мере продвижения в своем самообучении, задавайте вопросы в форум. Скорее всего они будут конкретными, поэтому больше вероятности, что Вам ответят на них.
Burner
Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере.
Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет.
Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев" sm.gif

У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам.
ARV
David_Ali, даю бесплатный совет: посмотрите этот форум, найдите по сообщениям того, кто с вашей точки зрения вам наиболее по душе, и начинайте его осторожно долбить по почте, через личные сообщения и т.п. общедоступные каналы. дескать, я глубоко проникся уважением к вашему авторитету в области программирования микроконтроллеров, и скромно прошу вас ответить на вопрос новичка - и задаете вопрос. потом второй вопрос. потом третий... и т.д. с первым "кандидатом в сенсэи" не получится - обращайтесь ко второму (или ко многим сразу, но через приватный канал общения)...

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

найдите подход к жертве - и вам будут помогать задаром, главное, не перегните палку sm.gif я сам пару раз попадал на эту удочку sm.gif
David_Ali
Цитата(Ruslan1 @ Mar 4 2013, 00:29) *
Я ни в коей мере не имел намерения как-то Вас обидеть. Просто я высказал конкретные вопросы, ответы на которые позволят не объяснять то, что Вы и сами знаете, и наоборот- разжевать то, что пока что Вы не проходили.
Для начала, поставьте конкретную задачу и разделите ее на несколько частей, например для простейших задач:
1. Постановка задачи
2. реализация функционирующего макета
3. Переработка и обновление техзадания по результатам испытаний макета
4. реализация опытного образца
5. испытания опытного образца
6. Документация
7. Внедрение.

Если у Вас есть пункт 1- замечательно. в п.2 Вы можете использовать все что угодно, хоть лап-топ с андуриной в качестве исполнительного механизма.
про выбор процессора можно и не думать до третьего пункта плана.


P.S. А почему Вы так отрицательно к юным техникам относитесь? Лично я из них, и журнал мне родители выписывали, и на станцию ЮТ ходил, и на коллективной радиостанции там же зависал- и ни чуточки не стесняюсь этой страницы своей жизни sm.gif

P.P.S. И присоединяюсь к мнению,, что свой контроллер не делайте, берите готовое. Это позволит сэкономить несколько лет. Свое имеет смысл делать только в качестве довесков к покупному: исполнительные устройства, входные преобразователи.... Кстати, чем сам Ардуино не нравится? Судя по количеству и диапазону примеров применения- вполне себе железяка для мелкого самиздата. сейчас что-то в этом формате на STM32 вроде бы кто-то делает(или начинает делать).

Я не отрицательно отношусь к "юным техникам" ) просто хочу сказать что я уже порядком выше юного техника. Кстати уже прочитал книгу Ревича Юрия, написал и скомпилировал программку, весело, атмегу8 в сочетании с релейным модулем, которая попеременно включает три реле, с заданным промежутком времени, как раз пригодилось. теперь вожусь с UART. чего то не получается.


Цитата(ARV @ Mar 5 2013, 08:19) *
David_Ali, даю бесплатный совет: посмотрите этот форум, найдите по сообщениям того, кто с вашей точки зрения вам наиболее по душе, и начинайте его осторожно долбить по почте, через личные сообщения и т.п. общедоступные каналы. дескать, я глубоко проникся уважением к вашему авторитету в области программирования микроконтроллеров, и скромно прошу вас ответить на вопрос новичка - и задаете вопрос. потом второй вопрос. потом третий... и т.д. с первым "кандидатом в сенсэи" не получится - обращайтесь ко второму (или ко многим сразу, но через приватный канал общения)...

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

найдите подход к жертве - и вам будут помогать задаром, главное, не перегните палку sm.gif я сам пару раз попадал на эту удочку sm.gif

Спасибо за совет, но назойливость не моя стихия. Я могу по взаимной выгоде как то договориться, если что..

Цитата(Burner @ Mar 4 2013, 03:52) *
Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере.
Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет.
Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев" sm.gif

У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам.

)) а что за классификация? можно ли узнать?

Цитата(яман-тау @ Mar 3 2013, 22:03) *
Возьмите программируемое реле для простых задач, для распеределенных систем уже ПЛК. Будет легче завязать на верхний уровень при надобности. Самодельные контроллеры применять не рекомендую, подумайте о тех, кто будет обслуживать систему после Вас. На фото пример, к чему могут привести ошибки на объектах.

нк на фото предприятие по крупнее, я пока за такие не буду браться, для таких у нас есть плк митсубишивские

Цитата(Burner @ Mar 4 2013, 03:52) *
Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере.
Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет.
Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев" sm.gif

У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам.

а на счет времени, я думаю что много его у вас не заберу если будете помогать, посоветуйте литературу, по мере изученя буду описывать задачи поставленные передо мной, и описывать то что не получилось сделать, это займет думаю столько же времени сколько и отписаться тут ) а для аналогии с Куросавой я бы привел цитату из фильма гений дзюдо "Он не умен. Но он серьезно настроен." ))

Цитата(Burner @ Mar 4 2013, 03:52) *
Ну, чтобы учить, нужно тратить бесценное время. У мну нету. Раньше, когда работы не было, мог.. И то в основном на атмеловском ассемблере.
Если есть желание и соображение - почему бы и нет? Только если серьезно заниматься - легко это не будет.
Вспомнил кино Куросавы "7 самураев" - "Но у нас нечем платить. Кто согласится работать за еду? - нужно искать голодных самураев" sm.gif

У меня есть подозрение, что Вы из моторов, по классификации одного"сам себе профессора". Если оно верное - то будет эффективнее работать с кем-то вроде меня. Лично со мной не получится, но такого народу немало. Шоб Вы знали, разделение труда придумали в основном из-за ограниченной емкости моска по данным/алгоритмам.

а на счет времени, я думаю что много его у вас не заберу если будете помогать, посоветуйте литературу, по мере изученя буду описывать задачи поставленные передо мной, и описывать то что не получилось сделать, это займет думаю столько же времени сколько и отписаться тут ) а для аналогии с Куросавой я бы привел цитату из фильма гений дзюдо "Он не умен. Но он серьезно настроен." ))

Цитата(Iptash @ Mar 3 2013, 20:24) *
Никто не поможет, потому что не реально "научить разговаривать ребенка через интернет" и никто не захочет "учить разговаривать чужого ребенка".
Самое реальное (если есть желание) это учиться самому, начиная с азов электроники, благо на это вся литература есть, не то что раньше.
Спросите любого программиста.

а тут я не соглашусь, я выучил программирование именно по интернету, просто в другой области, да и вообще много чего выучил по интернету, и литература на которую вы ссылаетесь тоже из интернета. В наш век через интренет можно купить дом, люди женятся через интернет, о чем вы говорите...
kovigor
Цитата(David_Ali @ Mar 5 2013, 12:26) *
теперь вожусь с UART. чего то не получается.

Установите себе CodeVision, сгенерируйте базовый проект для вашей Меги с UART и посмотрите, как он сделан:

Код
/*****************************************************
CodeWizardAVR V1.24.8d Professional
Clock frequency     : 8,000000 MHz
*****************************************************/

#include <mega8.h>

#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif

// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
   rx_buffer[rx_wr_index]=data;
   if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
   if (++rx_counter == RX_BUFFER_SIZE)
      {
      rx_counter=0;
      rx_buffer_overflow=1;
      };
   };
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART Transmitter buffer
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif

// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
   {
   --tx_counter;
   UDR=tx_buffer[tx_rd_index];
   if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
   };
}

#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
   {
   tx_buffer[tx_wr_index]=c;
   if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
   ++tx_counter;
   }
else
   UDR=c;
#asm("sei")
}
#pragma used-
#endif

// Standard Input/Output functions
#include <stdio.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0xFF;

// Port C initialization
// Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0x7F;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=In
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=1 State0=P
PORTD=0x03;
DDRD=0xFE;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here

      };
}
David_Ali
Вот например, есть датчик инфракрасный уровнемер, принцип его работы я знаю, как с него считывать показания как их посчитать и тд. и тп., но как это будет выглядеть на асмб для авр например, без понятия, ну не то чтобы совсем без без понятия, но конкретно что и куда надо писать, как объяснит МК что это анлоговый сигнал, что при падении там вольтажа в определенной пропорциональности надо выполнить ту или иную функцию. как то наверное надо его отцифровывать, там как я понял есть 10 разрядный канал в атмеге8, значит надо посчитать какие показания он даст при "выборке" и как то программно дать ему понять что с ними делать. одним словом я знаю что ему сказать (микроконтроллеру), но не знаю как сказать ему на его языке

[quote name='kovigor' post='1142961' date='Mar 5 2013, 13:31']Установите себе CodeVision, сгенерируйте базовый проект для вашей Меги с UART и посмотрите, как он сделан:



спасибо, сейчас разберу )
kovigor
Цитата(David_Ali @ Mar 5 2013, 13:34) *
Вот например, есть датчик инфракрасный уровнемер, принцип его работы я знаю, как с него считывать показания как их посчитать и тд. и тп., но как это будет выглядеть на асмб для авр например, без понятия, ну не то чтобы совсем без без понятия, но конкретно что и куда надо писать, как объяснит МК что это анлоговый сигнал, что при падении там вольтажа в определенной пропорциональности надо выполнить ту или иную функцию. как то наверное надо его отцифровывать, там как я понял есть 10 разрядный канал в атмеге8, значит надо посчитать какие показания он даст при "выборке" и как то программно дать ему понять что с ними делать. одним словом я знаю что ему сказать (микроконтроллеру), но не знаю как сказать ему на его языке

Выход у этого уровнемера аналоговый ? Если да, то нужно задействовать АЦП. Дальше потребуется цифровая обработка сигнала от АЦП, в той или иной форме. Вот в этой обработке основная сложность и есть. И писать, кстати, наверное лучше будет на Си ...
P.S. Мой исходник из вашего ответа уберите, а то страничку стало трудно читать ...
ARV
Цитата(kovigor @ Mar 5 2013, 13:31) *
Установите себе CodeVision, сгенерируйте базовый проект для вашей Меги с UART и посмотрите, как он сделан:
или вот для примера мой вариант для не-CodeVision: http://www.simple-devices.ru/articles/7-so...navr-console-io , возможно, это будет даже проще для начала.

David_Ali
Цитата(ARV @ Mar 5 2013, 13:53) *
или вот для примера мой вариант для не-CodeVision: http://www.simple-devices.ru/articles/7-so...navr-console-io , возможно, это будет даже проще для начала.
не могу редактировать ( пропала эта кнопка

Цитата(kovigor @ Mar 5 2013, 13:38) *
Выход у этого уровнемера аналоговый ? Если да, то нужно задействовать АЦП. Дальше потребуется цифровая обработка сигнала от АЦП, в той или иной форме. Вот в этой обработке основная сложность и есть. И писать, кстати, наверное лучше будет на Си ...
P.S. Мой исходник из вашего ответа уберите, а то страничку стало трудно читать ...

Да Аналоговый, модель http://www.sharpsma.com/webfm_send/1487 вот такая, почти что. ту которая у меня найти не смог.

Цитата(kovigor @ Mar 5 2013, 13:38) *
Выход у этого уровнемера аналоговый ? Если да, то нужно задействовать АЦП. Дальше потребуется цифровая обработка сигнала от АЦП, в той или иной форме. Вот в этой обработке основная сложность и есть. И писать, кстати, наверное лучше будет на Си ...
P.S. Мой исходник из вашего ответа уберите, а то страничку стало трудно читать ...

Я чего то не разобрал где компилировать в codevsion, я авр студио прользовалься до этого. и то для ассемблера.
kovigor
Цитата(David_Ali @ Mar 5 2013, 14:31) *
Я чего то не разобрал где компилировать в codevsion, я авр студио прользовалься до этого. и то для ассемблера.

"CTRL" + "F9", или "Project" -> "Build all"
David_Ali
Цитата(kovigor @ Mar 5 2013, 14:36) *
"CTRL" + "F9", или "Project" -> "Build all"

не компилируется, точнее куда код писать? куда не пишк выдает что-то типа проект маст контейн ат леаст он сорс файл. кажется я что-то не так крякнул в этой проге. глючит она. я могу этот код на аврстудио откомпилировать?
TSerg
Мда..
Самое интересное, что в Баку были отличные ВУЗ-ы и предприятия.
Взять АЗИ ( АзиНефтехим ) - теперь Нефтяная Академия - мой ВУЗ.
Или Политех или Аз.гос.универ..

А предприятий, которые стояли в ряду с лучшими по Союзу?

Например, НПО "НОРД" - одно из лучших Союзных НПО в части разработки soft&hard для ВМФ..
"Каспий" (космос), "Азон" ( микросхемы), Радиозавод и др..

В 1990 все оборвалось, а теперь поди ж ты - пять баков c нефтью и переливаютсяsm.gif

David_Ali
Цитата(TSerg @ Mar 5 2013, 15:28) *
Мда..
Самое интересное, что в Баку были отличные ВУЗ-ы и предприятия.
Взять АЗИ ( АзиНефтехим ) - теперь Нефтяная Академия - мой ВУЗ.
Или Политех или Аз.гос.универ..

А предприятий, которые стояли в ряду с лучшими по Союзу?

Например, НПО "НОРД" - одно из лучших Союзных НПО в части разработки soft&hard для ВМФ..
"Каспий" (космос), "Азон" ( микросхемы), Радиозавод и др..

В 1990 все оборвалось, а теперь поди ж ты - пять баков c нефтью и переливаютсяsm.gif

Было, когда-то все у нас было.. ну надеюсь я начну эпоху ренесанса )) мой отец тоже кстати Ази закончил. ) а дядя на радиозаводе был ведущим инженером много лет..
kovigor
Цитата(David_Ali @ Mar 5 2013, 15:16) *
не компилируется, точнее куда код писать? куда не пишк выдает что-то типа проект маст контейн ат леаст он сорс файл. кажется я что-то не так крякнул в этой проге. глючит она. я могу этот код на аврстудио откомпилировать?

Конечно, вы прежде должны проект создать (File -> New -> Project -> ...). Это настолько элементарно, что я даже не вижу смысла подробно все описывать. Вот, например, ссылка:
http://atmel.moy.su/publ/1-1-0-3

Читайте внимательно, после создания проекта вы увидите на экране содержимое .c - файла, в него и надо вставлять код. Цитата из этой статьи:
Цитата
Затем в появившемся окне редактируем текст до вида представленного ниже либо просто скопируйте ниже приведенный текст :

#include <mega16.h>
void main(void)
{
PORTA=0x49;
DDRA=0xFF;
ACSR=0x80;
SFIOR=0x00;
while (1)
{
// Place your code here
};
}


На всякий случай, вот вам проект, но уже полностью:
http://zalil.ru/34319401

И крякать там ничего не надо, на официальном сайте CodeVision есть пробная версия, вам пока ее с головой хватит.

В Студии не работал, без комментариев ...
David_Ali
Цитата(kovigor @ Mar 5 2013, 15:48) *
Конечно, вы прежде должны проект создать (File -> New -> Project -> ...). Это настолько элементарно, что я даже не вижу смысла подробно все описывать. Вот, например, ссылка:
http://atmel.moy.su/publ/1-1-0-3

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


На всякий случай, вот вам проект, но уже полностью:
http://zalil.ru/34319401

И крякать там ничего не надо, на официальном сайте CodeVision есть пробная версия, вам пока ее с головой хватит.

В Студии не работал, без комментариев ...

Разобрался ) правда чуть иначе, но работает ) большое спасибо. Из консоли мне удобней просто.
kovigor
Цитата(David_Ali @ Mar 5 2013, 17:58) *
Разобрался ) правда чуть иначе, но работает ) большое спасибо

Не за что. Начинать советую именно с CodeVision, он очень прост в освоении и отлично подходит для не слишком сложных проектов ...
David_Ali
Цитата(kovigor @ Mar 5 2013, 18:04) *
Не за что. Начинать советую именно с CodeVision, он очень прост в освоении и отлично подходит для не слишком сложных проектов ...

Еще один вопрос вам, а откуда находить названия инклуд файлов для других МК? ну например для меги16 или вообще любого другого? если сам все пишешь..
kovigor
Цитата(David_Ali @ Mar 5 2013, 18:14) *
Еще один вопрос вам, а откуда находить названия инклуд файлов для других МК? ну например для меги16 или вообще любого другого? если сам все пишешь..

В папке, в которую вы ставили CV, есть подпапка и в ней куча файлов .h для разных МК. Найдите папку поиском и в ней - соотв. файл. Только вот делать это нет особого смысла, т.к. гораздо удобнее идти именно путем создания проекта и генерации шаблона .c - файла средствами самого CV ...
David_Ali
Цитата(kovigor @ Mar 5 2013, 18:20) *
В папке, в которую вы ставили CV, есть подпапка и в ней куча файлов .h для разных МК. Найдите папку поиском и в ней - соотв. файл. Только вот делать это нет особого смысла, т.к. гораздо удобнее идти именно путем создания проекта и генерации шаблона .c - файла средствами самого CV ...

Cпасибо, еще раз, просто у меня тут пара готовых проектов на ассемблере, по книге Ю.Ревича написал, хочу их откомпилировать тоже.
kovigor
Цитата(David_Ali @ Mar 5 2013, 18:26) *
Cпасибо, еще раз, просто у меня тут пара готовых проектов на ассемблере, по книге Ю.Ревича написал, хочу их откомпилировать тоже.


Я об изучении Си пишу. Компилировать проекты на асме в CV просто так не получится ...
_Артём_
Цитата(David_Ali @ Mar 5 2013, 16:14) *
ну например для меги16 или вообще любого другого?

Может быть есть возможность подключать не определённый тип меги, а все сразу?
Код
#include <ioavr.h>// вместо <iom16.h>
TSerg
>Было, когда-то все у нас было.. ну надеюсь я начну эпоху ренесанса )) мой отец тоже кстати Ази закончил. ) а дядя на радиозаводе был ведущим инженером много лет..

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

Если будут вопросы по системотехнике и автоматическому регулированию - обращайтесь здесь с вопросами, в соответствующем разделе. Увижу вопрос - подскажу.
David_Ali
Цитата(TSerg @ Mar 5 2013, 20:44) *
>Было, когда-то все у нас было.. ну надеюсь я начну эпоху ренесанса )) мой отец тоже кстати Ази закончил. ) а дядя на радиозаводе был ведущим инженером много лет..

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

Если будут вопросы по системотехнике и автоматическому регулированию - обращайтесь здесь с вопросами, в соответствующем разделе. Увижу вопрос - подскажу.

спасибо, буду обращаться.
P.S. к сожалению таких форумов нету на нашем языке, что впрочем довольно таки печально. (
David_Ali
Еще раз здравствуйте все, кто нибудь может объяснить как правильно выбирать фьюзы, и как пользоватся фьюз калькулятором, на форуме подробного ничего не нашел crying.gif
artkam
Очень подробно описано здесь...
http://easyelectronics.ru/avr-uchebnyj-kur...a-fuse-bit.html
David_Ali
Цитата(artkam @ Mar 7 2013, 06:38) *
Очень подробно описано здесь...
http://easyelectronics.ru/avr-uchebnyj-kur...a-fuse-bit.html

Спасибо )
David_Ali
Цитата(kovigor @ Mar 5 2013, 18:30) *
Я об изучении Си пишу. Компилировать проекты на асме в CV просто так не получится ...

Здравствуйте, вы как я понял программист на С )) очевидно. Посоветуйте книгу по Сиавр, или лучше список литературы для полного освоения этого языка, а то я с ассемблером совсем запутался, все дают примеры и советы по си, а на си, если это можно назвать программированием, я только для ардуино могу писать. буду признателен, заранее спасибо!
kovigor
Цитата(David_Ali @ Mar 11 2013, 13:35) *
Здравствуйте, вы как я понял программист на С )) очевидно. Посоветуйте книгу по Сиавр, или лучше список литературы для полного освоения этого языка, а то я с ассемблером совсем запутался, все дают примеры и советы по си, а на си, если это можно назвать программированием, я только для ардуино могу писать. буду признателен, заранее спасибо!

Я электронщик, пишущий в том числе и на Си. Так вы знаете Си или не знаете ? Если знаете, то вот тут есть книжка Шпака "Программирование на языке С для AVR и PIC микроконтроллеров", хотя я ей при самообучении не пользовался:
http://lord-n.narod.ru/walla.html

А если не знаете, то начать советую с замечательной книжки Крупника "Изучаем Си". Она написана для школьников, не понять просто невозможно. Именно с нее я начинал.
Да, качаете CodeVision, генерируете простейший проект для вашего МК (начать вполне можно с мигания лампочкой или с приема/передачи через UART по прерываниям (только не пытайтесь использовать библиотечную 'printf', иначе от вас ускользнет сам механизм работы UART)), и подробно его разбираете. Это не сложно, совсем. Но прежде вам придется прочесть соотв. разделы даташита на ваш МК.
Удачи. Будут вопросы - пишите
David_Ali
Цитата(kovigor @ Mar 11 2013, 13:51) *
Я электронщик, пишущий в том числе и на Си. Так вы знаете Си или не знаете ? Если знаете, то вот тут есть книжка Шпака "Программирование на языке С для AVR и PIC микроконтроллеров", хотя я ей при самообучении не пользовался:
http://lord-n.narod.ru/walla.html

А если не знаете, то начать советую с замечательной книжки Крупника "Изучаем Си". Она написана для школьников, не понять просто невозможно. Именно с нее я начинал.
Да, качаете CodeVision, генерируете простейший проект для вашего МК (начать вполне можно с мигания лампочкой или с приема/передачи через UART по прерываниям (только не пытайтесь использовать библиотечную 'printf', иначе от вас ускользнет сам механизм работы UART)), и подробно его разбираете. Это не сложно, совсем. Но прежде вам придется прочесть соотв. разделы даташита на ваш МК.
Удачи. Будут вопросы - пишите

Спасибо Вам, за советы. Ну в "си" я не могу сказать что разбираюсь, думаю со стороны виднее, но на ардуиновсой IDE могу спокойно писать все что нужно, так себе свой дом сделал ну если не "умным" то "грамотным" именно на базе этих платформ, ну и естественно всякие свои фантазии могу на этом IDE реализовывать. Просто не знаю на много ли он от реального "си" отличается или как? Но на всякий случай начну с нуля. Еще раз спасибо!
David_Ali
Доброго времени суток уважаемые программисты и электронщики ) вот у меня атмега 8 и такой код (см. ниже) все компилируется как надо, заливаю на мегу8 и подключаю к блютузу (hc-05), но почему то не работает с блютузом.. может фьюзы как то не так настроил? Объясните если кто может. Заранее спасибо!

.include <m8def.inc>

.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20


.equ XTAL = 1000000
.equ baudrate = 9600
.equ bauddivider = XTAL/(16*baudrate)-1

.cseg
.org 0

ldi Temp,0b11111111
out DDRB,Temp

ldi Temp,High(RAMEND)
out SPH,Temp

ldi Temp,Low(RAMEND)
out SPL,Temp

rcall USART_Init

Begin:

rcall USART_Receive

cpi Temp, 'A'
brne CaseB
ldi Temp2, 0b00000001
rjmp Light

CaseB:
cpi Temp, 'B'
brne CaseC
ldi Temp2, 0b00000010
rjmp Light

CaseC:

cpi Temp, 'C'
brne CaseD
ldi Temp2, 0b00000100
rjmp Light

CaseD:

cpi Temp, 'D'
brne Begin
ldi Temp2, 0b00001000

Light:
out PortB,Temp2

rjmp Begin



USART_Receive:

sbis UCSRA, RXC
rjmp USART_Receive

in Temp, UDR
ret

USART_Init:

LDI R16, low(bauddivider)
OUT UBRRL,R16
LDI R16, high(bauddivider)
OUT UBRRH,R16

ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
ldi r16, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)
out UCSRC,r16
ret
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.