Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR-технология. Серьезные вопросы.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Страницы: 1, 2
smk
Читал форум и "курс", понятно какой... курс скорее мешает думать, чем помогает. По этому сразу хочу определить, что без веских доводов буду осваиать Коде-вижн и ВинАВР, одновремнно с Протеус. Стараюсь изучать "С++". Могу объявлять конкурсы с призом в 100 баков... понимаю, что мало, но может это мне и поможет. Ну а теперь вопросы, касательно понимания сути:
Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) прямой или инверсный выход (или вход тоже?)

Прошу перечислить иные варианты.

Ребята! Мне на самом деле важна помошь! Не стебайтесь и не извращайтесь! Просто помогите. Я не забуду Вас!
prottoss
Цитата(smk @ Sep 9 2006, 07:55) *
Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) прямой или инверсный выход (или вход тоже?)
Любой даташит на АВР-> раздел IO Ports -> Ports As General Digital IO -> Configuring The Pin -> таблица Port Pin Configuration:

DDxn____PORTxn____PUD(in SFIOR)____I/O____Pull-up___Comment

0_______ 0_________X_______________Input__No_______Tri-state (Hi-Z)

0_______1_________ 0_______________Input__Yes_______Pxn will source current if ext. pulled low.

0_______1_________1________________Input__ No_______Tri-state (Hi-Z)

1_______ 0_________X_______________Output__No_______Output Low (Sink)

1_______1__________X______________Output__No_______Output High (Source)


Вроде все понятно...
Igor26
Цитата(smk @ Sep 9 2006, 03:50) *
Читал форум и "курс", понятно какой... курс скорее мешает думать, чем помогает. По этому сразу хочу определить, что без веских доводов буду осваиать Коде-вижн и ВинАВР, одновремнно с Протеус. Стараюсь изучать "С++". Могу объявлять конкурсы с призом в 100 баков... понимаю, что мало, но может это мне и поможет. Ну а теперь вопросы, касательно понимания сути:
Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) прямой или инверсный выход (или вход тоже?)

Прошу перечислить иные варианты.

Вход у AVR нельзя сделать инверсным.
Нашел где-то такую утилиту для конфигурирования портов. Посмотрите, может будет полезна для понимания назначения регистров IO.
Shurmas
такие утилиты встроены в компиляторы cvavr icc atmanavr и поставляются ввиде отдельных утилит iar и keil
smk
За прогу спасибо, но не работет. Не хватает ей библиотеки.
smk
кто нибудь читал такую книгу: У.Радд "Программирование на языке ассемблера и вычислительные системы IBM 360 и 370". Она полезна будет?
artem100
Цитата(smk @ Sep 9 2006, 16:34) *
кто нибудь читал такую книгу: У.Радд "Программирование на языке ассемблера и вычислительные системы IBM 360 и 370". Она полезна будет?

я работал на этих главныхфрамугах(извините не сдержался)
а зачем asm там ковырять
там прикладного софта немеряно
но это совсем не мелкие 8 битовые местные микрушки
а масса паралельных многоразрядных процессоров
и явно не в этой ветке, не на этом форуме, и даже не в этой стране обсуждать

про asm для микропроцессора может только производитель этого микропроцессора написать
я еще в в местных не разобрался, но сходу вижу Intel-овским debug.exe (16bit контроллер прерываний 12int dma-всякие BIOS int DOS int и т.д.)здесь делать нечего

а вы в IBM распаралеливаемость с такой книжкой полезете

в метсных 8 битовых процессорах свои заморочки
вот жду что соберет на С в кучу местный ПивнойВоин на русском
может набранный хлам в голове забудется cranky.gif
muravei
Знаю, что навлеку гнев гуру, но я посоветовал бы Алгоритм Билдер
http://algrom.net/russian.html
_Bill
Цитата(smk @ Sep 9 2006, 16:34) *
кто нибудь читал такую книгу: У.Радд "Программирование на языке ассемблера и вычислительные системы IBM 360 и 370". Она полезна будет?

