Перейти к содержанию
    

Господа, помогите советом по следующим вопросам, пожалуйста! Хочу начать изучение микроконтроллеров AVR, в связи с этим:

 

1. На каком языке програмирования лучше сосредоточить внимание, Асемблер или С++? Асемблер быстрей, но сложней, С- нагляднее и вроде бы перспективнее, что посоветуете?

2. Изучение МК я хочу начать только с использованием симуляторов ( без работы с "железом" на начальном этапе), это правильный подход для более быстрого обучения?

3. Какие существуют ПО симулирующие работу МК, позволяющие написать программу, отладить ее, симулировать загрузку (компиляцию) в виртуальный МК и далее симулировать рабту МК с этой загруженой программой. Какое ПО можно посоветовать?

4. Существуют ли другие устройства для передачи данных из АЦП в компьютер (частота дискретезации АЦП 1.5кГц, разрядность 8) кроме микроконтроллера? Тоесть может ли АЦП напрямую(либо через какое-либо устройство) работать с каким -либо портом компьютера или обязательно для этого нужен МК?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, помогите советом по следующим вопросам, пожалуйста! Хочу начать изучение микроконтроллеров AVR, в связи с этим:

 

1. На каком языке програмирования лучше сосредоточить внимание, Асемблер или С++? Асемблер быстрей, но сложней, С- нагляднее и вроде бы перспективнее, что посоветуете?

 

Начинайте с С но в свободное время почитывайте ассемблер (чтобы понимать во что компилятор превращает ваш Сишный код).

 

2. Изучение МК я хочу начать только с использованием симуляторов ( без работы с "железом" на начальном этапе), это правильный подход для более быстрого обучения?

 

Правильный подход купить mega8535/mega8515/mega8 в dip-корпусе напаять на монтажной плате и собрать простейший программатор STK200.

Вдохновение прийдёт когда увидите как МК заставляе мигать светодиод с помощью написанной вами программы.

 

3. Какие существуют ПО симулирующие работу МК, позволяющие написать программу, отладить ее, симулировать загрузку (компиляцию) в виртуальный МК и далее симулировать рабту МК с этой загруженой программой. Какое ПО можно посоветовать?

 

AVRStudio (на ассемблере), IAR. В IAR удобно отлаживать подпрограммы не связанные с работой перефирии. Симулировать переферию удобней в AVRStudio.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никаких CodeVisionov!!!

Даташит, Си, живой контроллер ATMEGA48, программатор на проводочках. И пара кнопок и пара светодиодов и один динамик.

IAR - как среда существования.

Ассемблер - знаю несколько систем команд для разных процессоров. Но так получилось, что для AVR руки не дошли глянуть даже на нее. Чисто так получилось. Даже точно не скажу сколько у него регистров (примерно только скажу).

Т.е. - обойтись вполне можно. Си стал круче бублика в этом плане.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. На каком языке програмирования лучше сосредоточить внимание, Асемблер или С++? Асемблер быстрей, но сложней, С- нагляднее и вроде бы перспективнее, что посоветуете?

Если это Ваш первый МК, то начните с ассемблера. Изучите архитектуру микроконтроллера. Программирование на ассемблере поможет в этом.

Если Вы уже знаете какой-либо МК, можно и с Си стартовать. Хотя я бы посоветовал даже Си++.

2. Изучение МК я хочу начать только с использованием симуляторов ( без работы с "железом" на начальном этапе), это правильный подход для более быстрого обучения?

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

3. Какие существуют ПО симулирующие работу МК, позволяющие написать программу, отладить ее, симулировать загрузку (компиляцию) в виртуальный МК и далее симулировать рабту МК с этой загруженой программой. Какое ПО можно посоветовать?

Для AVR берите бесплатную AVR Studio с www.atmel.com

4. Существуют ли другие устройства для передачи данных из АЦП в компьютер (частота дискретезации АЦП 1.5кГц, разрядность 8) кроме микроконтроллера? Тоесть может ли АЦП напрямую(либо через какое-либо устройство) работать с каким -либо портом компьютера или обязательно для этого нужен МК?

Может. Например с LPT.

 

А Вы чего хотите получить в результате?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо за ответы, не ожидал такого хорошего отношения.

А Вы чего хотите получить в результате?

