Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Так все таки... За какую версию то??? .я уже скачал на всякий случай 4.19. Надо 6.2 качать нет?
Станислав
Реклама
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

СКАЗОЧНИК писал(а):Так все таки... За какую версию то??? .я уже скачал на всякий случай 4.19. Надо 6.2 качать нет?
Если у Вас нет чипов, которые не поддерживаются студией 4.19 (то есть сильно новых), то 4.19 - самое то! Если же Вы соберетесь работать с этими суперновыми МК, которые студия 4.19 не поддерживает, тогда придется качать и ставить 6.х
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Реклама
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Опять хренота какая-то... Добился, чтобы работала программа. Решил еще один файлик вложить, в котором прописать макросы. Так вот, цепляю его на самом верху программного кода, где все библиотеки (инклуды), а потом в программе пишу макрос. сволочь жалуется, что для него это неизвестная команда...
Станислав
Друг Кота
Аватара пользователя
Сообщения: 20132
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Может, ошибка синтаксическая в названии команды? :)))
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

С инклудами бывает такой косяк когда что-то в нем поправил (добавил функцию), а в другом файле делаешь например ее вызов и при компиляции вылезает такая ошибка. Дело в том, что исправленный файл почему-то студией не сохранился на диск (приходится перед компиляцией сохранять все вручную). Почему такое иногда выскакивает пока не просек :dont_know:
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Реклама
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Engineer_Keen писал(а):ошибка синтаксическая
Уже мильон раз проверил... :)))
Engineer_Keen писал(а):файл почему-то студией не сохранился на диск
Как это так? Я же в папке его смотрел. Он там есть. Я просто создал новый файл, в нем сделал макрос. Дал файлу название в "Сохранить как...", потом подключил его в главной программе. И в главной же программе делаю вызов макроса, а он мне хрен.. :kill:

Ептить!!! :kill: :evil: :facepalm: Пару раз презагрузил студию, пару раз сохранил. Теперь все работает... :kill:

Короче. Совет. В любой непонятной ситуации, ПЕРЕЗАГРУЖАЙ СТУДИЮ!! :))) :))) :)))
Станислав
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

СКАЗОЧНИК писал(а):Дал файлу название в "Сохранить как..."
Бывает что файл сохранил, потом что-то в нем подредактировал, а изменения перед компиляцией автоматически не сохранились, как результат вылезает ошибка при попытке задействовать измененную часть программы, вот я о чем. Но у вас скорее всего проблема не в этом.
Глюкавая студия у вас какая-то, то код жрет, то с сохранением проблемы :dont_know:
Последний раз редактировалось Engineer_Keen Пт янв 16, 2015 12:44:23, всего редактировалось 1 раз.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Все. все. Разобрался. СПасибо за поддержку. :beer:
Станислав
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 39
Зарегистрирован: Пн дек 31, 2012 13:16:59

Сообщение *скрыто* »

Вот тут недавно у человека Flash.#13 была проблема с ацп. Так вот у меня тоже такая проблема появилась.
При быстром переключении каналов adc0 и adc1, с интервалом 80 мкс считывалось что то среднее между напряжениями на 1и0 входе, а так же оба входных напряжения влияли не на своих измерениях . Кварц 16м, тактирование ацп fclk/2.
Вот такая дурацкая конструкция решила проблему.

Код: Выделить всё

		sbi adcsra,6				;
			sbic adcsra,6				; 
			rjmp pc-1					; 
			sbi adcsra,6				; 
			sbic adcsra,6
			rjmp pc-1
			sbi adcsra,6				;
			sbic adcsra,6
			rjmp pc-1                                  ; (все заняло 6мкс)
При убирании псоледних 3 строчек влияние каналов друг на друга остается, но становится чуть слабее.
В даташите сказано что после инструкци sbi adcsra,6 мультиплексор переключается и происходит измерение. Не успевает заряжаться емкость? у меня низкоомные цепи, с выхода операционников прям на вход контроллера через 680 ом.
Ладно в первый раз не дозарядилась, но на втором измерении почему опять пролезает помеха с соседнего канала. Что то скорее всего с мультиплексором.

adc_inp_sh.jpg
(9.62 КБ) 385 скачиваний
как то заработало и ладно. Но неприятно тратить время на такую ерунду.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18798
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

то есть вы запустили АЦП на частоте 8 МГц и удивляетесь, что получили не очень хороший результат?! это в то время, как даташит рекомендует не более 200 кГц для качества, ну и в крайнем случае до 1 МГц можно дотянуть...

говорите, жалко время тратить? не потратили его на чтение даташита - потратили на борьбу с тенью...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Коты! :) Небольшой вопрос по использованию директив условной компиляции...

