Ассемблер (ASM) для AVR в вопросах и ответах
Так все таки... За какую версию то??? .я уже скачал на всякий случай 4.19. Надо 6.2 качать нет?
Станислав
- Реклама
Если у Вас нет чипов, которые не поддерживаются студией 4.19 (то есть сильно новых), то 4.19 - самое то! Если же Вы соберетесь работать с этими суперновыми МК, которые студия 4.19 не поддерживает, тогда придется качать и ставить 6.хСКАЗОЧНИК писал(а):Так все таки... За какую версию то??? .я уже скачал на всякий случай 4.19. Надо 6.2 качать нет?
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Опять хренота какая-то... Добился, чтобы работала программа. Решил еще один файлик вложить, в котором прописать макросы. Так вот, цепляю его на самом верху программного кода, где все библиотеки (инклуды), а потом в программе пишу макрос. сволочь жалуется, что для него это неизвестная команда...
Станислав
Может, ошибка синтаксическая в названии команды? 
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
С инклудами бывает такой косяк когда что-то в нем поправил (добавил функцию), а в другом файле делаешь например ее вызов и при компиляции вылезает такая ошибка. Дело в том, что исправленный файл почему-то студией не сохранился на диск (приходится перед компиляцией сохранять все вручную). Почему такое иногда выскакивает пока не просек 
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
- Реклама
Уже мильон раз проверил...Engineer_Keen писал(а):ошибка синтаксическая
Как это так? Я же в папке его смотрел. Он там есть. Я просто создал новый файл, в нем сделал макрос. Дал файлу название в "Сохранить как...", потом подключил его в главной программе. И в главной же программе делаю вызов макроса, а он мне хрен..Engineer_Keen писал(а):файл почему-то студией не сохранился на диск
Ептить!!!
Короче. Совет. В любой непонятной ситуации, ПЕРЕЗАГРУЖАЙ СТУДИЮ!!
Станислав
Бывает что файл сохранил, потом что-то в нем подредактировал, а изменения перед компиляцией автоматически не сохранились, как результат вылезает ошибка при попытке задействовать измененную часть программы, вот я о чем. Но у вас скорее всего проблема не в этом.СКАЗОЧНИК писал(а):Дал файлу название в "Сохранить как..."
Глюкавая студия у вас какая-то, то код жрет, то с сохранением проблемы
Последний раз редактировалось Engineer_Keen Пт янв 16, 2015 12:44:23, всего редактировалось 1 раз.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Все. все. Разобрался. СПасибо за поддержку. 
Станислав
- Сообщения: 39
- Зарегистрирован: Пн дек 31, 2012 13:16:59
Вот тут недавно у человека Flash.#13 была проблема с ацп. Так вот у меня тоже такая проблема появилась.
При быстром переключении каналов adc0 и adc1, с интервалом 80 мкс считывалось что то среднее между напряжениями на 1и0 входе, а так же оба входных напряжения влияли не на своих измерениях . Кварц 16м, тактирование ацп fclk/2.
Вот такая дурацкая конструкция решила проблему.
При убирании псоледних 3 строчек влияние каналов друг на друга остается, но становится чуть слабее.
В даташите сказано что после инструкци sbi adcsra,6 мультиплексор переключается и происходит измерение. Не успевает заряжаться емкость? у меня низкоомные цепи, с выхода операционников прям на вход контроллера через 680 ом.
Ладно в первый раз не дозарядилась, но на втором измерении почему опять пролезает помеха с соседнего канала. Что то скорее всего с мультиплексором.
как то заработало и ладно. Но неприятно тратить время на такую ерунду.
При быстром переключении каналов 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мкс)
В даташите сказано что после инструкци sbi adcsra,6 мультиплексор переключается и происходит измерение. Не успевает заряжаться емкость? у меня низкоомные цепи, с выхода операционников прям на вход контроллера через 680 ом.
Ладно в первый раз не дозарядилась, но на втором измерении почему опять пролезает помеха с соседнего канала. Что то скорее всего с мультиплексором.
как то заработало и ладно. Но неприятно тратить время на такую ерунду.
то есть вы запустили АЦП на частоте 8 МГц и удивляетесь, что получили не очень хороший результат?! это в то время, как даташит рекомендует не более 200 кГц для качества, ну и в крайнем случае до 1 МГц можно дотянуть...
говорите, жалко время тратить? не потратили его на чтение даташита - потратили на борьбу с тенью...
говорите, жалко время тратить? не потратили его на чтение даташита - потратили на борьбу с тенью...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Коты!
Небольшой вопрос по использованию директив условной компиляции...
Вот, если такая конструкция, где условия не выполняется (R_Wport == 1), значит он не будет мне при компиляции вставлять вызов задержки?
Код: Выделить всё
.if R_Wport == 0
rcall DELAY_102
.endifСтанислав
не будет. только R_Wport должно быть константой
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
А если у меня
.equ R_Wport = PORTD
Разобрался... ТАк не работает.
.equ R_Wport = PORTD
Разобрался... ТАк не работает.
Станислав
- Сообщения: 39
- Зарегистрирован: Пн дек 31, 2012 13:16:59
Попробую на 1 мгц. Мне нужно разрешение 8 бит и невысокая точность будет достаточна. Главное чтобы быстро,и с других каналов не было влияния.
Кстати, несколько раз скачивал из Сети разнообразные асмовые проекты и обратил внимание. Очень часто в асмовом тексте встречается строчка, допустим, для Меги-8:
.include "m8h.inc"
и в архивчике с проектом - сам файлик m8h.inc
А я, когда еще только осваивал АВР Студию и асм, в первой же програмке, не задумываясь, "пошел на поводу" у своего Сишного "автопилота" и написал .include <m8h.inc> и ни разу не удивился, когда Студия сама без вопросов нашла этот файлик в своиих библиотеках .inc- и .h-файлов. То есть, Студия работает с асмовскими .include точно так же, как и с Сишными #include - если аргумент в кавычках, файл ищется в папке проекта, если в угловых скобках - в библиотеках Студии.
Кто не знал - рекомендую, а такие, судя по скачанным проектам, встречаются...
.include "m8h.inc"
и в архивчике с проектом - сам файлик m8h.inc
А я, когда еще только осваивал АВР Студию и асм, в первой же програмке, не задумываясь, "пошел на поводу" у своего Сишного "автопилота" и написал .include <m8h.inc> и ни разу не удивился, когда Студия сама без вопросов нашла этот файлик в своиих библиотеках .inc- и .h-файлов. То есть, Студия работает с асмовскими .include точно так же, как и с Сишными #include - если аргумент в кавычках, файл ищется в папке проекта, если в угловых скобках - в библиотеках Студии.
Кто не знал - рекомендую, а такие, судя по скачанным проектам, встречаются...
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
- Сообщения: 39
- Зарегистрирован: Пн дек 31, 2012 13:16:59
сделал тактирование 1 мгц, выкинул дурацкую конструкцию с 3 стартами ацп, все работает но теперь ждать около 13-15 мкс завершния. Похоже ограничения в мультиплексоре, и быстрее 6 мкс не переключается .
У меня была аналогичная проблема, и две страницы назад она описана)) Правда в моем случае минимальное время переключения составило около 160мкс. И задержка вводилась между вторым замером и реальным. Но товарищи говорили что может быть и конструкцией реальной партии камней завода изготовителя. Главное чтобы работало))*скрыто* писал(а):сделал тактирование 1 мгц, выкинул дурацкую конструкцию с 3 стартами ацп, все работает но теперь ждать около 13-15 мкс завершния. Похоже ограничения в мультиплексоре, и быстрее 6 мкс не переключается .
____________________
Ребята, теперь новая проблема, на сей раз с ШИМ. А точнее с "ОС2" на timer2. Полез в мануалы, написал вот так:
Устанавливаем PortB-3 на выход, ножка ШИМ
Код: Выделить всё
ldi R16, 0b00001000
out ddrB, R16
Код: Выделить всё
...
ldi R16, 0b00100011 ;задержка 32,для 40кГц,+вкл прямой ШИМ
out TCCR2, R16 ;пуск таймера "ШИМ"
Код: Выделить всё
...
ldi R16, 0x80 ;128h половина скважности
out OCR2, R16 ;запись в регистр ШИМ
Немного файлов по зажиганию: ФУОЗ 2.2 + программа правки таблиц 0.987, монтажка
Тоже вопрос...
А на АТМЕГА16 и выше работает команда rcall и rjmp?
А на АТМЕГА16 и выше работает команда rcall и rjmp?
Станислав
работают. только помимо них есть еще альтернативные команды с большим диапазоном охватываемых адресов.
Fucking static initialization order fiasco
Да, про них знаю, которые не относительные, а просто call и jmp. Просто хотелось быть уверенным, что эти тоже будут работать (для будущего переноса и универсальности кода).Pink-Pank писал(а):команды с большим диапазоном охватываемых адресов.
Да ! Спасибо за консультацию.
Станислав


