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

Читал форум и "курс", понятно какой... курс скорее мешает думать, чем помогает. По этому сразу хочу определить, что без веских доводов буду осваиать Коде-вижн и ВинАВР, одновремнно с Протеус. Стараюсь изучать "С++". Могу объявлять конкурсы с призом в 100 баков... понимаю, что мало, но может это мне и поможет. Ну а теперь вопросы, касательно понимания сути:
Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) прямой или инверсный выход (или вход тоже?)
Прошу перечислить иные варианты.
Вход у AVR нельзя сделать инверсным.
Нашел где-то такую утилиту для конфигурирования портов. Посмотрите, может будет полезна для понимания назначения регистров IO.
Shurmas
Sep 9 2006, 07:44
такие утилиты встроены в компиляторы cvavr icc atmanavr и поставляются ввиде отдельных утилит iar и keil
За прогу спасибо, но не работет. Не хватает ей библиотеки.
кто нибудь читал такую книгу: У.Радд "Программирование на языке ассемблера и вычислительные системы IBM 360 и 370". Она полезна будет?
artem100
Sep 9 2006, 18:06
Цитата(smk @ Sep 9 2006, 16:34)

кто нибудь читал такую книгу: У.Радд "Программирование на языке ассемблера и вычислительные системы IBM 360 и 370". Она полезна будет?
я работал на этих главныхфрамугах(извините не сдержался)
а зачем asm там ковырять
там прикладного софта немеряно
но это совсем не мелкие 8 битовые местные микрушки
а масса паралельных многоразрядных процессоров
и явно не в этой ветке, не на этом форуме, и даже не в этой стране обсуждать
про asm для микропроцессора может только производитель этого микропроцессора написать
я еще в в местных не разобрался, но сходу вижу Intel-овским debug.exe (16bit контроллер прерываний 12int dma-всякие BIOS int DOS int и т.д.)здесь делать нечего
а вы в IBM распаралеливаемость с такой книжкой полезете
в метсных 8 битовых процессорах свои заморочки
вот жду что соберет на С в кучу местный ПивнойВоин на русском
может набранный хлам в голове забудется
muravei
Sep 11 2006, 06:04
Знаю, что навлеку гнев гуру, но я посоветовал бы Алгоритм Билдер
http://algrom.net/russian.html
sseett
Sep 11 2006, 07:03
Цитата(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. Прочтите главу порты ввода и вывода. Прекрасно описана суть работы с портами, кстати, практически перевод фирменного описания. Думаю, снимет все ваши вопросы. Книга есть в Интернете. Если найду ссылку напишу.
Цитата(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
Sep 11 2006, 09:03
Если есть проблемы со скачиванием с рапидшары то посмотрите там линк на библиотеку книг для скачивания и чтения: [...] "Книги по AVR и электронике"
Спасибо. Понятно. Даташитом пока не разжился нужным... все лабуда какая-то. Хоть и прошелся по многим, но толкового пока не нашел. Все вокруг да около.
Цитата(smk @ Sep 11 2006, 23:18)

Спасибо. Понятно. Даташитом пока не разжился нужным... все лабуда какая-то. Хоть и прошелся по многим, но толкового пока не нашел. Все вокруг да около.
Нужные даташиты на
http://www.atmel.com/dyn/products/datashee...p?family_id=607
Валентиныч
Sep 12 2006, 03:55
Очень рекомендую почитать: А.В. Евстифеев, "Микроконтроллеры 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 была.
Книжка лежит на рапиде
h__p://rapidshare.de/files/1294516/Evstifeev.Atmel.AVR.Tiny_Mega.Family.By.Grave.Tiny.html
(скачанному файлу нужно дать расширение .djvu)
Также есть замечательный портал gaw.ru
Удачи.
Shurmas
Sep 13 2006, 11:21
Цитата(smk @ Sep 9 2006, 03:55)

Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) вход высокоомный.
Цитата(Shurmas @ Sep 13 2006, 14:21)

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

Изменяя значения бита регистров можно конфигурировать вывод:
1) вход / выход;
2) если вход то со смещением в сторону положительного питания резистором 30-120к;
3) вход высокоомный.
даташит не нужен в этом. любой вход на КМОП уптрается в затвор полевика, а это не менее 10 Мом. Так что они все там высокоомные, если не подтянуть помехоустойчивости ради...
defunct
Sep 14 2006, 20:24
Цитата(smk @ Sep 14 2006, 22:22)

Цитата(Shurmas @ Sep 13 2006, 14:21)

