|
Микроконтроллеры для начинающих, AVR, PIC, FUJITSU |
|
|
|
Mar 24 2005, 11:21
|

Частый гость
 
Группа: Свой
Сообщений: 138
Регистрация: 1-06-04
Из: Nighny Novgorod
Пользователь №: 27

|
AtmelПроизводитель: Atmel Corporation. Сайт: ENG РУСhttp://[banned]/ детально не изучал, но, вроде бы, достаточно полезного материала для начинающих. AVReAl - программатор AVR в последовательном режиме через LPT Осваиваем AVR микроконтроллерыСайт Михаил Николаева, большого любителя пива и коллекционера пивных этикеток MicrochipПроизводитель: Microchip Technology. Cайт: ENG РУСhttp://pic16f84.narod.ru/Что такое PIC ? Программатор, проекты для PIC16xxx, ссылки на документацию. FUJITSUПроизводитель: FUJITSU Сайт: ENGМикроконтроллеры Fujitsu 16-LX/FRFAQ по микроконтроллерам MB90FXXX, MB91FXXX. Внутрисхемный программатор микроконтроллеров семейства F2MC-16LX и FR. [url=http://www.fujitsu.com/global/services/microelectronics/product/micom/support/faq/]FAQ Fujitsu от производителя, ENG[url]
--------------------
|
|
|
|
|
Apr 6 2005, 12:06
|
Частый гость
 
Группа: Свой
Сообщений: 174
Регистрация: 9-07-04
Пользователь №: 305

|
Цитата(Alexandr @ Mar 25 2005, 11:52) Не советую PIC для начинающих. Лучше действительно начинать с ATMEL. Объясню: у PIC-ов слишком оригинальная архитектура, неудачная регистровая система, банки памяти - все это ИМХО конечно. У ATMEL-ов (AVR,51) понятная, легкая в понимании архитектура. И последующий переход на другие микроконтроллеры будет проще. Все высказанное мнение относится к вопросу изучения микроконтроллеров начинающими на оборудовании типа лабораторных стендов. При работе с реальными проектами конечно есть нюансы. Не советую AVR для начинающих. Уж куда приятнее PIC. В преподавательской практике использовал оба - PIC схватывают на лету !!! Есть подозрение - что из-за системы команд.
|
|
|
|
|
Jul 3 2005, 12:16
|
Группа: Новичок
Сообщений: 3
Регистрация: 2-07-05
Пользователь №: 6 470

|
|
|
|
|
|
Aug 3 2005, 13:13
|
Участник

Группа: Свой
Сообщений: 22
Регистрация: 13-05-05
Пользователь №: 4 994

|
Сам начинал с PIC-ов т.к. они появисились раньше всех на рынке. Потом пробовал 51 семейсво, понравилось. А сейчас работаю на AVR, у них почти во всех есть аппаратное умножение, хорошие компиляторы и отладчики. Хочу попробовать Texas Instru т.к. у них очень маленький ток потребления (встречаются задачи).
|
|
|
|
|
Aug 21 2005, 18:35
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 5-07-05
Из: Нижний Новгород
Пользователь №: 6 540

|
ПРостите, а где можно надыбать компилятор с Си для MCS-51? Франклин не советуют, избыточный код мол генерирует, советуют Кейл, а даже дем версии на сайте Кейла я не нашел. Есть кряканый, но на китайском языке тот сайт. И вообще, насколько рационально переходить на Си?
--------------------
Все мы учились понемногу - чему нибудь и как нибудь :).
|
|
|
|
|
Oct 26 2005, 13:44
|
Частый гость
 
Группа: Свой
Сообщений: 151
Регистрация: 4-10-04
Из: Москва
Пользователь №: 789

|
Цитата(san822 @ Oct 26 2005, 12:19) Переход на Си - это общеохватывающая тендеция. Вопрос лишь во времени - сейчас или позже. Ассемблер используют обычно когда не хватает каких то ресурсов(памяти или быстродействия), но по мере развития микропроцессорной техники всё реже и реже встречаются ситуации когда ощущается нехватка ресурсов. Да и поддержка (примеры программ) для некоторых МП сейчас даётся только на Си. Согласен во всём , но на Си все перешли ещё хрен знает скоко лет назад. Лет 5 или 10 назад гдето так  А вообще начинать осваивать MCS с Ассемблера это по нашему.
|
|
|
|
|
Oct 26 2005, 15:35
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(nameless @ Apr 6 2005, 18:06) Не советую AVR для начинающих. Уж куда приятнее PIC. В преподавательской практике использовал оба - PIC схватывают на лету !!! Есть подозрение - что из-за системы команд. BASIC студенты тоже на лету схватывают, однако не будем забывать классиков:“Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на BASIC: как потенциальные программисты они умственно оболванены без надежды на исцеление”. Увы, при всех достоинствах семейств PIC16 и PIC18, по силе воздействия на неокрепшие умы они в чём-то подобны пресловутому BASIC-у. Для "первого в жизни микроконтроллера" лучшим выбором будет всё-же семейство 8051 в силу большой распространённоси, "почтенного" возраста и доступности литературы. А вторым можно и PIC, уже не страшно. Замечено (мною) что знание хотя бы в общих чертах архитектуры нескольких сильно отличающихся друг от друга ЭВМ даёт устойчивый иммунитет против PIC-оманства и AVR-ства. Казалось бы, ну что толку от знания архитектуры Cray-1 с его векторными регистрами в наше время? А вот - помогает.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Aug 1 2006, 06:29
|
Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 932

|
Я осваивать МК начал, прошу не смеяться! с 1878ве1 (вроде и давно это было - в начале 11го класса, а вроде и недавно, всего каких-то два года прошло), в принципе, сейчас, попробовав на зуб  ПИКи, АВРы, МСП430, для себя сделал вывод, что АВР и МСП430 всё-таки легче даются чем ПИКи. (По крайней мере мне). ЗЫ. А может это из-за того что мне плата отладочная на MSP430F149 перепала? Хотя вроде под АВРы - то платы не перепадало... И ещё, в догонку: Я начал с асма.. мне это по первости помогло понять весьма своебразную тесеевскую структуру, ИМХО если сразу начинать с С, не получиться въехать в принципы адресации и т.д. Хотя я не настолько профи чтоб об этом рассуждать свысока..
Сообщение отредактировал ESL - Aug 1 2006, 06:24
|
|
|
|
|
Sep 5 2006, 03:07
|
Участник

Группа: Свой
Сообщений: 70
Регистрация: 4-04-06
Из: г. Омск
Пользователь №: 15 777

|
Цитата(Kofey Nik @ Aug 22 2005, 01:35)  ПРостите, а где можно надыбать компилятор с Си для MCS-51? Франклин не советуют, избыточный код мол генерирует, советуют Кейл, а даже дем версии на сайте Кейла я не нашел. Есть кряканый, но на китайском языке тот сайт. И вообще, насколько рационально переходить на Си? Работая на Си, практически не зависишь от структуры контроллера. Посмотрел регистры специальных функций и достаточно. Остальное - дело компилятора. Если очень заботит скорость, то прежде чем переходить на ассемблер, лучше глянуть в библиотечные функции. Там обычно есть функции, реализующие особенности контроллера для более быстрого выполнения. Да и структура программы получается гораздо более логичной (для начинающих) при отсутствии оператора goto. Отсюда вывод - переходить стоит!
|
|
|
|
|
Jan 7 2007, 02:43
|
Местный
  
Группа: Свой
Сообщений: 434
Регистрация: 20-10-04
Пользователь №: 921

|
To SSerge: Ya nachinal s BASIC programmirovat'...eshe v shkole...Tak chto ya - umstvenno otstaliy ??? Nu ne bilo na UKNCshkah i Poiskah togda drugih kompiliatorov... ABIDNO
--------------------
Жизнь не такая долгая, чтобы писать программы на ассемблере...
|
|
|
|
|
Jan 7 2007, 15:20
|
Частый гость
 