Код: Выделить всё

.if R_Wport == 0

			rcall	DELAY_102

.endif
Вот, если такая конструкция, где условия не выполняется (R_Wport == 1), значит он не будет мне при компиляции вставлять вызов задержки?
Станислав
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18798
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

А если у меня

.equ R_Wport = PORTD
Разобрался... ТАк не работает. :)))
Станислав
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 39
Зарегистрирован: Пн дек 31, 2012 13:16:59

Сообщение *скрыто* »

Попробую на 1 мгц. Мне нужно разрешение 8 бит и невысокая точность будет достаточна. Главное чтобы быстро,и с других каналов не было влияния.
afz
Опытный кот
Аватара пользователя
Сообщения: 744
Зарегистрирован: Сб дек 22, 2012 08:17:42
Откуда: Караганда, Казахстан

Сообщение afz »

Кстати, несколько раз скачивал из Сети разнообразные асмовые проекты и обратил внимание. Очень часто в асмовом тексте встречается строчка, допустим, для Меги-8:

.include "m8h.inc"

и в архивчике с проектом - сам файлик m8h.inc

А я, когда еще только осваивал АВР Студию и асм, в первой же програмке, не задумываясь, "пошел на поводу" у своего Сишного "автопилота" и написал .include <m8h.inc> и ни разу не удивился, когда Студия сама без вопросов нашла этот файлик в своиих библиотеках .inc- и .h-файлов. То есть, Студия работает с асмовскими .include точно так же, как и с Сишными #include - если аргумент в кавычках, файл ищется в папке проекта, если в угловых скобках - в библиотеках Студии.

Кто не знал - рекомендую, а такие, судя по скачанным проектам, встречаются...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 39
Зарегистрирован: Пн дек 31, 2012 13:16:59

Сообщение *скрыто* »

сделал тактирование 1 мгц, выкинул дурацкую конструкцию с 3 стартами ацп, все работает но теперь ждать около 13-15 мкс завершния. Похоже ограничения в мультиплексоре, и быстрее 6 мкс не переключается .
Держит паяльник хвостом
Аватара пользователя
Сообщения: 965
Зарегистрирован: Сб апр 12, 2014 23:46:03
Откуда: Киев

Сообщение Flash.#13 »

*скрыто* писал(а):сделал тактирование 1 мгц, выкинул дурацкую конструкцию с 3 стартами ацп, все работает но теперь ждать около 13-15 мкс завершния. Похоже ограничения в мультиплексоре, и быстрее 6 мкс не переключается .
У меня была аналогичная проблема, и две страницы назад она описана)) Правда в моем случае минимальное время переключения составило около 160мкс. И задержка вводилась между вторым замером и реальным. Но товарищи говорили что может быть и конструкцией реальной партии камней завода изготовителя. Главное чтобы работало))
____________________

Ребята, теперь новая проблема, на сей раз с ШИМ. А точнее с "ОС2" на timer2. Полез в мануалы, написал вот так:

Устанавливаем PortB-3 на выход, ножка ШИМ

Код: Выделить всё

ldi R16, 0b00001000
out ddrB, R16
Включаем второй таймер, и биты работы "прямого" ШИМ'а, с COM21=1, COM20=0, WGM21 и WGM20 "0"

Код: Выделить всё

...
ldi R16, 0b00100011	;задержка 32,для 40кГц,+вкл прямой ШИМ
out TCCR2, R16 		;пуск таймера "ШИМ"
Затем задаю значение в регистр ШИМ'а OCR2:

Код: Выделить всё

...
ldi R16, 0x80	;128h половина скважности
out OCR2, R16 	;запись в регистр ШИМ
Вроде все готово, но при этом ШИМ не генерирует колебания на ножке "17" PB3(OC2) с амплитудой 5в...(( Ребята, чего не так?
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Тоже вопрос...
А на АТМЕГА16 и выше работает команда rcall и rjmp?
Станислав
Опытный кот
Аватара пользователя
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США

Сообщение Pink-Pank »

работают. только помимо них есть еще альтернативные команды с большим диапазоном охватываемых адресов.
Fucking static initialization order fiasco
Контактная информация:
Идёт направо - песнь заводит, Налево - сказку говорит.
Аватара пользователя
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Сообщение СКАЗОЧНИК »

Pink-Pank писал(а):команды с большим диапазоном охватываемых адресов.
Да, про них знаю, которые не относительные, а просто call и jmp. Просто хотелось быть уверенным, что эти тоже будут работать (для будущего переноса и универсальности кода).
Да ! Спасибо за консультацию.
Станислав
Ответить

Вернуться в «AVR»