• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!
Duhas

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

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

1408    0

Немогу понять, чем в m8def.inc ADCSRА отличаетса от ADCSR?

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

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

Я попрробовал прописать так:

OUT ADEN,R16

OUT ADIE,R16

OUT ADSC,R16

и асемблер ето проглотил....

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
rtfcnf    1

Немогу понять, чем в m8def.inc ADCSRА отличаетса от ADCSR?

Да ни чем это два псевдонима одного адреса. Зачем не знаю.

Хотя могу предположить, но Вам не стоит пока этим голову забивать.

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

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

Я попрробовал прописать так:

OUT ADEN,R16

OUT ADIE,R16

OUT ADSC,R16

и асемблер ето проглотил....

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

А вот логику программы извиняйте не может проверить.

А у Вас значение регистра R16 присваивается другим регистрам. Синтаксис правильный, аргументы соответствующие чего бы не откомпилить.

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

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


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

Значит мне нада прикинуть последовательность нулей и единиц, перевести её в десятеричній код, а уж потом заносить ЕТО число в R16?

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


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
Значит мне нада прикинуть последовательность нулей и единиц, перевести её в десятеричній код, а уж потом заносить ЕТО число в R16?

Вот как Вам надо сделать

Ldi r16, то что нужно в ADEN

OUT ADEN,R16

Ldi r16, то что нужно в ADIE

OUT ADIE,R16

Ldi r16, то что нужно в ADSC

OUT ADSC,R16

Переводить ни чего ни куда не нужно.

Компилятор понимает все представление числа

Пример:

Запишем десятичное число 170 в разных представлениях

В десятичной форме

Ldi r16,170

В шенадцатиричной

Ldi r16,0XAA

В двоичной

Ldi r16,0b10101010

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


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

Вопрос НЕ в тему и собласти фантастики: можно ли имея МК, ЖКИ от мобилы, аудио ЦАП и флешку, гдето на 1гб собрать ВИДЕО плеер? ;):rolleyes:

Вопрос по теме:

С етой частью всё ОК:

.include <m8def.inc>

Ldi r16,1

OUT ADEN,r16

Ldi r16,1

OUT ADSC,r16

Ldi r16,0

OUT ADFR,r16

Ldi r16,1

OUT ADIE,r16

А с етой проблема типа Invalid argument of the instruction:

Ldi r16,0

OUT ADSP2,r16

Ldi r16,0

OUT ADSP1,r16

Ldi r16,0

OUT ADSP0,r16

Проверял по примерам, вродибы все правильно, но на практике не работает.....

P.S.

Да, с моими знаниями токо на рынке, рыбой торговать...... <_<

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


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

На вашу строчку OUT ADSP2,r16

Компилятор поругался error: Undefined symbol: ADSP2

Другими словами нет константы с именем ADSP2

Вы словами напишите, какой порт или регистр Вы хотели переслать данные и мы найдем как он называется в файле m8def.inc

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


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

Если ппавельно понял:

Ldi r16,1

OUT SPH,r16

OUT SPL,r16 ?

Если да то иницыализировал......

ADSP2;ADSP1;ADSP0 - ето три бита вибора частотиы управления

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


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

Ldi r16,low(RAMEND)

OUT SPL,r16

Ldi r16,high(RAMEND)

OUT SPH,r16

Вот инициализация стека

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

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


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

Тоисть просто присваиваем разряды (висшый и младшый) куда будут вноситса соответствующие биты адреса.

Я правельно всё понимаю?

А што нащёт ADSP2; ADSP1; ADSP0? В ини файле они так и указываются:

.equ ADPS2 =2

.equ ADPS1 =1

.equ ADPS0 =0 ?!

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


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

low это макрос который возвращает младший байт(младшие восемь бит) из двухбайтного числа

high это макрос который возвращает старший байт

ADSP2; ADSP1; ADSP0 мнемонические имена битов в регистре. Для битовых операций

http://torrents.ru/forum/viewtopic.php?t=1516662

http://torrents.ru/forum/viewtopic.php?t=1102268

