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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
sergeys
Поставщик валерьянки для Кота
Сообщения: 1946
Зарегистрирован: Сб сен 11, 2010 13:45:01
Откуда: Екатеринбург

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

Сообщение sergeys »

Спасибо! Работает!
Ко мне можно на "ты", так даже лучше!
svs39
Встал на лапы
Сообщения: 95
Зарегистрирован: Вс авг 22, 2010 09:23:08

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

Сообщение svs39 »

не могу найти- как включить нумерацию строк в редакторе AVRstudio?
codenamehawk
Вымогатель припоя
Сообщения: 528
Зарегистрирован: Вт фев 09, 2010 17:52:26

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

Сообщение codenamehawk »

yokimbe писал(а):а подскажите кто нибудь.. можно ли в Avr studio сделать нумерацию строк (ато достает иногда копировать всю писанину в notepad ++ и искать на что ругается компилятор)


В списке ошибок, нажмите на нужную вам ошибку и она, в верхнем окне будет выделена.

С WinAVR идет Programmers Notepad, рекомендую.
Там удобней писать код.
н.п. вместо того, чтобы вставить объявленную ранее переменную, достаточно написать пару букв и CRTL+Пробел
если освоите Makefile то и компиляцию будете там сразу делать и ошибки поправлять.
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

точно не знаю, сюда вопрос постить или все-таки в мелкие вопросы... :oops:
в общем, вопрос следующий: при симуляции в AVR Studio моей программы не меняется значение TCNT0 в окошке I/O View, а указатель выполнения программы бегает только от RJMP Reset до этого самого обработчкика по метке Reset. все, что по листингу ниже обработчика прерываний Reset не выполняется. подскажите, пожалуйста, где ошибка - в коде или в настройках симуляции
Вложения
First.asm
(3.08 КБ) 561 скачивание
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Ну и напутано у вас с прерываниями. :)))
Что должно выполниться при совпадении значений TCNT0 и OCR0 ?
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

DX168B писал(а):Ну и напутано у вас с прерываниями. :)))
Что должно выполниться при совпадении значений TCNT0 и OCR0 ?

прерывание Timer_tick
а что напутано-то? объясните нерадивому новичку... :oops:
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Сейчас отправлю Вам исправленный исходник и Вы увидите свою ошибку. :)
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

DX168B писал(а):Сейчас отправлю Вам исправленный исходник и Вы увидите свою ошибку. :)

почему-то уже чувствую, как меня носом окунают в что-то неприглядное... :)))
но буду крайне признателен за помощь!
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Вот весь проект
Да, забыл. Добавь инициализацию стека и больше не забывай про неё.
Там, где метка RESET, перед настройкой портов. То есть получается, что это должно производиться первым в программе.

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

RESET:      ldi Data,Low(ramend)
         out SPL, Data
         ldi Data, High(ramend)
         out SPH, Data
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

в основном цикле(начинающемся с метки reset) вместо reti поставьте rjmp Inf.

PS. Опоздал :)) кстати про стек правильно заметили - не забываем!
Ставим плюсы: )
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Да есть там это. RETI вообще выкинуть надо было. Таблица небыла задействована вообще.
Обработчик прерывания вообще выполнялся в основной программе. И когда нарывался на RETI всё уходило в перезагрузку.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

а почему вы обработчик прерывания вверх перенесли?по моему, это не обязательно.
Ставим плюсы: )
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

DX168B писал(а):Вот весь проект
Да, забыл. Добавь инициализацию стека и больше не забывай про неё.
Там, где метка RESET, перед настройкой портов. То есть получается, что это должно производиться первым в программе.

т.е. ошибка была в том, что выходить можно из любых прерываний кроме Reset?
только я так и не понял, значение таймера при симуляции должно меняться или нет? TCNT0 упорно сидит в нулях и не шевелится :cry:
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

Да, из Reset выходить не нужно.
Так вы предделитель поставили 1024. чтобы значение таймера изменилось, нужно чтобы прошло 1024 такта =) поставьте брейкпоинт(breakPoint) на первую команду в обработчике прерывания и нажмите F5(Run) в режиме симуляции.когда стрелка окажется на брейкпоинте программа остановится, тогда в счетчике циклов контроллера можно посмотреть их кол-во и в том же окне, заодно посмотреть прошедшее время. (Время будет правильным, если выставленная частота будет совпадать с частотой тактового генератора в реальной конструкции) Частота выставляется в режиме отладки из меню: Debug-Simulator Options.
Ставим плюсы: )
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Когда срабатывает прерывание, указатель программы прыгает на ту строку в таблице, которая соответствует тому или иному прерыванию. От туда она перепрыгивает к указанной подпрограмме и выполняется эта подпрограмма. Когда указатель дойдёт до reti то он перепрыгнет к месту, от куда его прервали.

Таймер не дёргается потому, что тактовая частота у Вас делится на 1024. Это означает, что вам надо нажать грубо 1204 раза на Step, чтобы он увеличился на единицу.
Чтобы проверить работу прерывания таймера, надо прогнать программу до основного цикла и щёкнуть мышкой по квадратику(биту\флагу) OCF0 в регистре TIFR чтобы вручную сэмулировать переполнение и вызвать прерывание таймера.
Или сделать так, как подсказал ibiza11
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

спасибо за помощь!
остался один только вопрос: можно ли в студии замутить hex-файл из проекта, чтобы потом через PonyProg сунуть в саму железку? а то я пока все делал только так: код в notepad++, hex делаем через tavrasm, шьем через PonyProg пятью проводками. а в данном случае есть откровенная конфузия - tavrasm не хочет принимать строчку

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

.ORG   INT_VECTORS_SIZE 
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

Ну вы, Батенька, извращенец! :shock: :))) в папке с проектом при нажатии F7 появлется файл с названием проекта с расширением .hex
Ставим плюсы: )
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Так Студия и делает hex файл, когда Вы жмёте кнопку Assemble (F7). Он должен быть в папке с проектом. :)
Последний раз редактировалось DX168B Вс янв 16, 2011 22:31:29, всего редактировалось 1 раз.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

вот что называется epic fail :))) :))) :)))
урррряяяяяя!!! я теперь могу не пользоваться tavrasmом!!!! да снизойдет благодать джедайская на всех, кто помог мне узреть свет истины :music:
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Necroteeth писал(а):вот что называется epic fail :))) :))) :)))
урррряяяяяя!!! я теперь могу не пользоваться tavrasmом!!!! да снизойдет благодать джедайская на всех, кто помог мне узреть свет истины :music:

Удачи Вам в начинаниях. :beer:
ibiza11 писал(а):а почему вы обработчик прерывания вверх перенесли?по моему, это не обязательно.

Тогда его надо, либо в конце ставить, либо между подпрограммами, либо перепрыгивать его.
Но я себя приучил ставить обработчики прерываний сразу после таблицы. :)
I am DX168B and this is my favourite forum on internet!
Ответить

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