Duhas

Примеры Кода Для Avr

598 сообщений в этой теме

=mc=    0
С кокого микроконтроллера лучше начать? (желательно с перезаписью)

Какой программатор лучше собрать?

Я сам начинающий... Начал с Atmega32.

Программатор собрал по этой схеме, в связке с PonyProg2000 работает отлично...

Программирую на С, использую CodeVisionAVR в связке с AVR-Studio.

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


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

Нензаю туда куда нужно пишу , или нет , но я тут случайно наткнулся на етот сайт может комуто будет полезно .

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

http://avr123_nm_ru/

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

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


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

подскаите пожалуйста как правильно прицепить цепь первоначального сброса (к ножке ресет эстественно)? я чет никак не могу найти ни одного примера.

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


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

Через резистор примерно 5-10 кОм подключаешь к напряжению питания, а через конденсатор 0,1 мкФ к корпусу.

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


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

Спасибо. :)

я гдето читал, что этот конденсатор нужно отключать при програмировании. Это так?

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


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

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

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


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

Подскажите пожалуйста, какой программатор использовать для прошивки AVR ATtiny13 в среде IAR Embedded Workbench?

Остался программатор от Algorithm Buildera ("5 проводков"), он подойдет?

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


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

Товарищи! РЕшил изучить поверхносто МК...

имею атмегу8 и программатор вот этот:

http://ic-prog.com/funcard.jpg  (stk200)

какая гарантированно программа может его прошить?

хочу удостовериться для начала что всё правильно спаял.

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


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

Для программирования AT90S8535 не пойдет- лапы расположены по другому.

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


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

Так я ведь просто к контактам подпаяль и всё.

ну т.е к соотв. выводам подпаял.

говорят понипрог очень хорошая,но что то у меня какието ошибки выдавала она

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


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

Доброго времени суток. Скажу сразу и чесно, в програмировании я ЧАЙНИК. Надумал сам собрать осцылограф на мега8 но не хватает знаний.

Для роботы выбрал AVR Simulator IDE, уже накачал кучу литературы и почти безтолку.

Вопрос, будет ли работать такая последовательность:

1.Блок иницыализацыи "железа", общий зброс.

2.Блок опроса клавиатуры.

3.Блок вычислений частоты, амплитуды, скважности.

4.Блок вывода на ЖКИ.

5.Блок временного сохранения измерений.

Если ето будет работать, то первый вопрос: Как записать (текст команды) иницыализацию и установить еденицы в нужные разряды АЦП и прочих модулей?