Хочу получить оцифрованый сигнал в виде удобном для его дальнейшей обработки с помощью LabView- т.е. в в память компьютера. Просто на выходе АЦП, как я понял, сигнал не похож ни на RS 232 ни на 485. Т.е. в моем случае МК работает преобразователем интерфейса между АЦП и портом компьютера. Вообще МК, как я понимаю, целесообразно использовать не для этих целей, а тогда, когда есть управление какой-либо перефирией. Мало того, я буду ограничен в скорости преобразований АЦП еще и быстродействием самого МК. Т.е. АЦП, как я понимаю, может работать на частоте превышающей частоту МК. И в этом случае МК исзодя из своей рабочей частоты будет запускать и останавливать АЦП. Т.е. МК будет звеном задающим скорость преобразований, а не АЦП. Исходя из всего этого, возможно, мне не нужен МК для этой цели, а нужно другое устройство, о котором я не знаю.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

"Практическое программирование AVR на ASM" - есть такая

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, помогите советом по следующим вопросам, пожалуйста!

1. Лучше сосредоточить внимание на С (но - не на С++ - ИМХО, для микроконтроллеров С++ - это, зачастую, слишком высокий уровень языка). Параллельно - ассемблер (не обязательно чтобы на нём писать программы, даже, скорее, чтобы НЕписать на нём прогараммы - но(!), чтобы понимать возможности AVR).

2. Симуляторы - это дешёвый подход к изучению МК, но лучше, всё-таки, - "в железе" (т.е. собрать макетку и JTAG+AVRStudio).

3. Для симуляции МК AVR - однозначно: AVRStudio.

4. Наверное, и сами сможите ответить на этот вопрос (достаточно посмотреть на внешние разъёмы компьютера и положить перед собой документацию на выбранные Вами АЦП).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никаких CodeVisionov!!!

 

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

Ставьте CodeVision , получайте первые положительные эмоции от живого общения с МК . А потом можно и внутрь нырять , с головой.

 

CodeVision + Proteus - для начала хватит , но конечно всё равно обязательно нужно купить или собрать живую плату , симуляторы могут и глючить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ставьте CodeVision , получайте первые положительные эмоции от живого общения с МК . А потом можно и внутрь нырять , с головой.

 

CodeVision + Proteus - для начала хватит , но конечно всё равно обязательно нужно купить или собрать живую плату , симуляторы могут и глючить.

Не проецируйте свой уровень интелекта на другого человека.

 

Осмыслить любой узел грамотного даташита на МК - 15-20 минут. Зато сразу очевидны все возможности данного узла. Это понадобится не только и не столько для данного проекта, сколько вообще. Это гарантия, что следующее изделие будет спроектировано сразу с пониманием самого МК. Только один таймер можно инициализировать десятками способов. Сколько мы видем постов, что люди не имеют ни малейшего понимания его работы? "Как запрограммировать таймер, чтобы измерить частоту?" - такие вопросы просто поражают. 15 минут чтения - и вы будете сами давать советы! А если пользоваться визардом, то будете постоянным участником раздела "начинающие".

 

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

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Никаких CodeVisionov!!!

..не слушайте их ... Ставьте CodeVision ...

Присоединюсь к противникам CodeVision.

К сожалению, стандарт языка С не учитывает особенностей МК, поэтому в разных трансляторах реализованы расширения языка С. Зачастую программы написанные для одного транслятора не понимаются другим транслятором. Среди трансляторов - лидер IAR (его, наверное, и следует пробовать, хотя для новичка - несколько тяжеловат). Если Ваше изучение AVR не предпологает поверхностное его изучение (т.е. для профессионального использования, или для любительского, но с профессиональным качеством), то CodeVision с его визардом - огромный вред! Кроме того, через некоторое врямя (как накопится некоторое количество проектов) перейти на другой транслятор становится большой проблемой (это - уже по собственному опыту...).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не проецируйте свой уровень интелекта на другого человека.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Но CV-это не то на чём стоит начинать изучать Си.

Да. Для того чтобы посмотреть "C чего начинается Родина" это сойдёт, но не более.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лично для меня изучение контроллеров начиналось с "ОЧЕНЬ ВЫСОКОГО" языка програмирования, такого как С++ для ARDUINO. :)

Постпенно при работе с этим языком начинаешь понимать всю ограниченность своих знаний, в процессе усложнения Ваших запросов к конкретному микроконтроллеру. И тут наступает такой момент, когда выше бежать уже некуда, а поставленная задача требует решения. Что тут тогда остаётся делать???

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

В этом вам поможет ни всякие конструкторы вроде VB и т.п. а наш старый добрый "голый ASM".

Вооружившсь парой-тройкой рускоязычных книжек по програмированию AVR на ASM, AVRstudio, терпением, усидчивостью и большим количеством времени я не сомневаюсь Вы достигните успеха! ИМХО! :)

Изменено пользователем 0b11011110

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...