http://torrents.ru/forum/viewtopic.php?t=1019971

http://torrents.ru/forum/viewtopic.php?t=421076

Книги по AVR. Только зарегистрируйтесь на торренсе, что бы скачать

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


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

Помогите плиз!

Я изучаю язык Си. Но я застопорился на одном месте, и буксую уже месяц...

Какие команды есть команды для языка Си?

Знаю там delay_ms - задержка...

А какие еще есть?

main void, не понимаю, что это такое...

Вообще какие есть операторы?

заню есть еще такие:

>>, !, #include, но что это такое и как это работает не знаю. Помогите!!!

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


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

void применительно к функции. Функция не возвращает значение

void main() точка входа в Вашу программу

Извеняйте, но отвечаю только на конкретные вопросы. Книжек по основам си в инете полно

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


Ссылка на сообщение
Поделиться на других сайтах
tobias    0
Я изучаю язык Си. Но я застопорился на одном месте, и буксую уже месяц...

Какие команды есть команды для языка Си?

Вот для вас как раз написано - с абсолютного нуля растолклвано с примерами "Язык Си для МК"

Там же книги скачать.

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


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

Наверное вы,rtfcnf, всёже станите учителем. :-))

А по поводу етого:

http://torrents.ru/forum/viewtopic.php?t=1516662

http://torrents.ru/forum/viewtopic.php?t=1102268

http://torrents.ru/forum/viewtopic.php?t=1019971

http://torrents.ru/forum/viewtopic.php?t=421076

Я там был, уже заблокировали........

Ну а если в кратце, что нужно сделать?

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

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


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

Книга Шпака вам поможет.

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


Ссылка на сообщение
Поделиться на других сайтах
tobias    0
Книга Шпака вам поможет.

Она точно есть в библиотеке книг по микроконтроллерам и электронике для скачивания и чтения.

Посмотрите там еще и "Микроконтроллеры AVR для начинающих" и другие книги - более новые.

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


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

Она точно есть в библиотеке книг по микроконтроллерам и электронике для скачивания и чтения.

Посмотрите там еще и "Микроконтроллеры AVR для начинающих" и другие книги - более новые.

У меня куча книг, толку никакого. Нет НИ ОДНОГО НОРМАЛЬНОГО ПОЯСНЕНИЯ !

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


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
Ну а если в кратце, что нужно сделать?

минимальный шаблон для Mega8

.include <m8def.inc>

.def		tmp			= r16;регистр временного хранения


;C нулевого адреса во всей серии Mega размещаеться таблица прерываний
.org 0
		rjmp	INSTAL
		reti		;INT0
		reti		;INT2
		reti		;дальше по мануалу можете заполнить название других прерываний
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
;конец таблицы прерываний (не есть хороший стиль зато понятно)

INSTAL:
		Ldi 	tmp,low(RAMEND)
		OUT 	SPL,tmp
		Ldi 	tmp,high(RAMEND)
		OUT 	SPH,tmp
;далее инициализируем порты и остальную перефирию

MAIN:
;а здесь Ваша нетленка (код программы)

Ваши вопросы

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


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

