AVR studio в вопросах и ответах
Re: AVR studio 4 в вопросах и ответах
Большое спасибо!
Но все равно, программа не идет на вектор прерывания.
.org 0
rjmp reset
.org $004
rjmp An_Comp
reti
reset:
; ldi temp,0b10000000 razreshim prerivaniya
; out sreg,temp
ldi temp,0b11111111
out ddrd,temp
ldi temp,0b00000000
out ddrb,temp
out portb,temp
ldi temp,0b00001000
out acsr,temp
sei
K1: nop
rjmp k1
Но все равно, программа не идет на вектор прерывания.
.org 0
rjmp reset
.org $004
rjmp An_Comp
reti
reset:
; ldi temp,0b10000000 razreshim prerivaniya
; out sreg,temp
ldi temp,0b11111111
out ddrd,temp
ldi temp,0b00000000
out ddrb,temp
out portb,temp
ldi temp,0b00001000
out acsr,temp
sei
K1: nop
rjmp k1
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Ну ё-маё, а ACIE включить?
и студия не эмулирует аналоговые сигналы, попробуй VMLab - просто и со вкусом.
ну почитай ДШ, проблемы с аглицким - у Светы в библе есть книжки Евстифеева, там все по-русски.
и студия не эмулирует аналоговые сигналы, попробуй VMLab - просто и со вкусом.
ну почитай ДШ, проблемы с аглицким - у Светы в библе есть книжки Евстифеева, там все по-русски.
- Pooher
- Мучитель микросхем
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Re: AVR studio 4 в вопросах и ответах
Ну и про стэк! писали же.
Код: Выделить всё
ldi tmp, LOW(RAMEND)
out SPL, tmpНаучить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Re: AVR studio 4 в вопросах и ответах
GP1 писал(а):Ну ё-маё, а ACIE включить?
и студия не эмулирует аналоговые сигналы, попробуй VMLab - просто и со вкусом.
ну почитай ДШ, проблемы с аглицким - у Светы в библе есть книжки Евстифеева, там все по-русски.
Включено. Вот:
ldi temp,0b00001000
out acsr,temp
Все равно, 4 бит ACI, ставлю "птичку", а прерывание не наступает!
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Не симулирует,
видимо глюк
Завтра буду пытать в VMLab.
видимо глюкЗавтра буду пытать в VMLab.
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Вот рабочий код, симулируется в VMLab 3.15
В контрольной панели слайдер S1 двигаешь вверх и происходит прерывание по адресу $0D (ANA_COMP)
Отличия от твоего кода:
1. инициализация стека
2. порт Д - входы
Кури ДШ
ЗЫ проверил и в студии тоже нормально работает
В контрольной панели слайдер S1 двигаешь вверх и происходит прерывание по адресу $0D (ANA_COMP)
Отличия от твоего кода:
1. инициализация стека
2. порт Д - входы
Кури ДШ
ЗЫ проверил и в студии тоже нормально работает
- Вложения
-
- 4433.rar
- (5.25 КБ) 300 скачиваний
- romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Доброй ночи товарищи коты, у меня такой вопрос: принаписании кода: ok |= PINC(PC1);
Выводит ошибку: ../i2c_start.h:24: error: called object '*51u' is not a function
Выводит ошибку: ../i2c_start.h:24: error: called object '*51u' is not a function
Re: AVR studio 4 в вопросах и ответах
romazan писал(а):Доброй ночи товарищи коты, у меня такой вопрос: принаписании кода: ok |= PINC(PC1);
Выводит ошибку: ../i2c_start.h:24: error: called object '*51u' is not a function
Дык Ваш код выдзывает функцию PINC(PC1), которой естественно не существует, т.к. PINC -это определение порта. Судя по всему компилятор у вас WinAVR, а вот что Вы хотите сделать - не понятно, если нужно считать выводы, то делается так
Код: Выделить всё
ok=PINC;Код: Выделить всё
ok |= PINC&(1<<PC1); - romazan
- Потрогал лапой паяльник
- Сообщения: 335
- Зарегистрирован: Чт май 21, 2009 13:54:07
- Откуда: Москва
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
привет всем котам.
У меня такой вопрос:
Значит пишу программу с прерываниями, при компиляции кода выдаёт ошибку
../main.c:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
и ссылается на это
#pragma vector=TIMER1_COMPA_vect
__interrupt void T1_COMPARE()
{
....
}
У меня такой вопрос:
Значит пишу программу с прерываниями, при компиляции кода выдаёт ошибку
../main.c:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
и ссылается на это
#pragma vector=TIMER1_COMPA_vect
__interrupt void T1_COMPARE()
{
....
}
Re: AVR studio 4 в вопросах и ответах
romazan писал(а):Значит пишу программу с прерываниями, при компиляции кода выдаёт ошибку...
Правильно ссылается, синтаксис то явно не WinAVR-овский, а студия, насколько мне известно, только с WinAVR работает. Прочитайте в документации на WinAVR как оформлять прерывания.
приблизительно так
Код: Выделить всё
#include <avr/interrupt.h>
ISR(ADC_vect)
{
// user code here
}Re: AVR studio 4 в вопросах и ответах
Люди помогите!!!!!
Не могу запустить AVRProg. Выает вот такое окно. Пробывал на дух ситемах Виста и Виндоус 7. Закачал все последние обновления.
Не могу запустить AVRProg. Выает вот такое окно. Пробывал на дух ситемах Виста и Виндоус 7. Закачал все последние обновления.
- Вложения
-
- Безымянный.jpg
- Вот такое окно постоянно.
- (19.79 КБ) 369 скачиваний
- AI_Disable
- Сверлит текстолит когтями
- Сообщения: 1116
- Зарегистрирован: Чт окт 15, 2009 14:16:18
- Откуда: Екб
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Он не видит ваш программатор. Смотрите драйвер, железо.
Re: AVR studio 4 в вопросах и ответах
AI_Disable писал(а):Он не видит ваш программатор. Смотрите драйвер, железо.
Спасибо, вечером проверю. У меня FVR910.
- AndyWorld
- Прорезались зубы
- Сообщения: 209
- Зарегистрирован: Вт сен 30, 2008 09:23:14
- Откуда: Краснодарский край
Re: AVR studio 4 в вопросах и ответах
Решил я выделить в отдельный файл инициализацию ЖК и еще один файл с задержками и прочими математическими штучками.
Вот так.
.device ATmega16
.nolist
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc"
.include "C:\AVRProject\Mega_Timer\Mega16_Timer\LCD.prg"
.include "C:\AVRProject\Mega_Timer\Mega16_Timer\win2.prg"
Компилируется нормально. Но когда запускаю симуляцию программа начинается с LCD.prg а не с инициализации. Тоже самое когда открываю проект, первой открывается эта подпрограмма а не основное тело. В итоге мне пришлось отказаться от этого и пришлось все включить в основной листинг. Читаемость и передвижение усложнились многократно. Как правильно сделать?
Вот так.
.device ATmega16
.nolist
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m16def.inc"
.include "C:\AVRProject\Mega_Timer\Mega16_Timer\LCD.prg"
.include "C:\AVRProject\Mega_Timer\Mega16_Timer\win2.prg"
Компилируется нормально. Но когда запускаю симуляцию программа начинается с LCD.prg а не с инициализации. Тоже самое когда открываю проект, первой открывается эта подпрограмма а не основное тело. В итоге мне пришлось отказаться от этого и пришлось все включить в основной листинг. Читаемость и передвижение усложнились многократно. Как правильно сделать?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Есть 2 пути.
Первый описывать макросами функции в файле, но тогда теряете в проверке и отладке...
Делать вызов нужного файла в теле где планируется функция, что то типа такого
Первый описывать макросами функции в файле, но тогда теряете в проверке и отладке...
Делать вызов нужного файла в теле где планируется функция, что то типа такого
Код: Выделить всё
set temp;
ldi tmp, 0x23
.include "NameFiles.asm"; Вызов файла
....
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
- AndyWorld
- Прорезались зубы
- Сообщения: 209
- Зарегистрирован: Вт сен 30, 2008 09:23:14
- Откуда: Краснодарский край
Re: AVR studio 4 в вопросах и ответах
Я тоже уже об этом подумал. Вызывать InitLCD после include. Только толку маловато. Как правило InitLCD идет после отработки основной инициализации МК.
А макросы тоже можно вынести в prg? И так же влючать в тело Include?
А макросы тоже можно вынести в prg? И так же влючать в тело Include?
- Meteor
- Друг Кота
- Сообщения: 3961
- Зарегистрирован: Пн июл 13, 2009 14:37:39
- Откуда: Московская область, наукоград.....
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Вот скрин включения файлов в тело программы.
- Вложения
-
- include_f.JPG
- (67.78 КБ) 343 скачивания
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Re: AVR studio 4 в вопросах и ответах
А есть ли средство в AVR Studio чтобы заполнить таблицу прерываний для выбранного проца ?
например выбрал при создании проекта проц, симуляцию, появилось окно куда набивать программу..
а как сделать конструкции например вида
.org прерывание_1
reti
.org прерывание_2
reti
.. и т д
или все руками по даташиту всегда набирают ?
например выбрал при создании проекта проц, симуляцию, появилось окно куда набивать программу..
а как сделать конструкции например вида
.org прерывание_1
reti
.org прерывание_2
reti
.. и т д
или все руками по даташиту всегда набирают ?
- Engineer_Keen
- Друг Кота
- Сообщения: 3868
- Зарегистрирован: Пт янв 29, 2010 10:27:40
- Откуда: Москва
Re: AVR studio 4 в вопросах и ответах
Я эту табличку из предыдущих проектов копирую, если контроллер такой же. Ну а если новый, то да, ручками из даташита...
Может все вместе замутим базу *.asm файлов со строками прерываний
Хотя лично мне не влом набрать своими руками 
Может все вместе замутим базу *.asm файлов со строками прерываний

- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
вы - первый из задающих вопросы, кто вознамерился сделать таблицу векторов прерываний правильно! я очень удивлен! и всячески поддерживаю вас, если вы и во всем программировании стараетесь придерживаться правил хорошего тона для создания качественных программ!ВитГо писал(а):А есть ли средство в AVR Studio чтобы заполнить таблицу прерываний для выбранного проца ?
например выбрал при создании проекта проц, симуляцию, появилось окно куда набивать программу..
а как сделать конструкции например вида
.org прерывание_1
reti
.org прерывание_2
reti
.. и т д
или все руками по даташиту всегда набирают ?
информация о символьных именах адресов для таблицы векторов хранится в include-файле для выбранного вами микроконтроллера, например, для atmega16 это будет файл m16def.inc, в котором ближе к концу есть нужное (ищите строку "INTERRUPT VECTORS"):
Код: Выделить всё
.equ INT0addr = 0x0001 ; External Interrupt Request 0
.equ INT1addr = 0x0002 ; External Interrupt Request 1
.equ OC2addr = 0x0003 ; Timer/Counter2 Compare Match
и так далее
теперь в своей программе только для тех векторов, которые вы действительно решили использовать, вы пишите, как и хотели:
Код: Выделить всё
.org INT1addr
rjmp INT1_handler_procжелаю успехов!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