Группа: Новичок
Сообщений: 136
Регистрация: 18-08-06
Из: Novosibirsk
Пользователь №: 19 655

|
Цитата(koziy_mf @ Jan 7 2007, 05:43)  To SSerge: Ya nachinal s BASIC programmirovat'...eshe v shkole...Tak chto ya - umstvenno otstaliy ??? Nu ne bilo na UKNCshkah i Poiskah togda drugih kompiliatorov... ABIDNO  Ну почему сразу отсталый? Всего лишь оболваненный  , как и я кстати, если дословно понимать Дейкстру, это из него цитата в том сообщении. Герр проффессор просто немного сгустил краски, вот у него и получилась такая загогулина - гипербола, т.е. художественное преувеличение. Что же до компиляторов - то их было просто вагон. На PDP под RT-11 были Фортран-4 и Фортран-77, целых два Паскаля, и два С (DECUS-овский и на основе pcc), и даже Кобол был. Вот только дисковых накопителей у УКНЦ не было. А с SCSI-винчестером да с электронным диском, да ещё со скоростным сетевым интерфейсом - вполне можно было работать.
|
|
|
|
|
Apr 2 2007, 12:46
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 27-01-06
Из: г. Ярославль
Пользователь №: 13 686

|
Цитата(Alexandr @ Mar 25 2005, 09:52)  Объясню: у PIC-ов слишком оригинальная архитектура, неудачная регистровая система, банки памяти - все это ИМХО конечно. честно говоря, мне то же нравится пиковская архитектура. Хотя может просто потому, что начинал с 51. Вернее даже с 31. Но регигтровая система неудачная - первый раз слышу. Банки памяти - потому что память такая. У АВР она то же есть, но всего 32 регистра вроде. Или около того. Если смотреть 18 серию, там уже попроще с банками. Страниц нет вообще. Кроме того, ечть 24 и dsПики. Сам я начинал с асма. Потому что 10 лет назад не знал о компиляторах. Инета не было, а были 2 книги - одна по однокристалкам 51, второй толмут от микрочипа. Потом перешел на Си. Первое время делал асм вставки. Потом меньше и меньше. Считаю - что переход нужен.
|
|
|
|
|
Mar 27 2008, 10:00
|

Группа: Участник
Сообщений: 10
Регистрация: 25-05-07
Из: SPb
Пользователь №: 27 954

|
Преподаю программирование для микроконтроллеров уже много лет. Пробовали PIC, Fujitsu, MCS51, ARM. Лучше всего для новичков прижился MCS-51. Литературы и методических материалов - море. Для "продвинутых парней" - ARM7. Язык программирования - немного ассемблера для MCS51, для затравки, дальше C. Для ARM7 - только C.
--------------------
|
|
|
|
|
Apr 17 2008, 07:11
|
Группа: Новичок
Сообщений: 1
Регистрация: 17-04-08
Пользователь №: 36 816

|
Цитата(ptolemy @ Mar 27 2008, 13:00)  Преподаю программирование для микроконтроллеров уже много лет А где преподаете? Что посоветуете совсем начинающим (речь о радиокружке), есть какие-то очень доступные обучалки? Проблема вот в чем, если с обычной логикой все обычно схватывается на лету, то вот когда речь заходит о микроконтроллерах, то проблема начинается практически сразу на этапе объяснения архитектуры. Помнится в институте у нас были "чемоданы" на которых изучался асм, нет ли чего-нибудь подобного для AVR (PIC)
--------------------
|
|
|
|
|
Apr 17 2008, 13:53
|

Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 6-03-07
Из: Новосибирск, Seattle
Пользователь №: 25 935

|
Цитата(Kofey Nik @ Aug 22 2005, 01:35)  Есть кряканый, но на китайском языке тот сайт. Я знаю китайский. Давайте ссылку. ^_^
--------------------
НГТУ, Физико-технический факультет, кафедра Лазерных систем
|
|
|
|
|
Apr 22 2008, 16:13
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993

|
Цитата(john74 @ Apr 17 2008, 11:11)  ...Что посоветуете совсем начинающим (речь о радиокружке)... Добрый день! Если позволите, я хотел бы выяснить у Вас в части радиокружка - а какие интересы у радиокружковцев? Я часто советую начинать освоение микроконтроллеров с помощью программ вида FlowCode. Но у меня нет ни опыта преподавания, ни навыков ведения кружков и т.д. То есть я могу ориентироваться только на мнение других. Если Вас не затруднит, был бы признателен за совет практика.
|
|
|
|
Guest_opolo8_*
|
Apr 26 2008, 19:59
|
Guests

|
Хотелось бы освоить программирование контроллеров AVR на языке C++, может кто - нибудь знает какую - нибудь литературу по этой теме? Столкнулся с тем что все примеры для C, и книги которые есть посвящены программированию на C. Хотелось бы узнать как компилятор C, распологает программу в памяти контроллера. Заранее благодарю за ответы( если будут).
|
|
|
|
Guest_opolo8_*
|
Apr 28 2008, 05:31
|
Guests

|
Спасибо за рекомендацию. Для отладки есть плата STK500, так что с этим проблем нет. Ю.А.Шпака просмотрел, надо будет все таки подробно почитать. Но там примеры все на C, в этом и проблема, знаю C++ и не очень хочется разбираться с особенностями C, но похоже что придется. А про память я немного другое имел ввиду, как программа располагается в пространстве памяти? Раньше программировал на ассемблере контроллеры с архитектурой MCS-51, так там все просто так как полностью сам управляешь расположением всей программы в пространстве памяти, а вот в C что то не совсем ясно.
|
|
|
|
|
Apr 28 2008, 07:55
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(opolo8 @ Apr 28 2008, 12:31)  Спасибо за рекомендацию. Для отладки есть плата STK500, так что с этим проблем нет. Ю.А.Шпака просмотрел, надо будет все таки подробно почитать. Но там примеры все на C, в этом и проблема, знаю C++ и не очень хочется разбираться с особенностями C, но похоже что придется. Если знаете С++, значит, знаете и С, т.к. С является подмножеством С++. Особенностей С, в которых он не совпадает с С++, очень немного - на одной руке пальцев хватит пересчитать. Еще надо обратить внимание на то, какие возможности языка поддерживаются - они, как правило, не все поддерживаются (и это часто оправдано). Например, врядли найдете 8/16-разрядный процессор, компилятор которого поддерживал бы исключения. Но в остальном все вполне пристойно - классы, наследование, полиморфизм, шаблоны, все это на сегодняшний день уже есть. Цитата(opolo8 @ Apr 28 2008, 12:31)  А про память я немного другое имел ввиду, как программа располагается в пространстве памяти? Раньше программировал на ассемблере контроллеры с архитектурой MCS-51, так там все просто так как полностью сам управляешь расположением всей программы в пространстве памяти, а вот в C что то не совсем ясно. Все как обычно. И тоже все управляемо. В библиотеке есть функция startup (ее названия у всех платформ свои, но суть одна), которая выполняет инициализацию регистров процессора (указатель стека и др.), а также статическую и динамическую инициализацию, после чего передает управление функции main путем вызова ее. Эта функция (startup) размещается в памяти программ всегда, и ей передается управление при сбросе процессора - т.е. когда процессор стартует с начального адреса (у разных платформ этот адрес тоже свой в силу аппаратных особенностей). Конкретные детали реализации этого - как что размещается и т.д. - надо смотреть документацию на используемую платформу. Как правило данные и код мапятся на именованные сегменты памяти, а сами сегменты размещаются в памяти в соответствии с директивами линкеру, задаваемыми в линкерном скрипте. Обычно пакет поставляется уже в таком виде, что там все как-то настроено по умолчанию, и уже можно начать сразу что-то писать. При желании можно разобраться, что к чему, и "перезаточить" под свои нужды/вкусы.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
Guest_opolo8_*
|
Apr 28 2008, 08:27
|
Guests