Вряд ли. Разве что если говорить об общих принципах программирования на ассемблере. Лучше поискать соответствующую книгу по AVR. Как вариант, поразбираться в программках, приведенных в AN. Их нас сайте Atmel предостаточно
Семён
Цитата(smk @ Sep 9 2006, 03:50) *
Читал форум и "курс", понятно какой... курс скорее мешает думать, чем помогает. По этому сразу хочу определить, что без веских доводов буду осваиать Коде-вижн и ВинАВР, одновремнно с Протеус. Стараюсь изучать "С++". Могу объявлять конкурсы с призом в 100 баков... понимаю, что мало, но может это мне и поможет. Ну а теперь вопросы, касательно понимания сути:
Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) прямой или инверсный выход (или вход тоже?)

Прошу перечислить иные варианты.

Купите книгу А.В. Евстигнеева Микроконтроллеры AVR семейства Tiny и Mega фирмы ATMEL. Прочтите главу порты ввода и вывода. Прекрасно описана суть работы с портами, кстати, практически перевод фирменного описания. Думаю, снимет все ваши вопросы. Книга есть в Интернете. Если найду ссылку напишу.
BVU
Цитата(smk @ Sep 9 2006, 03:50) *
Читал форум и "курс", понятно какой... курс скорее мешает думать, чем помогает. По этому сразу хочу определить, что без веских доводов буду осваиать Коде-вижн и ВинАВР, одновремнно с Протеус. Стараюсь изучать "С++".
...

Качайте книгу (Программирование на языке С для AVR и PIC микроконтроллеров) пока жива ссылка на:
http://rapidshare.de/files/32329851/Progr_na_C_AVR.rar.html
там какраз программирование с использованием WinAVR и CCS-PICC, включая эмуляцию программ с помощью AVR Studio и MPLAB.
Shurmas
Если есть проблемы со скачиванием с рапидшары то посмотрите там линк на библиотеку книг для скачивания и чтения: [...] "Книги по AVR и электронике"
smk
Спасибо. Понятно. Даташитом пока не разжился нужным... все лабуда какая-то. Хоть и прошелся по многим, но толкового пока не нашел. Все вокруг да около.
CDT
Цитата(smk @ Sep 11 2006, 23:18) *
Спасибо. Понятно. Даташитом пока не разжился нужным... все лабуда какая-то. Хоть и прошелся по многим, но толкового пока не нашел. Все вокруг да около.

Нужные даташиты на http://www.atmel.com/dyn/products/datashee...p?family_id=607
Валентиныч
Очень рекомендую почитать: А.В. Евстифеев, "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel", ДОДЭКА, 2005.
Весьма подробная русскоязычная подборка основных моментов даташит большинства контроллеров AVR. Описание архитектуры, принципа работы, настройки и опции "железа", и системы команд риск-контроллеров от Атмел. Одна из самых толковых русскоязычных книг по AVR-кам.
К сожалению, отсутствуют самые последние камни (типа Mega128), но это не беда - основы теже самые.
Есть в интернете (ссылку не помню, кажется встречал на kazus.ru) в формате дежа-вю.
Семён
Цитата(Валентиныч @ Sep 12 2006, 07:55) *
Очень рекомендую почитать: А.В. Евстифеев, "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel", ДОДЭКА, 2005.
Весьма подробная русскоязычная подборка основных моментов даташит большинства контроллеров AVR. Описание архитектуры, принципа работы, настройки и опции "железа", и системы команд риск-контроллеров от Атмел. Одна из самых толковых русскоязычных книг по AVR-кам.
К сожалению, отсутствуют самые последние камни (типа Mega128), но это не беда - основы теже самые.
Есть в интернете (ссылку не помню, кажется встречал на kazus.ru) в формате дежа-вю.