3) вход высокоомный.
даташит не нужен в этом. любой вход на КМОП уптрается в затвор полевика, а это не менее 10 Мом. Так что они все там высокоомные, если не подтянуть помехоустойчивости ради...
Если Вы все и так прекрасно знаете, зачем тогда задаете свои "Серьезные вопросы".
"Очень грамотный и думающий человек осваивает AVR.":
По грамотности кстати "НЕЗАЧОТ".
Цитата
Не стебайтесь и не извращайтесь!
Гм.. кто бы говорил.
Задать вопрос, а потом поучать отвечающих, отдает именно стебом..
Извините если мнение ошибочно.
Shurmas
Sep 14 2006, 22:09
Цитата(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
я назвал высокоомным вход без подтяжки. Что не верно ?
Спасибо, книжек накачал. Читаю.
Цитата
По грамотности кстати "НЕЗАЧОТ".
Ну может и так... поправьте, плз. Затем и спрашиваю, высказываю свое видение... извините, если что не так.
Цитата
Гм.. кто бы говорил.
Задать вопрос, а потом поучать отвечающих, отдает именно стебом..
Извините если мнение ошибочно.
Я и не думаю кого-то поучать, не обижайтесь... некорректно выразился - это да. Если мое мнение ошибочно, то не воспринимаайте это как поучение, вполне достаточно аргументированного ответа. Извините, если кого обидел. Не хотел я этого. Я хочу научиться, разобрать все в деталях, чтоб потом не тратить время на понимание пропущенных тонкостей.
В одной из веток мне посоветовали изучать программирование на примерах программ. Может есть у кого программа на си для АВР, задействующая АЦП, компаратор, желательно с какими-то временными задержками. Ну например вольтметр-частотомер в реальном времени на ЖКИ однострочном. Измеритель амплитудного значения... Если есть - мне будет это полезно. Ну а пока книжные примеры смотрю.
Растолкуйте мне пожалуйста такую ситуацию. В тех моделях контроллеров, где кварц подключается к отдельным выводам, вопросов по нему пока нет. А как быть с ATmega8? Как я понял, нужно изменить состояние предохранителя. Программно это сделать невозможно. Как проиграть ATmega8 с внешним кварцем в Протеусе?
в протеусе просто задайте частоту в свойствак МК на схеме. кварц там игнорируется - он только для разводки платы.
Анет ли простенькой прграммки для Меги8, чтоб редактировалась и тренслировалась ВинАВР, со схемкой для поиграться.
Отлично! Спасибо, раборает. Тепрь есть с чем поиграться! Мой респект!
Начинает получаться! Радуюсь как дитя! Даже с перцовочкой вчера поужинал на радостях.
Есть вопрос: а вот такие позначки ^~_ и т.п. в программах. растолкуйте их смысл, если не трудно?
unichorn
Sep 24 2006, 10:13
http://www.natahaus.ru/Здесь можно много ссылок на книги найти.
Втом числе и по Си/С++.
Цитата(smk @ Sep 24 2006, 12:34)

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

Есть вопрос: а вот такие позначки ^~_ и т.п. в программах. растолкуйте их смысл, если не трудно?
^ - операция исключающего ИЛИ;
~ - побитовое отрицание (инверсия);
_ - такая же буква, как и любая латинская, может применяться в идентификаторах (чаще всего вместо пробелов для читаемости).
Shurmas
Sep 24 2006, 12:46
Цитата(smk @ Sep 24 2006, 14:50)

Смотрите чего нашел: edu-rus.org
кто-нибудь знает что это?
это как выкинуть 2200 рублей.
Вот такой вопрос: Как организовать счетчик количества раз включения питания, хранящийся вр Флеш? ведь при перврм включении нужно присвоить переменной значение 1, , при втором добавить еще 1, но ведь присвоение единицы отработает раньше, таким образом эта переменная будет поочередно принимать значения 1, потом 2, потом 1 и т.д. Какие есть идеи? кто-нибудь делал подобное?
Shurmas
Sep 25 2006, 11:09
как это сделать написано в примерах к компилятору cvavr и в его help
Цитата(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
Sep 25 2006, 11:43
Цитата(smk @ Sep 11 2006, 23:18)

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

А задача конкретная есть? Или так - "лабуда какая-то" ?
Цитата(Dog Pawlowa @ Sep 25 2006, 14:43)

Цитата(smk @ Sep 11 2006, 23:18)

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

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

Да, задач конкретных не мало. К чему вопрос?
Цитата(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
Sep 26 2006, 19:46
Цитата
Как это работает физически? Собственно проверка на первое включение?
Может попросите модераторов изменить название топика и перенести в более соответствующее уровню обсуждения вопросов место?
Shurmas
Sep 27 2006, 03:54
Цитата(smk @ Sep 26 2006, 23:35)

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

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

Может попросите модераторов изменить название топика и перенести в более соответствующее уровню обсуждения вопросов место?
Убрать из названия топика слова "серьезные" и "думающий"? :-)
Цитата(unichorn @ Sep 27 2006, 11:00)

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