|
Болшое спасибо за исчерпывающий ответ. Осталось только разобраться какие классы и функции существуют для работы с контроллерами AVR.
|
|
|
|
Guest_opolo8_*
|
Apr 28 2008, 12:08
|
Guests

|
Вообще я не программист и тема форума Микроконтроллеры для начинающих, незнаю откуда у начинающих может быть опыт. Я только учусь программировать контроллеры на С++, по этому и задаю тут вопросы.
|
|
|
|
|
Apr 28 2008, 15:41
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(opolo8 @ Apr 28 2008, 11:27)  какие классы и функции существуют для работы с контроллерами AVR. Классов, специально заточенных для AVR нет. Есть некоторое подмножество стандартной библиотеки (в разных компиляторах разное), но весьма сомнительно, что вам она понадобится - памяти у этих контроллеров маловато. Специальные (intrinsic) функции есть в некоторых компиляторах для выполнения некоторых специфичных действий, как, например, разрешение прерываний. В других компиляторах такие действия могут выполняться вставками на инлайн-ассемблере. Это описано в документации на компилятор.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Apr 28 2008, 16:12
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(SSerge @ Oct 26 2005, 18:35)  BASIC студенты тоже на лету схватывают, однако не будем забывать классиков:“Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на BASIC: как потенциальные программисты они умственно оболванены без надежды на исцеление”. Не, я всё-таки начинаю исцеляться, спустя 15 лет. Даже пару классов на с++ нарисовал. А вцелом согласен - бейсик - для домохозяек (хоть даже и вижуал)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Apr 29 2008, 08:50
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(MrYuran @ Apr 29 2008, 01:12)  Не, я всё-таки начинаю исцеляться, спустя 15 лет. Даже пару классов на с++ нарисовал.
А вцелом согласен - бейсик - для домохозяек (хоть даже и вижуал) А я наоборот получается деградирую :D. в 11 классе писал на VBA и VB 6.0 на 1 курсе Borland Pascal и Delphi 6.0 на 2 курсе Pascal+ASM и TASM на 3 курсе MASM и MPASM на 4 курсе С и С++ , а потом Java, PHP и последний мой проект, за который мне заплатили, больше чем за все предыдущие на VBA  На самом деле в автокаде иногда не обойтись без VBA. Хотя есть люди, которые считают, что в автокаде надо на LISPе.  (Кстати, некоторые вещи лучше на нём) Начинать изучать (ради изучать) лучшего с чего-то универсального и перспективного. Думаю, что 16 семейство уже отжило свой век, их существование это консервативизм некоторых, хотя я когда-то начал именно с них. Расскажу забавный случай, про консервативизм. Есть в Новосибирске контора одна они делают свои контроллеры для АСУ ТП на мотороловских камнях, помоему с ядром MC68000. Из характеристик этого проца можно взять 8 MIPS, 1 Ethernet, CAN. Ну да и ещё 4000 рублей стоимость  Забавно, что тот же AT32AP7000 имеет 210 DMIPS, 2 ethernetа, USB 2.0 Hi-Speed, да и вообще кучу всего и стоит 350 рублей. Мне посмеялись в лицо когда я спросил почему им не поменять мозги их контроллеров. Подумаешь производительность в >26 раз выше и экономия >3500 , у заказчика деньги есть, на кой чёрт менять. Под задачу всё должно выбираться. Лучше начинать решать задачи какие-то, а под них уже железо выбирать. Извиняюсь за сумбурность, тороплюсь.
|
|
|
|
|
Apr 29 2008, 15:41
|

Группа: Новичок
Сообщений: 6
Регистрация: 29-04-08
Из: Орел
Пользователь №: 37 151

|
Я новичок в работе с микроконтроллерами и мне нужна помощь по выбору контролера для устройства обработки информации в датчике.
Я студент и делаю диплом, датчик отклонения от вертикали. Задача контроллера достаточно проста - на выходе датчика имееться сигнал, каждое его значение соответствует углу отклонения, нужно что бы котролер выводил на индикатор значения этого угла отклонения в соответствии входному сигналу.
В нашем университете изучают только дремучий микропроцессорный комплект КР580, а мне не хотелось бы в дипломе использовать такое старьё, к томуже прейдеться использовать кучу микросхем для реализации задачи.
Диапазон измерения 0-12градусов с чувствительностью примерно 3минуты, разрядности АЦП будет достаточно и 8, сигнал не превышает 10В.
Подскажите что я мог бы использовать. Заранее благодарен.
--------------------
Может это и бонально, но - "Да прибудет с вами сила"
|
|
|
|
|
Apr 29 2008, 17:03
|
Местный
  
Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723

|
Цитата(Old_Jedi @ Apr 29 2008, 18:41)  Подскажите что я мог бы использовать. Заранее благодарен. Почти любой микроконтроллер с АЦП на борту. Из х51 - Silabs С8051F410, из AVR - например, Mega 128. У обоих АЦП 12 бит. Для этой задачи они даже избыточны, но для изучения - вполне. Контроллеры на ARM (например, LPC23xx) недороги, еще мощнее, но сложнее и без возможности оперативно обратиться к уже освоившим их, в одиночку потянуть их трудно.
Причина редактирования: Излишнее цитирование.
|
|
|
|
|
Apr 29 2008, 23:49
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(Old_Jedi @ Apr 30 2008, 00:41)  Я студент и делаю диплом, датчик отклонения от вертикали. Задача контроллера достаточно проста - на выходе датчика имееться сигнал, каждое его значение соответствует углу отклонения, нужно что бы котролер выводил на индикатор значения этого угла отклонения в соответствии входному сигналу. В процессе можете ещё прикрутить RS-232 и SD/MMC карту памяти, поверьте это не сложно. Цитата(Old_Jedi @ Apr 30 2008, 00:41)  В нашем университете изучают только дремучий микропроцессорный комплект КР580, а мне не хотелось бы в дипломе использовать такое старьё, к томуже прейдеться использовать кучу микросхем для реализации задачи. Сочувствую... Правда у нас они уже сломались  Цитата(Old_Jedi @ Apr 30 2008, 00:41)  Диапазон измерения 0-12градусов с чувствительностью примерно 3минуты, разрядности АЦП будет достаточно и 8, сигнал не превышает 10В. Если сигнал 10В, то на АЦП его на прямую нельзя. Советую поделить. А после делителя поставить ОУ. Собственно схема:
Здесь сигнал от 0 до 10В. Если Вам нужен биполярный сигнал, то схему прийдётся переделывать. На выходе сигнал от 0 до 5В, следовательно опорное напряжение у АЦП также должно быть 5В. Если опорное хотите использовать другое, то схему прийдётся переделывать. Если не секрет в какой САПР будете проектировать печатную плату ? Цитата(Old_Jedi @ Apr 30 2008, 00:41)  Подскажите что я мог бы использовать. Заранее благодарен. ATtiny2313 можно, цена должна понравится. Можно ATmega88. Программаторы есть в нете. Среда программирования IAR или AVR Studio, там же.
|
|
|
|
|
Apr 30 2008, 07:31
|

Группа: Новичок
Сообщений: 6
Регистрация: 29-04-08
Из: Орел
Пользователь №: 37 151