покупал сею книгу весной, Mega128 была.
vooon
Книжка лежит на рапиде
h__p://rapidshare.de/files/1294516/Evstifeev.Atmel.AVR.Tiny_Mega.Family.By.Grave.Tiny.html
(скачанному файлу нужно дать расширение .djvu)
Также есть замечательный портал gaw.ru

Удачи. smile.gif
Shurmas
Цитата(smk @ Sep 9 2006, 03:55) *
Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;


3) вход высокоомный.
smk
Цитата(Shurmas @ Sep 13 2006, 14:21) *
Цитата(smk @ Sep 9 2006, 03:55) *

Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;


3) вход высокоомный.


даташит не нужен в этом. любой вход на КМОП уптрается в затвор полевика, а это не менее 10 Мом. Так что они все там высокоомные, если не подтянуть помехоустойчивости ради...
defunct
Цитата(smk @ Sep 14 2006, 22:22) *
Цитата(Shurmas @ Sep 13 2006, 14:21) *

3) вход высокоомный.


даташит не нужен в этом. любой вход на КМОП уптрается в затвор полевика, а это не менее 10 Мом. Так что они все там высокоомные, если не подтянуть помехоустойчивости ради...

Если Вы все и так прекрасно знаете, зачем тогда задаете свои "Серьезные вопросы".
"Очень грамотный и думающий человек осваивает AVR.":
По грамотности кстати "НЕЗАЧОТ".

Цитата
Не стебайтесь и не извращайтесь!

Гм.. кто бы говорил.
Задать вопрос, а потом поучать отвечающих, отдает именно стебом..
Извините если мнение ошибочно.
Shurmas
Цитата(smk @ Sep 14 2006, 23:22) *
Цитата(Shurmas @ Sep 13 2006, 14:21) *

Цитата(smk @ Sep 9 2006, 03:55) *

Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;


3) вход высокоомный.


даташит не нужен в этом. любой вход на КМОП уптрается в затвор полевика, а это не менее 10 Мом. Так что они все там высокоомные, если не подтянуть помехоустойчивости ради...


я дал п. 3 в противовес вашему п. 2

я назвал высокоомным вход без подтяжки. Что не верно ?
smk
Спасибо, книжек накачал. Читаю.
Foris
а где скачали?
smk
http://lord-n.narod.ru/walla.html

тут есть не так чтоб мало.
smk
Цитата
По грамотности кстати "НЕЗАЧОТ".


Ну может и так... поправьте, плз. Затем и спрашиваю, высказываю свое видение... извините, если что не так.

Цитата
Гм.. кто бы говорил.
Задать вопрос, а потом поучать отвечающих, отдает именно стебом..
Извините если мнение ошибочно.


Я и не думаю кого-то поучать, не обижайтесь... некорректно выразился - это да. Если мое мнение ошибочно, то не воспринимаайте это как поучение, вполне достаточно аргументированного ответа. Извините, если кого обидел. Не хотел я этого. Я хочу научиться, разобрать все в деталях, чтоб потом не тратить время на понимание пропущенных тонкостей.
smk
В одной из веток мне посоветовали изучать программирование на примерах программ. Может есть у кого программа на си для АВР, задействующая АЦП, компаратор, желательно с какими-то временными задержками. Ну например вольтметр-частотомер в реальном времени на ЖКИ однострочном. Измеритель амплитудного значения... Если есть - мне будет это полезно. Ну а пока книжные примеры смотрю.
smk
Растолкуйте мне пожалуйста такую ситуацию. В тех моделях контроллеров, где кварц подключается к отдельным выводам, вопросов по нему пока нет. А как быть с ATmega8? Как я понял, нужно изменить состояние предохранителя. Программно это сделать невозможно. Как проиграть ATmega8 с внешним кварцем в Протеусе?
Foris
в протеусе просто задайте частоту в свойствак МК на схеме. кварц там игнорируется - он только для разводки платы.
smk
Анет ли простенькой прграммки для Меги8, чтоб редактировалась и тренслировалась ВинАВР, со схемкой для поиграться.
Foris
вот:
http://www.robotstorehk.com/avr/doc/AVR_Source_Codes.zip