Большое спасибо и прошу прощения за весь етот бред. Просто у нас в городе люди или тупые по етому поводу или сильно умные чтоб обяснить. Сам, как видите, отношусь к тупым, а розобратса надо, не стоко для дела, стоко для самого себя. Електроника шагает вперёд, а я стою на месте..... :angry::(:unsure::huh:

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


Ссылка на сообщение
Поделиться на других сайтах
rtfcnf    1
Большое спасибо и прошу прощения за весь етот бред. Просто у нас в городе люди или тупые по етому поводу или сильно умные чтоб обяснить. Сам, как видите, отношусь к тупым, а розобратса надо, не стоко для дела, стоко для самого себя. Електроника шагает вперёд, а я стою на месте..... :angry::(:unsure::huh:

Пока, мне не надоело, спрашивайте.

В наше время и асемблер :lol: удивило.

Сам последний раз на асме года три назад писал если не не больше.

Если есть почтовый ящик и готовы принять мегов 100 книги могу выслать. (не очень быстро так как гдето на cd лежат)

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


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

За кусок программы спасибо, а чтомне делать то с моей проблемой:

Ldi r16,0

OUT ADSP2,r16

Ldi r16,0

OUT ADSP1,r16

Ldi r16,0

OUT ADSP0,r16

Invalid argument of the instruction ?

По поводу книг, можно и спасибо.

rgnatenco@mail.ru

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

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


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

Команда OUT первым аргументом принемает АДРЕС РЕГИСТРА, а ADSP0- ADSP2 название битов в регистре.

Посмотрите как я сделал для лучшего понимания и повторите для своего регистра

.include <m8def.inc>

.def		tmp			= r16;регистр временного хранения

;данные для инициализация регистра ADMUX
.equ		ADMUX_INIT1	= 0b00000000;ПОСТАВТЕ ПРАВИЛЬНО БИТЫ мне влом мануал читать
;							  ||||||||____ MUX0 выбор канала
;							  |||||||_____ MUX1 выбор канала
;							  ||||||______ MUX2 выбор канала
;							  |||||_______ MUX4 выбор канала
;							  ||||________ пусто
;							  |||_________ ADLAR выравневание
;							  ||__________ REFS0 источник опорного напряжения
;							  |___________ REFS1 источник опорного напряжения


;C нулевого адреса во всей серии Mega размещаеться таблица прерываний
.org 0
		rjmp	INSTAL
		reti;INT0
		reti;INT2
		reti;дальше по мануалу можете заполнить название других прерываний
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
		reti
;конец таблицы прерываний (не есть хороший стиль зато понятно будет Вам)

INSTAL:
		Ldi 	tmp,low(RAMEND)
		OUT 	SPL,tmp
		Ldi 	tmp,high(RAMEND)
		OUT 	SPH,tmp

;инициализируем регистр ADMUX (канал,выравневание,опорное напряжение)
		ldi		tmp,ADMUX_INIT1
		out		ADMUX,tmp

MAIN:
;а здесь Ваша нетленка (код программы)

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

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


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

Вот моя "набранная" часть :

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

А с остальным я вродебы розобрался.

post-66200-1238044337_thumb.png

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

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


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

Похоже что у вас или странный или не тот инклуд в начале програмы использован... Выпишите содержимое файла m8def.inc если вы его вообще подключаете... И что за компилятор используете???

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


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

Это снова я. Вот скачал книги, которые Вы мне дали. Но там не МК программируются, а просто программирование на языке Си. Я изучаю С++.

Но простое программирование на этом языке мне вобщем то не нужно. Нужно только уметь писать программы для AVR МК. Что мне делать?

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Гость самодельщик
      Автор: Гость самодельщик
      Здравствуйте. Посоветуйте пожалуйста схемы программаторов для AVR и STM- универсальный не надеюсь.
      Имеется в наличии usbasp китайский-работает как гнилой еврей раз в неделю. Сделал PICKIT2 за 4 года ни одного отказа. usbasp может сегодня тупо отказываться работать на 3 компьютерах, на следующий день как часики прошивает 1-2 камня и опять отдыхает. Надоело. 
    • Автор: Serge77
      Обязанности:
      · Разработка радиоэлектронных и GSM-устройств: разработка схем, программирование, разводка печатных плат, разработка документации.
      · Программирование микроконтроллеров STM, AVR, ARM, PIC на языке С/С++
       
      в личку или en@argument74.com
    • Автор: Flash6300
      Приветствую всех. 
      Как на 2313 рассчитать значение для записи в эти регистры, если я хочу получить задержку в 6 секунд?
      OCR1AH
      OCR1AL
      TCCR1B
       
    • Автор: east1095
      Здравствуйте, давно читаю форум, зарегистрировался только сегодня, хочу попросить советов у вас для очередной работы.
       
      1. Мощность 30 кВт, напряжение 2 кВт, 15 А ток.
      2. Планирую полумост;
      вопросы:
      1. Шим контроллер должен поддерживать регулировку к.заполнения, с заданным dU/dT, это планирую делать с МК, потому что в случае пробоя быстроействуюий ключ даст сигнал об остановке преобразователя, потом будет строб, потом пуск источника, при этом он должен выйти на напряжение на котором произошла остановка работы с более коротким (быстрее) dU/dT, это можно реализовать с МК, завести сигнал с датчика КЗ.
      При этом нужна регулировка напряжение и регулировка уставки максимального тока(в приципе в схеме защиты от КЗ она уже реализована)
       
      2. Полумоста хватит на такую мощность?
      3. Можно ли с помощью софта рассчитать трансформатор на такие характеристики? Lite_calcIT не осилил такую задачу.
      4. 1 трансформатор или набор модулей соединенных последовательно для обеспечения нужного напряжения?
      5. Ткните носом в краткую но понятную ветку/статью о резонансных и квазирезонансных и других типах схем, т.к. я недостаточно в этом подкован, немного другие интересы, однако.
       
      Заранее спасибо!
    • Автор: Maoser
      Всем доброго времени суток.
      Помогите пожалуйста начинающему.Нужна программа для Attiny13a на языке С.
      Вот такой алгоритм:
      Нажимают кнопку и начинают мигать светодиоды типа "Бегущие огни", при отпускании остается светится один из четырех, причем в случайном порядке как в рулетке.Нажимают и снова начинают бежать- отпускают остается гореть один.
  • Сообщения

    • спасибо за комент! дошел  до кода  с компарированием   
    • @Dr. West , Если вы знаете более компактный аналог WS2812 - можно рассмотреть.
      Но я к сожалению таких не знаю.
      У меня между стенкой корпуса (на которой будет лого) и платой около 6 мм.
      Размер корпуса WS2812 примерно 5x5x1.6 мм.
      Боком его конечно можно поставить, но с трудом, ибо будет мешать плате сам светодиод и кусок оргстекла в 5 мм толщиной.
      Потому надо либо срезать бока корпуса WS2812 (к чему прибегать вообще не хочу, да и сточить получится без повреждений максимум 1 мм), либо искать более миниатюрный аналог...
    • Тогда очень странно, что вы не понимаете очевидных вещей: 1. Конструкция существующих  пилотов очень проста и потому надёжна (явное некачественное фуфло не рассматриваем). А также дёшева и технологична. Там всё на своём месте - ни убавить, ни прибавить. Модульно - кассетная же конструкция сразу резко увеличит стоимость и, одновременно, снизит надёжность, как механическую, так и электрическую. 2. Большинству потребителей нафиг не надо собирать какой-то там непонятный конструктор, он в этом не разбирается, ему нужен просто удлиннитель с N-ным количеством розеток и, желательно, подешевле. Благо выбор на рынке есть на любой вкус и кошелёк. 3. Универсальный мультитул "на все случаи жизни" всегда менеее удобен и стоит дороже, чем специализированный инструмент для одной операции. Т.е. на вопросы "Чем изобретение лучше существующих аналогов" и "Кому это надо" убедительных ответов нет. Итого - ваша задумка и есть то самое ведро для сортира, да ещё и телескопически раздвигающееся - в зависимости от потребного объема.
    • У дисплеев засветка идёт за счёт рассеивания в толще материала. Т.е. светодиод светит в торец листа пластика. Рассмотрите этот вариант.
    • Желательно чтоб ресурсов МК хватало для редкой смены цвета одного светодиода WS2812...
    • @Dr. West , на расстоянии не получится, в корпусе места едва ли на светодиод хватит...
      Ну и потом, в дисплеях типа 1602 светодиод с рассеивателем одно целое, никаких расстояний нет, и засветка довольно равномерная. Сам пользовался таким дисплеем, и знаю что говорю )
      Да и по фото во вложении места раз в 5 меньше в том месте, а ведь работает тоже без расстояний ) Пластик от подсветки мониторов вроде как оргстекло, есть у меня кусочек, но он по толщине не равномерен (), и раза в два-три толще чем удастся уместить...