AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
sema
Мудрый кот
Сообщения: 1708
Зарегистрирован: Ср апр 23, 2008 17:44:56
Откуда: Россия, г. Нижний Новгород
Контактная информация:

Сообщение sema »

спасибо :) (я сначала ubrof 9(forced) поставил, незаработало)
абажаю мой KIA CEED [img]http://www.kolobok.us/smiles/madhouse/to_become_senile.gif[/img]
Пресекать нарушения закона мой долг и обязанность как гражданина моей страны
DeOnis
Родился
Сообщения: 2
Зарегистрирован: Пн авг 03, 2009 12:56:36
Откуда: Москва. 127410

Сообщение DeOnis »

Вопрос по компилятору GCC AVR(установлен WinAVR) в AVR Studio4.
При разработке программы под tiny2313 и так огрёб проблемы со слишком усердной оптимизацией со стороны GCC("volatile" forever). Так тут мне Studio подкинул очередной ИМХО глюк. при выполнении копирования командой "term_real = term_ac;" значения term_real и term_ac; 11 и 13 соответственно, так после копирования в term_real и term_ac; 0 и 13. Обе переменные лежат в SRAM, я понимаю, что копирование происходит через регистры, но почему значение зануляется?
Вложения
Termometr.c
(5.79 КБ) 617 скачиваний
DeOnis
Родился
Сообщения: 2
Зарегистрирован: Пн авг 03, 2009 12:56:36
Откуда: Москва. 127410

Сообщение DeOnis »

Проблема сама собой самоликвидировалась, надо было просто изменить определение глобальной переменной с типа "Extern" на тип "volatile" (всемогущий "volatile") :) Всем спасибо. Теперь всё работает прекрасно!
Аватара пользователя
Twen
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Чт апр 09, 2009 00:25:26

Сообщение Twen »

Здраствуйте!
Я програмил на асемблере, но по сути то это же столько мороки, намного проще работать с AVR на С.Ни так ли? И я начал переходить на С. Читаю щас книгу Шпака "Программирование микроконтроллеров AVR и PIC" . Делал все по книге, установил WinAvr и AVRStudio 4,
написал програмку элементарную на С у Programmers Notpad [WinAVR ]откомпилил ,создал cof и hex файл и загрузил его у AVRStudio 4 и открылось окно Disassembler(то есть код на С был преобразован на асемблер ), и я был удивлен что так не удобно отлаживать проги на С в отладчике-по коду Disassembler. Я пробывал сразу у AVRStudio открыть С файл и запустить отладку но вылазить Error , я понял так нельзя. А подскажите другие бесплатные среды , уж по удобнее (то есть отлаживать не по Disassembler а по сишному коду) для отладки прог на С.Например CodeVision там отлаживать удобнее? я просто ним не пользовался...
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Да именно по-шаговую делает PROTEUS ! Причем и по Си и можно раскрыть к текту на Си код на АСМ-е !

Вот скриншоты

http://www.proteus123.narod.ru/img/25.png

http://www.proteus123.narod.ru/img/24_c_asm.png

Изображение

Изображение
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Twen писал(а):Делал все по книге, установил WinAvr и AVRStudio 4,
написал програмку элементарную на С у Programmers Notpad [WinAVR ]откомпилил ,создал cof и hex файл и загрузил его у AVRStudio 4 и открылось окно Disassembler(то есть код на С был преобразован на асемблер ), и я был удивлен что так не удобно отлаживать проги на С в отладчике-по коду Disassembler. Я пробывал сразу у AVRStudio открыть С файл и запустить отладку но вылазить Error , я понял так нельзя. А подскажите другие бесплатные среды , уж по удобнее (то есть отлаживать не по Disassembler а по сишному коду) для отладки прог на С.
а почему бы вам не читать инструкции к программам, которыми пользуетесь? зачем вам Шпаки всякие? компилите программу в студии, потом нажимете "старт отладки" и прекрасно отлаживаете прямо по сишному коду - никаких CОF или ELF открывать не надо. WinAVR - родной компилятор для студии, он с ним дружит лучше всех прочих.

кстати об отладке в протеусе - его отладчик (во всяком случае в версии 7.4 sp3) достаточно сильно уступает по возможностям студии, особенно по возможностям работы с переменными, памятью и регистрами. да и глюки в студии все документированы и немного их, не то ч то в протеусе.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Twen
Нашел транзистор. Понюхал.
Сообщения: 152
Зарегистрирован: Чт апр 09, 2009 00:25:26

Сообщение Twen »

Вот это я понимаю, proteus рулит, реально удобно...уже начал читать обучалку по Proteus/
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

Доброго времени суток!
Пишу в АВРстудии прогу под мегу8535. Код прекрасно ложится и вроде нет проблем, НО в отладке после устаноки флага разрешения прерывания по опустевшему регистру передачи (UDRIE), соскакивает на обработку прерывания по внешнему сигналу (EXT_INT0). В DS указаны адреса векторов прерываний и заканчиваются значением 0х014. В таблице векторов пишу только "прыжки", сами коды обработки прерываний начинаю с 0х020. Менял на 0х040 не помогает.
Бывалые, пожалуйста подскажите в чем может быть проблема.
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