|
Цитата(ZLOI @ Apr 30 2008, 03:49)  Если сигнал 10В, то на АЦП его на прямую нельзя. Советую поделить. А после делителя поставить ОУ.
Если не секрет в какой САПР будете проектировать печатную плату ? Спасибо за подсказки. По поводу сигнала в 10В это не проблема, он там специально усиливался для определенного АЦП, можно просто убрать усилитель, что еще упростит мою задачу. А плату проектировать в P-CAD'е буду, только проблема в том, что нам его практически не преподавали  Не знаю как там это делать, прейдеться помощь искать. Так что если заинтересован кто пишите в аську  Награда гарантируется.
--------------------
Может это и бонально, но - "Да прибудет с вами сила"
|
|
|
|
|
Apr 30 2008, 09:06
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(Old_Jedi @ Apr 30 2008, 16:31)  А плату проектировать в P-CAD'е буду, только проблема в том, что нам его практически не преподавали  Советую скачать eagle layout с казуса. Очень простецкая САПР и весит не много(<20 Мб). Я пользуюсь protel DXP (165 Мб). По мне, так в тысячу раз приятнее и удобнее пикада. Здесь на электрониксе есть форумы посвещённые САПР, можете спрашивать, что не понятно. По поводу награды, наверное Вам уже просто поздно делать диплом, так? Если нет, то лучше самому, любой вид интеллектуальной деятельности, в том числе разработка ПП - развивает мышление и может пригодится для других отраслей. Не однократно в этом убеждался. Успехов.
|
|
|
|
|
Apr 30 2008, 14:25
|

Группа: Новичок
Сообщений: 6
Регистрация: 29-04-08
Из: Орел
Пользователь №: 37 151

|
Цитата(ZLOI @ Apr 30 2008, 13:06)  По поводу награды, наверное Вам уже просто поздно делать диплом, так? да вы правы  Я из тех кто делает сам но всегда невовремя. а когда начинаю неуспевать то прошу отдельные задачки помоч кого нибуть. Но к сожалению вся наша группа необучена как и я такого рода работе, поэтому прейдеся тут искать помощи
--------------------
Может это и бонально, но - "Да прибудет с вами сила"
|
|
|
|
|
Apr 30 2008, 15:51
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(Old_Jedi @ Apr 30 2008, 23:25)  да вы правы  Я из тех кто делает сам но всегда невовремя. а когда начинаю неуспевать то прошу отдельные задачки помоч кого нибуть. Но к сожалению вся наша группа необучена как и я такого рода работе, поэтому прейдеся тут искать помощи  Скачайте игл и проблем не будет, может там не большой функционал, но разобраться 5 минут хватит. Или проблема в самой разработке? Если так, то тут сразу нанимать и не ждать никого. Если в схемотехнике понимаете, то совет выше. З.Ы. Я сам ЭВМщик и у нас тоже все на САПР повесились... Ох и заработал я тогда, правда повторно желания нет на дискретах чего-то лепить.
|
|
|
|
|
Apr 30 2008, 16:19
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-04-08
Пользователь №: 37 190

|
Здравствуйте всем, Всем заранее благодарен Такой вопрос : Задача: сделать 8 канальный АЦП.. Инструменты: PIC18F4550 на демоплате DM163025 PICDEM FS USBDemo board используя готовый проект реализации устройства USB используя библиотеку CDC.. .... о не могу понять как это все реализовать для 8ми портов и передать на комп..все что не пробовал получаеться какой то бре...если возможно помогите мне ...Как инициализировать правильно порты как будет выглядеть сам код считывания с АЦП..еще я не шарю в таймингах розличных какими они должны быть.....ВСЕ большое спасибо!!! Moderator: Обширные неформаторованные исходники из тела сообщения удалил. При необходимости следует воспользоваться приложением ввиде архива. Небольшие исходники - форматироваить.
|
|
|
|
|
May 2 2008, 17:43
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(Artem_Gusev @ May 1 2008, 01:19)  Здравствуйте всем, Всем заранее благодарен Такой вопрос : Задача: сделать 8 канальный АЦП.. Инструменты: PIC18F4550 на демоплате DM163025 PICDEM FS USBDemo board используя готовый проект реализации устройства USB используя библиотеку CDC.. Но не могу понять как это все реализовать для 8ми портов и передать на комп..все что не пробовал получаеться какой то бре...если возможно помогите мне ...Как инициализировать правильно порты как будет выглядеть сам код считывания с АЦП..еще я не шарю в таймингах розличных какими они должны быть.....ВСЕ большое спасибо!!! Может ДШ почитать? Там вроде со страницы 261 неплохо про это расписано. Да и апликух пруд пруди.
|
|
|
|
|
May 3 2008, 11:05
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-04-08
Пользователь №: 37 190

|
Цитата(ZLOI @ May 2 2008, 20:43)  Может ДШ почитать? Там вроде со страницы 261 неплохо про это расписано. Да и апликух пруд пруди. ТЫ прав расписано там все прелесть, в теории, тока я в програмухе не сильно спец, потому и не получаться..порядок действий , ну вроде блок схему я себе то вырисовал, тока запрограммировать не получаться, поэтому и обратился за помошью... Потому буду очень признательный за кусочек рабочего кода к этому МК а точнее PIC18F4550...
Сообщение отредактировал Artem_Gusev - May 3 2008, 11:10
|
|
|
|
|
May 3 2008, 14:56
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(Artem_Gusev @ May 3 2008, 20:05)  ТЫ прав расписано там все прелесть, в теории, тока я в програмухе не сильно спец, потому и не получаться..порядок действий , ну вроде блок схему я себе то вырисовал, тока запрограммировать не получаться, поэтому и обратился за помошью... Потому буду очень признательный за кусочек рабочего кода к этому МК а точнее PIC18F4550... Я же и говорю, что у микрочипа есть Application notes, типа 6 канальных вольтметров с выводом на светодиодное табло, там и исходники и схема и даже проги для ПК, посмотри хорошо и вырежь чего надо.
|
|
|
|
|
May 6 2008, 17:35
|

Группа: Новичок
Сообщений: 6
Регистрация: 29-04-08
Из: Орел
Пользователь №: 37 151

|
Подскажите какие нибуть ресурсы руские по AVR Mega 128 контроллерам. Мне надо срочно разобраться как его подключить к моей схеме (суть задачи смотрите выше на стр3). Мне нужно подать свой измерительный сигнал до 2В примерно уровня на АЦП контроллера, и подключить к контроллеру какой либо индикатор который показывал бы от 0 до 10 градусов угол с точностью до минуты. Суть проблему в том что все материалы что я смотрел по контроллеру очень подробные, что усложняет их понимание. У котроллера множество выводов, я не знаю как его изобразить на электронной схеме, что бы и лишнего не было но и все для его работы было изображено.
Еще совсем смешной вопрос - какие габариты у контролера Mega 128? что то я ни где не видел в описании.
--------------------
Может это и бонально, но - "Да прибудет с вами сила"
|
|
|
|
|
May 6 2008, 18:17
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Old_Jedi @ May 6 2008, 23:35)  Подскажите какие нибуть ресурсы руские по AVR Mega 128 контроллерам. Мне надо срочно разобраться как его подключить к моей схеме (суть задачи смотрите выше на стр3). Например http://www.atmel.ru/http://www.gaw.ru/avr.htmЦитата(Old_Jedi @ May 6 2008, 23:35)  Мне нужно подать свой измерительный сигнал до 2В примерно уровня на АЦП контроллера, и подключить к контроллеру какой либо индикатор который показывал бы от 0 до 10 градусов угол с точностью до минуты. Для понимания и осоознания разбейте вашу задачу на несколько конечных автоматов/этапов, которые реализуются отдельно. - Измерение физической величины с помощью АЦП. - Преобразование полученного от АЦП кода в эквивалент измеряемой физической величины, например, в напряжение. Можно конечно этот этап пропустить, но тогда сложнее будет проконтролировать правильно ли ваш МК измеряет физическую величину. - Преобразование напряжения в отображаемые единицы - градусы. - Преобразование бинарного представления числа (градусов) в символьную строку. - Вывод символьной строки на индикатор. Цитата(Old_Jedi @ May 6 2008, 23:35)  Еще совсем смешной вопрос - какие габариты у контролера Mega 128? что то я ни где не видел в описании. Чертежы корпуса обычно приводятся в конце даташита. Но следует помнить, что одни и те же МК могут выпускаться в разных корпусах. Тип корпуса закодирован в полной маркировке микроконтроллера.
|
|
|
|
|
May 7 2008, 08:08
|