Люди помогите, очень нужно!!!!! :o:huh::mellow::blink::(

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


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

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

1408 не обижайтесь я это к тому, что начинать надо от простого к сложному. Разберитесь сначала с простым. Как сделать опрос клавиатуры, как выводить на индикатор, как работает АЦП итд. А затем уже можете попробовать сделать, что то более сложное. А указанная Вами последовательность в принципе работать будет. Как написать инициализацию АЦП написано в даташите очень подробно и цитировать его не имеет смысла. Попробуйте сами, если возникнут конкретные вопросы, выкладывайте код, Вам помогут.

А то, как то на курсовик смахивает или еще не сезон? :lol:

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


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

Спасибо за ответ.

Уменя есть даташети и литература с подробными описаниями архитектуры и регистров, но там НЕТУ ТОЛКОВЫХ ПРИМЕРОВ

Я уточню свой вопрос: Для начала меня интересует синтаксис иницыализацыи отдельных битов, таких как ADEN, ADSC, ADFR, ADPS2;ADPS0

Тоже самое по портам ввода/вивода, таймерам и SPI

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


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

Спасибо за ссылку.

Неспорю, проект интересен, но суть радиолюбителя-коструктора в том, чтоб самому чтото придумать и довести до стадии готового прибора

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


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
Спасибо за ссылку.

Неспорю, проект интересен, но суть радиолюбителя-коструктора в том, чтоб самому чтото придумать и довести до стадии готового прибора

Читаем тут http://easyelectronics.ru/avr-uchebnyj-kur...ovanie-acp.html что не понятно спрашиваем.

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


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

Читаем тут http://easyelectronics.ru/avr-uchebnyj-kur...ovanie-acp.html что не понятно спрашиваем.

Прочитал, понял впринцыпе все. вопрос вот вчом: post-66200-1237737108_thumb.jpg

ЧТО Я ДЕЛАЮ НЕТАК ?

С вторым примером аналогично.

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


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

Я с AVR Simulator IDE не работал, но сразу возникает вопрос, а откуда компилятор знает, что такое «ADCSRA»

Можно предположить, что он где-то должен, определен быть. :lol:

В AVR Studio для каждого контролера есть файлы определения мнемонических имен и их реальных адресов. Если хотите использовать мнемонические имена регистров и портов его нужно подключить в проект

Например для mega8 это будет выглядеть так .include <m8def.inc>

Еще раз, все справедливо для студии. У вас синтаксис может отличаться.

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


Ссылка на сообщение
Поделиться на других сайтах
tobias    0
ЧТО Я ДЕЛАЮ НЕТАК ?

Я думаю вам нужно посмотреть примеры к среде в которой пишите - и все прояснится.

Кроме того советую АСМ примеры посмотреть в архиве

Архив примеров программ на ассемблере ASM для AVR из AVRstudio и VMLAB

Очень хорошо написаны !

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


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

Доброго времени суток. Уважаемые знатоки, у меня возник очередной вопрос (точнее несколько):

1. Что нужно ещё иницыализировать кроме АЦП и портов?

2. Какой нужен интерфейс для внутрисхемного програмирования, и как его "запустить"?

3. Какие необходимо выполнить прерывания, тоесть что мне нужно выбрать из таблицы?

4. И вообще, я попробовал писать, вот что получаетса:

.include <m8def.inc> ;модуль конфигурацыи

.equ $07=0b01000101

.equ $026=0b0101010001010101

.equ $038=0b0101010101010101 ;порти B,C,D

.equ $037=0b0101010101010101

.equ $036=0b0101010101010101

.equ $035=0b0001010101010101

.equ $034=0b0001010101010101

.equ $033=0b0001010101010101

.equ $032=0b0101010101010101

.equ $031=0b0101010101010101

.equ $030=0b0101010101010101

.equ $03E=r1 ;-стек

ЕТО впринцыпе правельно или нет?

5.Правельно ли я указал стек?

А ещё вопрос по поводу области BOOT, что ето, зачем и как ним пользоваться?

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

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


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

1.Что нужно ещё иницыализировать кроме АЦП и портов?

Давайте оставим пока этот вопрос.

2. Какой нужен интерфейс для внутрисхемного програмирования, и как его "запустить"?

Извеняйте, но с Вашими знаниями лучше пока оставить и этот вопрос

3. Какие необходимо выполнить прерывания, тоесть что мне нужно выбрать из таблицы?

И здесь обождите

4. И вообще, я попробовал писать, вот что получаетса:

.include <m8def.inc> ;модуль конфигурацыи

m8def.inc не модуль конфигурации если Ваш компилятор его без ошибок проглотил, это уже хорошо.

Теперь внимание объясняю еще раз:

Разберем две Ваших любимых команды из Вашего любимого макроса

Первая

LDI R16,@1

Загрузка константы в РОН

Здесь всё просто

Первый операнд

R16 – мнемоника регистра используемая компилятором

Второй операнд

Число от 0 до 255

При выполнении число записывается в регистр R16

Теперь рассмотрим вторую команду

OUT

Первым операндом в нем указывается адрес регистра, куда будем пересылать данные (тоесть приемник)

Вторым операндом мы указываем источник откуда мы пересылаем данные, причем источником может быть, только РОВ(ну вы это знаете)

Теперь ВНИМАНИЕ:

Ваша команда должна выглядеть вот так:

OUT $06,R16

Но запоминать адреса тяжело, поэтому в компиляторах была придумана директива .equ

Что она делает: она определенной константе (числовому значению) присваивает имя (синоним, мнемонику)

Смотрим файл m8def.inc (txt он по сути) и мы видим строку

.equ ADCSRA =$06

Тоесть когда мы напишем

OUT ADCSRA,R16

компилятор найдет что такое ADCSRA и будет её транслировать как

OUT $06,R16

Теперь Вы поняли что Вы написали ниже полную …

.equ $07=0b01000101

.equ $026=0b0101010001010101

.equ $038=0b0101010101010101 ;порти B,C,D

.equ $037=0b0101010101010101

.equ $036=0b0101010101010101

.equ $035=0b0001010101010101

.equ $034=0b0001010101010101

.equ $033=0b0001010101010101

.equ $032=0b0101010101010101

.equ $031=0b0101010101010101

.equ $030=0b0101010101010101

.equ $03E=r1 ;-стек

ЕТО впринцыпе правельно или нет?

Ответил

5.Правельно ли я указал стек?

Нет

В файле m8def.inc стек определен вот так

.equ SPH =$3e

.equ SPL =$3d

Попробуйте теперь сами эго инициализировать

А ещё вопрос по поводу области BOOT, что ето, зачем и как ним пользоваться?

Пока даже не думайте про это

P.S. Знающий народ! Ну что получиться из меня препод?

P.P.S. Да сам знаю что НЭТ

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

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


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

Да, с моими знаниями, я пойду далеко.

Во всяком случае асемблер на весь мой бред не ругается (пока)

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


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
Да, с моими знаниями, я пойду далеко.

Во всяком случае асемблер на весь мой бред не ругается (пока)

Вам удалось инициализировать стек и АЦП? Поняли Вы что я написал? Если да попробуем дальше если нет могу попробывать повторить. Или на этом закончим?

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


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

Тоесть если я пишу OUT ADCSR,R16, единица заганяетса полностю для всех битов (имею ввиду ADEN, ADIE, и т.д. ) ?

Я правильно понял?

И ещё асемблер ругаетса на выражение: LDI R16, @1 ,типа Invalid argument of the instruction.

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


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
Тоесть если я пишу OUT ADCSR,R16, единица заганяетса полностю для всех битов (имею ввиду ADEN, ADIE, и т.д. ) ?

Я правильно понял?

И ещё асемблер ругаетса на выражение: LDI R16, @1 ,типа Invalid argument of the instruction.

OUT ADCSR,R16 - значение регистра r16 копируется в регистр ADCSR

а единицы или нули это как Вы в R16 записали.

Всё это из-за архитектурных ограничений ядра, ну нельзя константу писать в часть регистров

LDI R16, @1 смотрите синтаксис написание макросов. Я по памяти не помню

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Alexey104
      Всем привет!
      Возникла следующая проблема:
       
      Есть две ардуины 'Mega2560'. По несчастливому стечению обстоятельств данные платы попали в руки одному чуваку, который, вернув их, заявил, что они перестали работать после того, как он "чисто ради интереса" поковырял на обеих некоторые фьюзы. Есть у меня такой китайский usbasp v2 программатор:
      Подключив данный девайс к ICSP-пинам первой платы, удалось без проблем восстановить на ней загрузчик через стандартную Arduino-IDE, после чего работоспособность платы полностью восстановилась. Но вот при попытке сделать то же самое со второй платой, получаю это:
      Такое же сообщение получаю при попытке зашить загрузчик в неподключенную к программатору ардуину, то есть программатор вообще не видит МК. Плата прекрасно работала до того, как вышеупомянутый товарищ покрутил настройки фьюзов.
       
      Что я пытался предпринять:
      Замыкал пины JP3 программатора, отвечающие за понижение скорости, подключал к ардуине 5V от внешнего источника при прошивке загрузчика, - не помогло.
       
      Поиском пользоваться умею, аналогичную тему тут находил, но там проблема была в том, что парень неверно подключал программатор к контроллеру. В моём же случае всё подключено верно, повторюсь, что загрузчик первой платы этим же программатором был восстановлен успешно.
      Буду рад любым советам касательно того, как восстановить работоспособность платы.
       
       
       
    • Автор: Сергей Скопинцев
      Нужно разработать циклическую программу сбора информации от 10 измерительных источников. Период повторения цикла - одна секунда
      Источники:
       М - тензопреобразователь давления. Мостовая схема питается постоянным напряжением, выходной сигнал от 0 до 100 милливольт
       Т, ТМ, ТА- три канала измерения изменения напряжения в диапазоне от 400 до 600 милливольт (тоже нужен мост?)
       ЛМ - анализатор максимума напряжения (от 0 до 5 Вольт) по 10 точкам более-менее распределённых в измерительном цикле. Найденный максимум потом должен участвовать в анализе, постепенно уменьшаясь на 20% каждый цикл
       ВЛ - измерить напряжение на Малой емкости (50 пФ) с помощью емкостного делителя по алгоритму:
                         Снять Землю со средней точки емкостного делителя, подать на емкостной делитель положительный Импульс
                         Замерить нужное нам напряжение в средней точке делителя
                         Снять положительный Импульс с делителя, посадить на землю среднюю точку делителя
      - остальные каналы К7...К10  служебные
      Разрядность данных - 16 двоичных.

      Результаты писать на MicroSD текстовым файлом, на первом месте в строке текущее время в секундах, остальные каналы разделены пробелами
      Порядок каналов:
      Т - М -ТМ - Вл - ЛМ -...
      Коэффициенты усиления по каждому информационному каналу должен иметь возможность изменить оператор по формуле y = Ax + B
      Прибор автономный, питается от + 5 Вольт.
       
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
    • Автор: Kiraspbkiev Kira
      День Добрый. Есть два вопроса от новичка: 1) Правильная ли схема сделанная мною? 2) если схема верна то как правильно подключить к atmega328p-mu usb на чипе cp2102-grm?
      На схеме колодка JP1 это AVR ISP а JP2 это UART
      С проектированием столкнулся в первый раз, цель узнать что то новое и сделать своими руками:)