Проблема в "неправильном" адресе. Выложите программу, точнее её начало, с векторами.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

Pooher писал(а):Проблема в "неправильном" адресе...

Спасибо, натолкнули на правильный путь :) Едва не стал орать как Архимед... :)) Забыл "заретить" не используемые прерывания в заголовке содранном из даташита.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

Доброго времени!
Подскажите пишу прогу для меги8535. В передатчик загоняю:
clr tmp;
ldi temp, 0x19;
out UBRRH,tmp;
out UBRRL,temp;
ldi tmp,(1<<TXEN)|(1<<RXEN);
out UCSRB, tmp;
ldi tmp,(1<<TXC)|(1<<UDRE)
out UCSRA,tmp
ldi tmp, (1<<URSEL)|(2<<UPM0)|(1<<USBS)|(3<<UCSZ0)
out UCSRC, tmp;
При симуляции проекта, наблюдаю такой эффект, до последней строки все тип-топ, но после записи в UCSRC меняется состояние UBRRH, то есть становится UBRRH=UCSRC.
Стоит ли заморачиваться или оставить как есть?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Meteor писал(а):после записи в UCSRC меняется состояние UBRRH, то есть становится UBRRH=UCSRC.
Стоит ли заморачиваться или оставить как есть?
прочтите, наконец, даташит на МК!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

ARV писал(а):прочтите, наконец, даташит на МК!

Написано, что обращение к обоим регистрам идет по одному адресу, признаком является старший бит. Это все понятно. Железо работает как надо, вопрос о СИМУЛЯЦИИ в AVR Studio.
Аватара пользователя
Anatoli
Родился
Сообщения: 13
Зарегистрирован: Вт авг 18, 2009 10:52:02

Может кто знает

Сообщение Anatoli »

У меня AVR студия 4-14
при попытке прошить Тиньку 2313 с 8 мгц внутреннего генератора на 4 мгц улетает куда-то и после без внешнего квареца не восстанавливается.
Моть у кого такое было в чём промблема? :evil:
Аватара пользователя
Anatoli
Родился
Сообщения: 13
Зарегистрирован: Вт авг 18, 2009 10:52:02

Сообщение Anatoli »

Забыл сказать. Шью на USB AVR MKII.
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Сообщение Meteor »

Доброго времени, всем!
Не совсем в тему, но всеже. Делаю вот такую программную "штуку" (см. фото) для сопоставления текста программ (через генерацию файлов PORTn.log) с "показаниями" осциллографа, в перспективе - работа с железом (на 32 канала). Сам пишу в студии 4.16. При симуляции передатчика (уарт) обратил внимание на то что студия меняет пин, но значение вывода порта остается без изменений (например на меге8535 PinD1 меняется, а PortD1=1). При этом железо работает как швейцарские часы.
У меня вопрос к тем кто пользуется еще старыми версиями студии.
Наблюдается ли этот эффект у Вас?
Очень хочется максимального правдоподобия.
Заранее благодарен.
PS. Если кто согласится могу предоставить на тест файл в асме, для получения от Вас файла PORTD.log.
Вложения
Analizator.jpg
(179.79 КБ) 696 скачиваний
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
niksan321
Родился
Сообщения: 2
Зарегистрирован: Пт сен 18, 2009 01:05:16

Сообщение niksan321 »

народ помогите, проблема толи в студии, толи в протеусе, студия 4.17 протеус 7.6 сп0 мк - Tiny2313, собственно проблема заключается в том, что либо протеус дизасемблит HEX файл студии не правильно (1 команда), либо студия генерит не верный код, вот скрины:
Изображение

кто врёт? в протеусе устройство работает не верно, в студии глюков в работе устройства не нашёл

ЗЫ не смотрите на несколько строк BRNE это я их вписал для поиска нужного места в HEX файле
YurkaM
Нашел транзистор. Понюхал.
Сообщения: 151
Зарегистрирован: Пн сен 01, 2008 14:49:03
Откуда: Казахстан

Сообщение YurkaM »

niksan321, а есть ли разница между командами BRLO и BRCS ? - вот в чём вопрос :)
niksan321
Родился
Сообщения: 2
Зарегистрирован: Пт сен 18, 2009 01:05:16

Сообщение niksan321 »

YurkaM писал(а):niksan321, а есть ли разница между командами BRLO и BRCS ? - вот в чём вопрос :)


хм... действительно, у них даже OPCODE одинаковый, зачем же им мнемонику разную сделали?
Аватара пользователя
Dexa
Встал на лапы
Сообщения: 119
Зарегистрирован: Ср ноя 07, 2007 15:17:20
Контактная информация:

Сообщение Dexa »

Как сделать имитацию нажатия кнопки или имитацию внешнего прерывания?
......aлкоголь расширяет сосуды, курение их сужает, а сдают почему-то нервы......
Ответить

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