Группа: Новичок
Сообщений: 6
Регистрация: 29-04-08
Из: Орел
Пользователь №: 37 151

|
Цитата(rezident @ May 6 2008, 22:17)  Для понимания и осоознания разбейте вашу задачу на несколько конечных автоматов/этапов, которые реализуются отдельно. - Измерение физической величины с помощью АЦП. - Преобразование полученного от АЦП кода в эквивалент измеряемой физической величины, например, в напряжение. Можно конечно этот этап пропустить, но тогда сложнее будет проконтролировать правильно ли ваш МК измеряет физическую величину. - Преобразование напряжения в отображаемые единицы - градусы. - Преобразование бинарного представления числа (градусов) в символьную строку. - Вывод символьной строки на индикатор. измерять величену мою не надо. Смысл примерно такой: есть теоретическая функция преобразования преобразователя, она нелинейна, поэтому ее как бы разбиваем, что бы получить таблицу где определенной величене угла соответствовал определенный уровень выходного сигнала. Эту таблицу забиваем в память контроллера. Сигнал будет оцифровываться с помощью ацп контроллера и этот код например может служить адресом ячейки памяти, где уже храниться величена угла соответственная входному сигналу, останеться ее только вывести на индикатор. Я представляю как это все сделать на древнем МП который мы изучали  . но суровая реальность требует современных технологий, поэтому нужно как то воплотить это на совершенно незнакомом котроллере. Вот поэтому я сдесь
Сообщение отредактировал Old_Jedi - May 7 2008, 08:09
--------------------
Может это и бонально, но - "Да прибудет с вами сила"
|
|
|
|
|
May 7 2008, 08:38
|

Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 7-03-07
Из: Славный город Шелехов
Пользователь №: 25 967

|
Цитата(Old_Jedi @ May 7 2008, 17:08)  измерять величену мою не надо. Смысл примерно такой: есть теоретическая функция преобразования преобразователя, она нелинейна, поэтому ее как бы разбиваем, что бы получить таблицу где определенной величене угла соответствовал определенный уровень выходного сигнала. Эту таблицу забиваем в память контроллера. Сигнал будет оцифровываться с помощью ацп контроллера и этот код например может служить адресом ячейки памяти, где уже храниться величена угла соответственная входному сигналу, останеться ее только вывести на индикатор. Я представляю как это все сделать на древнем МП который мы изучали  . но суровая реальность требует современных технологий, поэтому нужно как то воплотить это на совершенно незнакомом котроллере. Вот поэтому я сдесь  Вот здесь посмотрите, там и прошива и схема: http://people.overclockers.ru/NAPman/record14А можно и так: http://www.google.ru/search?source=ig&...oogle&meta=
|
|
|
|
|
May 7 2008, 13:07
|
Группа: Новичок
Сообщений: 7
Регистрация: 7-05-08
Пользователь №: 37 351

|
Nu надо же вопросики для начинающих У меня вопрос начинающего. Пытаюсь поторить чужое рукотворное изделие, и даже спаял. Не могу прожечь PIC. Программатор ExstraPic ни мур-мур
|
|
|
|
|
May 7 2008, 16:18
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Old_Jedi @ May 7 2008, 14:08)  измерять величену мою не надо. Не понял. Почему это не нужно? Насколько я понял у вас имеется первичный пробразователь, который угол отклонения преобразует в электрический сигнал. Этот сигнал аналоговый или уже цифровой? Цитата(Old_Jedi @ May 7 2008, 14:08)  Смысл примерно такой: есть теоретическая функция преобразования преобразователя, она нелинейна, поэтому ее как бы разбиваем, что бы получить таблицу где определенной величене угла соответствовал определенный уровень выходного сигнала. Эту таблицу забиваем в память контроллера. Сигнал будет оцифровываться с помощью ацп контроллера и этот код например может служить адресом ячейки памяти, где уже храниться величена угла соответственная входному сигналу, останеться ее только вывести на индикатор. А тут про оцифровку сигнала с помощью АЦП речь идет. Ну и как понимать вашу фразу выше, о том, что сигнал оцифровывать не нужно? Кстати, а какой разрядности АЦП вы применять хотите? 10-и, 12-и, 16-и, 24-х? А теперь прикиньте-ка размер этой таблички для преобразования: например, для 24-х битного АЦП 2^24 состояний * 4 байта = 64 МегаБайта табличка получается однако!  Так что в аналитической форме-то формула преобразования гора-а-аздо меньше места займет.  Также при необходимости применяют таблицы аппроксимации (например, кусочно-линейной), которые опять же гораздо меньше предложенного вами способа преобразования занимают места в памяти. Цитата(Old_Jedi @ May 7 2008, 14:08)  Я представляю как это все сделать на древнем МП который мы изучали  . но суровая реальность требует современных технологий, поэтому нужно как то воплотить это на совершенно незнакомом котроллере. Вот поэтому я сдесь  Тогда начинать нужно с изучения самого МК.
|
|
|
|
|
May 8 2008, 10:15
|

Группа: Новичок
Сообщений: 6
Регистрация: 29-04-08
Из: Орел
Пользователь №: 37 151

|
Цитата(rezident @ May 7 2008, 20:18)  Не понял. Почему это не нужно? Насколько я понял у вас имеется первичный пробразователь, который угол отклонения преобразует в электрический сигнал. Этот сигнал аналоговый или уже цифровой? А тут про оцифровку сигнала с помощью АЦП речь идет. Ну и как понимать вашу фразу выше, о том, что сигнал оцифровывать не нужно? Кстати, а какой разрядности АЦП вы применять хотите? 10-и, 12-и, 16-и, 24-х? А теперь прикиньте-ка размер этой таблички для преобразования: например, для 24-х битного АЦП 2^24 состояний * 4 байта = 64 МегаБайта табличка получается однако!  Так что в аналитической форме-то формула преобразования гора-а-аздо меньше места займет.  Также при необходимости применяют таблицы аппроксимации (например, кусочно-линейной), которые опять же гораздо меньше предложенного вами способа преобразования занимают места в памяти. Тогда начинать нужно с изучения самого МК. Меня понять сложно, я же совсем не прошареный в научных делах  Говоря что величену не нужно измерять это я имел ввиду, что контролер сам не вычисляет эту величену. Да сигнал надо оцифрововать, и не помню что я говорил обратное. Я вроде конкретно ставил задачу, что ацп использую базовое Меги128, оно 10разрядное, вообще не понимаю зачем 24 разряда ) Я что то не уверен что моя таблица чисел, вернее это не таблица а набор чисел, будет занимать столько места в памяти, используя вашу же формулу подсчета - памяти нужно 4кбайта, а у меги128 на барту 128 кбайт встроеная память. Зато програмно такай способ помоему не напряжен, я вообще не программист ни грамма, но думаю все будет выглядить просто. Спасибо за ссылки и коментарии, иногда это помогает избежать критических ошибок. Но я буду надеяться на незнание нашими препадами данного микроконтроллера, что затруднит проверку правильности моих решений
Сообщение отредактировал Old_Jedi - May 8 2008, 10:17
--------------------
Может это и бонально, но - "Да прибудет с вами сила"
|
|
|
|
|
May 10 2008, 05:59
|
Группа: Новичок
Сообщений: 7
Регистрация: 7-05-08
Пользователь №: 37 351