http://www.robotstorehk.com/avr/avr-RS-SERVO8.html

там же как стартовать с WinAVR
smk
Отлично! Спасибо, раборает. Тепрь есть с чем поиграться! Мой респект!
smk
Начинает получаться! Радуюсь как дитя! Даже с перцовочкой вчера поужинал на радостях.

Есть вопрос: а вот такие позначки ^~_ и т.п. в программах. растолкуйте их смысл, если не трудно?
unichorn
http://www.natahaus.ru/

Здесь можно много ссылок на книги найти.

Втом числе и по Си/С++.
smk
Смотрите чего нашел: http://edu-rus.org/?modul=kurs&block=moder&kurs=15

кто-нибудь знает что это?
smk
Цитата(smk @ Sep 24 2006, 12:34) *
Начинает получаться! Радуюсь как дитя! Даже с перцовочкой вчера поужинал на радостях.

Есть вопрос: а вот такие позначки ^~_ и т.п. в программах. растолкуйте их смысл, если не трудно?


Спасибо за ссылку! Посмотрю обязательно. У меня уже есть и по Си и по контроллерам. Нашел только "~" - поразрядное отрицание. А остальные? где подробно рассмотрен синтаксис?
IgorKossak
Цитата(smk @ Sep 24 2006, 12:34) *
Есть вопрос: а вот такие позначки ^~_ и т.п. в программах. растолкуйте их смысл, если не трудно?

^ - операция исключающего ИЛИ;
~ - побитовое отрицание (инверсия);
_ - такая же буква, как и любая латинская, может применяться в идентификаторах (чаще всего вместо пробелов для читаемости).
Shurmas
Цитата(smk @ Sep 24 2006, 14:50) *
Смотрите чего нашел: edu-rus.org

кто-нибудь знает что это?


это как выкинуть 2200 рублей.
smk
Вот такой вопрос: Как организовать счетчик количества раз включения питания, хранящийся вр Флеш? ведь при перврм включении нужно присвоить переменной значение 1, , при втором добавить еще 1, но ведь присвоение единицы отработает раньше, таким образом эта переменная будет поочередно принимать значения 1, потом 2, потом 1 и т.д. Какие есть идеи? кто-нибудь делал подобное?
Shurmas
как это сделать написано в примерах к компилятору cvavr и в его help
otrog
Цитата(smk @ Sep 25 2006, 14:00) *
Вот такой вопрос: Как организовать счетчик количества раз включения питания, хранящийся вр Флеш? ведь при перврм включении нужно присвоить переменной значение 1, , при втором добавить еще 1, но ведь присвоение единицы отработает раньше, таким образом эта переменная будет поочередно принимать значения 1, потом 2, потом 1 и т.д. Какие есть идеи? кто-нибудь делал подобное?

Примерно так:
Код
__eeprom unsigned long power_counter;     // счетчик включений
__eeprom unsigned long inv_power_counter; // инверсия счетчика включений



if (power_counter != ~inv_power_counter)  // проверка на первое включение
  power_counter = 0;                      // если включение первое, то обнулить счетчик
power_counter++;                          // инкремент счетчика
inv_power_counter = ~power_counter;       // формирование инверсии счетчика
Dog Pawlowa
Цитата(smk @ Sep 11 2006, 23:18) *
...все лабуда какая-то. ...Все вокруг да около...

biggrin.gif А задача конкретная есть? Или так - "лабуда какая-то" ? a14.gif
smk
Цитата(Dog Pawlowa @ Sep 25 2006, 14:43) *
Цитата(smk @ Sep 11 2006, 23:18) *