|
Цитата(r_dot @ May 10 2008, 07:56)  Какой PIC? Прожигаешь в схеме или отдельно чип? Отдельно чип! Винда грузит прогу (IcProg) и ни мур-мур. В списке процессов вижу прогу и ресурс проца на её. неделю бодаюсь с компом. Не дайте лоб расшибить!
|
|
|
|
|
May 12 2008, 10:09
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993

|
Цитата(Chado @ May 10 2008, 09:59)  Отдельно чип! Винда грузит прогу (IcProg) и ни мур-мур. В списке процессов вижу прогу и ресурс проца на её. неделю бодаюсь с компом. Не дайте лоб расшибить!  Добрый день, я пользовался, хотя и недолго, парой ExtraPIC и программой для прошивки PIC16F628A. Проблем не встретил. Если нужно повторить, могу еще раз это попробовать, единственная проблема - Windows. Я пользуюсь Linux.
|
|
|
|
|
May 12 2008, 12:04
|
Группа: Новичок
Сообщений: 7
Регистрация: 7-05-08
Пользователь №: 37 351

|
в томто и бодяга. ХР со вторым паком, то она потеряет компорт, то графику на прогу, то вдруг ресурс проца под 100%. Выкручивался следующим образом. В оборудовании выключаю сом порт.перезагружаюсь по требованию винды. Гружу прогу от имени администратора( постоянно ругается и то немогу и это). Убиваю прогу в диспетчере задач. Включаю компорт. гружу типово. Проверяю настройки проги. всё тип топ. читаю микруху- всё по нолям. НЕЧИТАЕТ. Хотя светодиодик мерцает. Что с виндой? Пробовал на другом цомпе. тест программатора не идет самый первый пункт. хотя все режимы в норме. Дата туда, а оттуда нэмааа. Икуда девается компорт? Каждый раз выключать? В ломы! ПОМОГИТЕ!!!
|
|
|
|
|
May 12 2008, 14:48
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993

|
Цитата(Chado @ May 12 2008, 16:04)  в томто и бодяга. ХР со вторым паком... XP SP2. Попробую сегодня что-нибудь придумать. Как долго нужно работать с программатором, чтобы проявились проблемы?
|
|
|
|
|
May 12 2008, 15:48
|
Группа: Новичок
Сообщений: 7
Регистрация: 7-05-08
Пользователь №: 37 351

|
Вроде не должно быть проблем Но есть ведь.Все грехи валю на виду.Чип прожег у друга за 10 секунд. На моем программаторе. Уже впендюрил в схему ---- ПАШЕТ! Что с виндой непонятно!
|
|
|
|
|
May 12 2008, 16:48
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993

|
Цитата(Chado @ May 12 2008, 19:48)  ...Что с виндой непонятно! Windows XP SP2, кажется со всеми последними обновлениями. После настройки по инструкции (уже забыл, что надо настраивать) появлялись ошибки. После установки задержки до 40 (процессор 2.2ГГц), вроде бы, пропали ошибки. Раз 5-6 в режиме Прочитать-Стереть-Программировать и т.д. Возможно, проблема не столько с Windows, сколько с быстрым процессором? Может быть задержики и в 40 не хватает?
|
|
|
|
|
May 14 2008, 09:13
|
Группа: Новичок
Сообщений: 7
Регистрация: 7-05-08
Пользователь №: 37 351

|
|
|
|
|
|
May 14 2008, 10:11
|
Группа: Новичок
Сообщений: 10
Регистрация: 22-04-08
Пользователь №: 36 993

|
Цитата(Chado @ May 14 2008, 13:13)  ... В любом случае пога не в полном обЪёме загрузилась там где используются функции винды остается пустое место. Вызова функций АПИ просто нету. Что делать?Это гдето видимо в реестре вколочено. Хренаськи найдешь сотня мег реестр. или грохнуть всю винду и потом медленно и вернопоставить весь свой арсенал задач  Грохнуть все, это никогда не поздно. А Вы точно выполнили все рекомендации по настройке IC-PROG при первом запуске? Я забыл о настройках, попытался запустить и все было очень странно, пришлось прочитать файл pdf, который был на диске и тупо повторить все, что там касалось предварительной настройки. К сожалению, я уже псчти забыл Windows. Но, если мешает брэндмауэр, то, может быть, попробовать его отключить? Извините, если сказал глупость. Я уже запамятовал, но мне кажется, что я пробовал использовать EXTRA-PIC в Linux с программами KTechlab и Piklab. Если это мне не приснилось, то вполне удачно. Хотя больше я использовал самодельный простейший программатор.
|
|
|
|
|
May 15 2008, 11:50
|
Группа: Новичок
Сообщений: 7
Регистрация: 7-05-08
Пользователь №: 37 351

|
Но, если мешает брэндмауэр, то, может быть, попробовать его отключить? Отключиь брэндмауэр система не дает в сервис паках довески это ресекают сразу. Поступаю проще ВЫБРАСЫВАЮ IcProg к какойто маме. И шпандорим на проге Winpic800 она умеет распознавать чип. Шью пики 84, 628, 628А, 716, 874. Время на прошиву затрачивает чуть больше 10 сек. Одной рутинной работой меньше. так что тема бум говорить снята. Нехочет винда Icprog - и я не сильно то хотел.
|
|
|
|
|
May 16 2008, 07:38
|

Участник

Группа: Новичок
Сообщений: 19
Регистрация: 14-04-08
Из: Москва
Пользователь №: 36 755

|
Вот красивый проект для начинающих от новичка - LCD графический MT12864 - 128x64 точки. исходники для CVAVR и симуляция в PROTEUS - Прекрасно компилируется и симулируется. Можно симулировать в PROTEUS без компиляции - все файлы в архиве есть.
|
|
|
|
|
May 25 2008, 16:18
|

Местный
  
Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530

|
что такое BCD и для чего оно нужноBCD - Binary Coded Decimal -- это десятичное кодированное двоичным Binay Coded Decimal- это кодирование которое упрощает хранение,доступ к ним и конвертацию данных для вывода к примеру на ЖКИ. В результате конвертации мы в байте (8-bit) будем иметь два нибла (4-bit) каждый из которых будет содержать число в размере от 0 до 16.Таким образом это позволяет нам хранить в каждом нибле десятичное число от 0 до 9 и два в одном байте, тоесть в оном байте два десятичных числа. Пример конвертации десятичного числа переменной mybyte если её значение находится в пределах от 0 до 99: Код char mybyte = 78; Объявим переменную для значения старшего нибла. Код char upper_nibble = 0; //Подсчитаем колличество десятков в переменной mybyte. while (mybyte >= 10) { upper_nibble++; mybyte -= 10; } После таких преобразований в переменной mybyte осталось число 8, а upper_nibble равно 7. Чтобы получить сконвертированный байт объединим старший и младший ниблы: Код char result = (upper_nibble << 4) | mybyte; Такой алгоритм исспользуется для конвертации в программе функции CHAR2BCD2. Код char CHAR2BCD2(char input) { char high = 0; while (input >= 10) // Подсчитаем десятки { high++; input -= 10; }
return (high << 4) | input; // Добавляем единицы и возвращаем результат } Если входное значение находится в пределах от 0 до 255 то исспользуют следующую функцию Код unsigned int CHAR2BCD3(char input) { int high = 0; while (input >= 100) // Подсчитаем сотни { high++; input -= 100; }
high <<= 4; while (input >= 10) // Подсчитаем десятки { high++; input -= 10; }
return (high << 4) | input; // Добавляем единицы и возвращаем результат } Ещё один маленький пример ковертации байта в эквивалентное значение ASCII с исспользованием BCD. К примеру мы имеем байт Number размерностью от 0 до 99 который нужно сконвертировать BCD в два эквивалентных кодировке ASCII значениям. Код char Tens = 0; // десятки char Ones = 0; // единицы char Number = 93; // значение для конвертации Переведём десятичное значение в BCD исспользуя вышеописсаную функцию: Код Tens = CHAR2BCD2(Number); Теперь переменная Tens в старшем нибле содержит десятки а в младшем - единицы. Дальше всё очень просто, только необходимо помнить что ASCII ‘0’ - это 48, ‘9’ - это 48+9=57,‘3’ - это 48+3=51, и наоборот 57 это десятичное значение ASCII ‘9’,51 это десятичное значение ASCII ‘3’.Таким образом конвертация десятичного значения в его эквивалентное ASCII значение - это простое суммирование десятичного значения и 48. Поскольку функция CHAR2BCD2 загрузила десятки и единицы переменной Number в Tens то мы должны сначала извлечь переменные Tens и Ones и добавляя 48 получить эквивалентные ASCII значения для Number. Код Ones = Tens; Ones = (Ones & 0x0F) + '0'; Десятые мы получаем сдвигом на 4 и добавим 48. Код Tens = (Tens >> 4) + '0'; Теперь можно посимвольно выводить значения на ЖКИ, передавать в компютер и т.п.Пользуйтесь, это удобно. В общем может где-то есть и другая инфа на русском, я её не нашол, разобрался сам и решил другим помочь. Всё вышеперечиссленное тестировалось в компиляторе ИАР вер.5.10А. Если будут найдены ошибки прощу исправить
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
May 26 2008, 17:20
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 26-05-08
Пользователь №: 37 825