...все лабуда какая-то. ...Все вокруг да около...

biggrin.gif А задача конкретная есть? Или так - "лабуда какая-то" ? a14.gif


Да, задач конкретных не мало. К чему вопрос?
smk
Цитата(otrog @ Sep 25 2006, 14:10) *
Цитата(smk @ Sep 25 2006, 14:00) *

Вот такой вопрос: Как организовать счетчик количества раз включения питания, хранящийся вр Флеш? ведь при перврм включении нужно присвоить переменной значение 1, , при втором добавить еще 1, но ведь присвоение единицы отработает раньше, таким образом эта переменная будет поочередно принимать значения 1, потом 2, потом 1 и т.д. Какие есть идеи? кто-нибудь делал подобное?

Примерно так:
Код
__eeprom unsigned long power_counter;     // счетчик включений
__eeprom unsigned long inv_power_counter; // инверсия счетчика включений



if (power_counter != ~inv_power_counter)  // проверка на первое включение
  power_counter = 0;                      // если включение первое, то обнулить счетчик
power_counter++;                          // инкремент счетчика
inv_power_counter = ~power_counter;       // формирование инверсии счетчика



Как это работает физически? Собственно проверка на первое включение?

А то-же самое на Ассемблере?
zltigo
Цитата
Как это работает физически? Собственно проверка на первое включение?

Может попросите модераторов изменить название топика и перенести в более соответствующее уровню обсуждения вопросов место?
Shurmas
Цитата(smk @ Sep 26 2006, 23:35) *
А то-же самое на Ассемблере?


тот ресурс что вы читали и который вам думать мешает информирует: откомпилируйте прогу на Си и посмотрите листинг АСМ и увидите как процедуры на Си компилер изображает в АСМе.
smk
Цитата(zltigo @ Sep 26 2006, 22:46) *
Цитата

Как это работает физически? Собственно проверка на первое включение?

Может попросите модераторов изменить название топика и перенести в более соответствующее уровню обсуждения вопросов место?


В чайники? smile.gif

Можно и туда. Мне все равно где это будет находиться, главное чтоб отвечали.
unichorn
Хмм главное чтоб отвечали?
Ладно.
Только многие будут отвечать загадками, чтоб ты пораскинул мозгами.
Кстати очень даже полезно.
Сергей Борщ
Цитата(zltigo @ Sep 26 2006, 22:46) *
Может попросите модераторов изменить название топика и перенести в более соответствующее уровню обсуждения вопросов место?
Убрать из названия топика слова "серьезные" и "думающий"? :-)
smk
Цитата(unichorn @ Sep 27 2006, 11:00) *
Хмм главное чтоб отвечали?
Ладно.
Только многие будут отвечать загадками, чтоб ты пораскинул мозгами.
Кстати очень даже полезно.


С удовольствием пораскину. Я и задачки бы порешал. Вот где бы найти такую учебную прогу (текст на Си) чтоб можно было посмортреть как комп шагает по проге, какой синтаксис правильно для ВинАВР и Коде вижн использовать (и вообще есть ли разница?), да и вообще книжки это хорошо, но долго. У меня сейчас вообще есть затык с командами условного и безусловного перехода. Неделю назад я не знал как подступиться, а сейчас уже текст на дисплей вывожу. Еще обнаружил, что нужно так писать проги, чтоб при ее циклическом прогоне на выходах небыло перепадов с частотой прогона прооги, что в свою очередь "стандартизирует" конструкции программ. Начинаю писать свой справочник приемов программирования. А еще обнаружил, что Протеус не симулирует в реальном времени. Конечно прога отличная, но "в железе" будет по-другому. По-этому задумал купить СТК500, набор из контроллеров разных, дисплеев ЖКИ. Ну вобщем пожелайте мне удачи и помогайте, я очень нуждаюсь в этом.

Удачи всем и во всем!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.