|
Добрый день, решил заняться программированием МК, купил программатор ChipProg-40. Программатор полностью устраивает, все прошивает на отлично, но вот контроллер работать отказывается. Работаю с atmega8535. Вопрос - он действительно работает без внешнего кварца, или может как то нужно активировать внутренний? При установке в схему контроллер заметно греется, что наводит меня на мысль о том что проблема вовсе не в программаторе или самом контроллере а в программе, ибо походу контроллер работает а вот программу выполнять отказывается. Программу компилировал в Programmers Notepad 2, в makefile соответственно вписал atmega8535. Если кому не сложно, сделайте элементарный пример для этого контроллера(например что бы на PA0 горел светодиод).
|
|
|
|
|
May 27 2008, 15:51
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 Anub - зря вы потратились. СТК200/300 - вот это вЭщ! По теме - Меги имеют встроенный РЦ-генератор - вроде с заводи идут с тактированием 1МГц(Читайте ДШ раздел ФУЗЫ). Если при установке в схему камень греется - это не програмам а скорей всего(99%) монтажка - проверяйте схему. Пример с миганием: Код int main (void) { DDRA=0x01;// устанавливаем 0-й пин порта А на вывод while (1)//типа бесконечный цикл { PORTA =0x01;//установка "1" на 0-ю лапу //тут надо вставить задержку - юзаю стандартную, там либу подрубать нужно- delay.h вроде - а вы сами определитесь что и где вам нужно _delay_ms(200); PORTA =0x00;// установка "0" на все лапы _delay_ms(200);// аналогично , а то мигать не будет }
return 1;//пусть будет - варнингов меньше.. }
|
|
|
|
|
May 27 2008, 16:30
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Obama @ May 16 2008, 09:38)  Вот красивый проект для начинающих от новичка Пороект вполне банальный,действительно уровень новичка. А с учетом прикладывания к нему рук, и особенно ссылок, воинствующего ламера 123 я бы вообще более, чем скептически рекомендовал ко всему написанному относиться. Moderator: Приложение слегка почистил от наглой саморекламы присоседившегося 123.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 18 2008, 10:33
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-11-05
Пользователь №: 10 436

|
добрый день! подскажите, пожалуйста, как железно(без прошивки) проверить МК AVR на работоспособность? программатор выдает communication error(
|
|
|
|
|
Jun 18 2008, 13:20
|
Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-11-05
Пользователь №: 10 436

|
такой вопрос: если в CVAVR при прошивке стоит галочка Program Fuse Bits, но ниодного фьюза в списке не выбрано, то это он их всех сделал '1'? т.е CKSEL[3..0] = 1111 => работа от внешнего клока?? (mega16) ситуация такая: один раз прошивается норм, потом МК не отвечает программатору... подскажите, куда смотреть пожалуста
Сообщение отредактировал ysb - Jun 18 2008, 13:24
|
|
|
|
|
Jun 20 2008, 04:33
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
Цитата(ysb @ Jun 18 2008, 17:20)  такой вопрос: если в CVAVR при прошивке стоит галочка Program Fuse Bits, но ниодного фьюза в списке не выбрано, то это он их всех сделал '1'? т.е CKSEL[3..0] = 1111 => работа от внешнего клока?? (mega16) ситуация такая: один раз прошивается норм, потом МК не отвечает программатору... подскажите, куда смотреть пожалуста галка означает фьюз, запрограммированный в 0, а её отсутствие - 1. Таким образом, чтобы зашить режим работы от кварца, нужно снять все галки CKSELn.
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
|
Jun 24 2008, 17:51
|

Участник

Группа: Участник
Сообщений: 26
Регистрация: 21-02-08
Пользователь №: 35 272

|
Цитата(nameless @ Apr 6 2005, 16:06)  Не советую AVR для начинающих. Уж куда приятнее PIC. В преподавательской практике использовал оба - PIC схватывают на лету !!! Есть подозрение - что из-за системы команд. Всё гораздо проще. Для PIC есть много литературы на руссоком языке. Для AVR в основном только документация с минимумом примеров.
|
|
|
|
|
Jun 24 2008, 18:16
|
Местный
  
Группа: Свой
Сообщений: 287
Регистрация: 3-12-07
Из: г.Казань
Пользователь №: 32 913

|
Я осваивать начал и,собственно,пока там и остался, с Мультикоров..и вот думаю,что мне просто не повезло...кто сталкивался-поймёт..конечно RISC+DSP сходу - это не совсем верно,но ситуация обязывала. Впринципе, неплохо,но глюки есть и они добивают,в основном, они в среде разработки(ПО слетает и если к этому не привыкнуть,то забросишь сразу же)..возможно предвзятость это,потому как отечественный...полезно знать,что наши пытаются.Если верить анонсам,то на них стоит обратить внимание,в мощности они прибавляют.
--------------------
Сжимаются ужи насмешкой лжи
|
|
|
|
|
Jun 28 2008, 23:09
|
Группа: Новичок
Сообщений: 3
Регистрация: 28-06-08
Пользователь №: 38 616

|
Тут много полезного программы, литература. http://www.forum.ocp.su/
Сообщение отредактировал Hitako - Jun 28 2008, 23:12
|
|
|
|
|
Jun 30 2008, 16:44
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 655

|
Добрый вечер. Подскажите пожалуйста, Как сделать секундомер на ATmega103 длительностью до 5 минут на Code VisionAVR C ?
Заранее большое спасибо!!
|
|
|
|
|
Jul 1 2008, 14:12
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-06-08
Пользователь №: 38 655

|
|
|
|
|
|
Jul 13 2008, 09:21
|
Частый гость
 
Группа: Участник
Сообщений: 82
Регистрация: 10-07-06
Пользователь №: 18 720

|
Такой вопрос. CodeVision, пример из пакета \cvavreval\examples\DS1820 Термометр с использованием Dallas Semiconductor DS1820, кварц 3.6864MHz В программе используются библиотеки для работы с DS1820. Насколько я поинмаю, для обработки получаемых данных от DS1820 нужны определенные интервалы времени. Я сделал проектик на Mega 16. Такого кварца у меня нет. Есть 4МГц, 4,5МГц и выше. Внутренние частоты МК - 1, 2, 4, 8. Попробывал в Протеусе симуляцию на 4 МГц. Работает. Но в реальном устройстве - нет. Попробывал подключить внешнюю RC-цепь (4,2К 22пФ), выставив соответсвующие фюзы. Опять же на индикаторах ерунда. Есть ли выход из данного положения? Можно ли обойтись без кварца на 3.6864MHz?
|
|
|
|
|
Jul 24 2008, 19:08
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 23-07-08
Пользователь №: 39 171

|
простенькй вопросик)
Первая моя прога на АТмелах. Атмега8.
последоательный порт (USART). принцип приема с прерыванием каков?
Система такова: 1. прием определенного байта, который соотв. 1му из 3х определенных последующих действий мк. а) выслать по юарт одни данные б) выслать по юарт другие данные в) приготовится принять данные
с передачей проблемм нет, а как организовать прием? я пока что сделал так: 1. принимается байт - срабатывает прерывание - прерываемся - смотрим, какой байт получили - переходим к нужной проце - и тут же, не выходя из прерывания всю процу и выполняем. с трансмиттом то так и будет, а вот с приемом номально? или все же следует както организовать прерывания таким образом, чтобы выходить из него после каждого принятого байта?
спс за ответ.
|
|
|
|
|
Jul 25 2008, 18:27
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 23-07-08
Пользователь №: 39 171

|
Kuzmi4, спасибо. передачу переделал на пакетную, прием тоже сделал красиво. в симуляторе работает как часики.. надо дописать ПО под виндоз, тогда посмотрим, че там получится)
и, есть ли смысл считать контрольную сумму? или это все зависит от частот и скоростей?
|
|
|
|
|
Aug 15 2008, 21:37
|

Частый гость
 
Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168

|
Цитата(bureau @ Jul 26 2008, 14:00)  2 DeVOuR - вё зависит от зашумлённости среды в которой будет идти провод  Мне так видится, все зависит прежде всего от тяжести последствий приема и обработки искаженного пакета  Потому что вероятность приема искаженных данных существует всегда (и причины могут быть самые разные). Особенно если одной из обменивающихся сторон является ПК с виндой  Фактически, в протоколе обмена типа "пакет запроса - пакет ответа" контрольные суммы нужны всегда. Во избежание пусть очень редко случающихся, но весьма неприятных и непредсказуемых глюков  Даже простая арифметическая сумма или XOR байт пакета куда лучше чем ничего. Ну а по-правильному - CRC8, CRC16 или CRC32 в зависимости от длин пакета и предполагаемой вероятности искажения данных. В качестве прикидки (где-то когда-то что-то такое слышал): CRC16 в типичном канале с BER (Bit Error Rate - вероятностью приема сбойного бита) = 10^-3 (один на тысячу) гарантирует обнаружение ошибки в пакетах с длиной, ограниченной на уровне 256 байт.
Сообщение отредактировал Олег Хохлов - Aug 15 2008, 21:43
|
|
|
|
|
Aug 16 2008, 03:27
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
Для работы от внешнего кварца снял все галки CKSELn. Другие галки не трогал. Поставил внешний кварц. После чего МК перестал отвечать програматору. В чем проблема? может нужно было еще какието фьюзы поменять? Как теперь запустить МК? (мега16) Кажется я понял в чем проблема.... по дефолту CKSELn=0001. А в моей проге для програматора по дефолту стояла только 1 галка в CKSELn, соотвецтвенно в этой проге идет наоборот.... галка - 1, нету галки - 0. Таким образом получилось у мну CKSELn=0000. Как запустить теперь МК и выставить фьюзы как положено?
Сообщение отредактировал Integral - Aug 16 2008, 03:32
|
|
|
|
|
Aug 16 2008, 12:18
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(Integral @ Aug 16 2008, 10:27)  Как запустить теперь МК и выставить фьюзы как положено? Подать на МК внешний клок от любого источника. При использовании адаптеров типа STK200/300 или Altera ByteBlaster клок можно генерить самим адаптером, если, конечно, программа программатора это умеет. Например AvReal умеет.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Aug 17 2008, 21:45
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(Integral @ Aug 16 2008, 20:31)  Будем пробывать... на К155ЛА3 генератор склипаю... Частота порядка 100КГц - 1МГц покатит? Должно при одном условии. Частота тактирования процессора должна быть в несколько раз выше частоты сигнала SCK при программировании. конкретно для Мега16: Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods for the serial clock (SCK) input are defined as follows: Low:> 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck ≥ 12 MHz High:> аналогично. т.е. низкий и высокий уровень на ноге SCK должны удерживаться не менее 2 (или даже 3) периодов тактирования процессора. Быстрее одного раза за микросекунду порт принтера обычно не переключается, так что частоты от 2МГц точно хватит, немного более низкой - скорее всего хватит.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Aug 17 2008, 21:52
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
заработал на частоте 1.6МГц, програмируется у меня через СОМ порт. Удивительно то что при напряжении 12В которое подавалось на питание МК около 30сек. он не накрылся...  (сгорел сволочь стабилизатор 7805)
|
|
|
|
|
Aug 24 2008, 13:19
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243

|
т.е нужно умножить, например на 0,12345? можно сделать так, умножить на 12345, разделить на 100000, при этом тип данных должен быть соответствующий, long например.
|
|
|
|
|
Aug 24 2008, 14:39
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243

|
Код long value;
const long offset=-10; // -10 adc попугаев const long mul= 12345; // 0,12345 const long div=100000;
value=readADC();
value+=offset; value*=mul; value/=div;
showOnLcdLong(value); showOnLcdByte((char)value); вот собственно и полный пример: http://electronix.ru/forum/index.php?act=A...st&id=16863
|
|
|
|
|
Aug 24 2008, 20:47
|
Местный
  
Группа: Свой
Сообщений: 225
Регистрация: 2-04-08
Из: Беларусь
Пользователь №: 36 425

|
Видимо, я сильно начинающий  : понял принцип, а как применить к моему случаю-- понял не совсем. У меня задача следующая: необходимо результат ацп поместить 8-разрядный регистр PR (он задает длительность импульса шим модуля ССР). При этом, 8<PR<48. У пиков ацп 10-разрядное (результат ацп читается из спаренного 16-разрядного регистра- старший байт и младший байт) т.е. результат будет в диапазоне 0...1024. В Вашем примере задается 32-разрядный тип данных, надо ли это в моем случае? Помогите разобраться.
|
|
|
|
|
Aug 24 2008, 22:35
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243

|
ну тогда можно просто делить на 25, без округления 1023/25=40,92 = 40 0/25=0 добавить смещение 8 и готово, в результате 8 ~ 48, тогда хватит и 16 бит, если есть возможность перевести АЦП в 8 бит режим, то наверное можно ещё проще, но это уже сами считайте  з.ы. только что заметил... больше 8, меньше 48... значит смещение 9, коэф соотв тоже надо пересчитать.. но смысл тот же
|
|
|
|
|
Aug 25 2008, 09:13
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243

|
сначала идёт расчёт коэф, потом 3 варианта расчёта, 1й с типом double, 2й через целочисленную арифметику с округлением, 3й - то же что и 2й (только через 1/к) но без округления
|
|
|
|
|
Sep 22 2008, 01:27
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344

|
Спасибо всем кто помог с регистрами USART. Подскажите пожалуйста еще один такой нюансик. Я пытался подключитть клавиатуру к УСАРТУ в синхронном режиме, у него есть стробирующие импульсы - 11 штук, идут они одновременно с данными, следовательно получается нужные 11 бит. (1 стартовый, стоповый, бит четности, и 8 бит данных). Естественно у меня ни чего не получилось. Такой вопрос, УСАРТ принимает очередной бит данных каким образом? По каждому стробу? И следующее, данные, я так понимаю, он считывает по уровню при появлению фронта строба.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|