Страница 17 из 160

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

Добавлено: Ср мар 17, 2010 16:26:04
Гагарин
Большое спасибо!
Но все равно, программа не идет на вектор прерывания.
.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

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

Добавлено: Ср мар 17, 2010 16:31:08
GP1
Ну ё-маё, а ACIE включить?
и студия не эмулирует аналоговые сигналы, попробуй VMLab - просто и со вкусом.
ну почитай ДШ, проблемы с аглицким - у Светы в библе есть книжки Евстифеева, там все по-русски.

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

Добавлено: Ср мар 17, 2010 16:34:01
Pooher
Ну и про стэк! писали же.

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

ldi tmp, LOW(RAMEND)
out SPL, tmp

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

Добавлено: Ср мар 17, 2010 18:13:36
Гагарин
GP1 писал(а):Ну ё-маё, а ACIE включить?
и студия не эмулирует аналоговые сигналы, попробуй VMLab - просто и со вкусом.
ну почитай ДШ, проблемы с аглицким - у Светы в библе есть книжки Евстифеева, там все по-русски.
Включено. Вот:
ldi temp,0b00001000
out acsr,temp

Все равно, 4 бит ACI, ставлю "птичку", а прерывание не наступает!

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

Добавлено: Ср мар 17, 2010 20:04:51
GP1
Не симулирует, :dont_know: видимо глюк
Завтра буду пытать в VMLab.

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

Добавлено: Чт мар 18, 2010 10:19:05
GP1
Вот рабочий код, симулируется в VMLab 3.15
В контрольной панели слайдер S1 двигаешь вверх и происходит прерывание по адресу $0D (ANA_COMP)
Отличия от твоего кода:
1. инициализация стека
2. порт Д - входы
Кури ДШ

ЗЫ проверил и в студии тоже нормально работает

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

Добавлено: Пт мар 19, 2010 23:17:49
romazan
Доброй ночи товарищи коты, у меня такой вопрос: принаписании кода: ok |= PINC(PC1);
Выводит ошибку: ../i2c_start.h:24: error: called object '*51u' is not a function

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

Добавлено: Сб мар 20, 2010 09:53:59
smac
romazan писал(а):Доброй ночи товарищи коты, у меня такой вопрос: принаписании кода: ok |= PINC(PC1);
Выводит ошибку: ../i2c_start.h:24: error: called object '*51u' is not a function
Дык Ваш код выдзывает функцию PINC(PC1), которой естественно не существует, т.к. PINC -это определение порта. Судя по всему компилятор у вас WinAVR, а вот что Вы хотите сделать - не понятно, если нужно считать выводы, то делается так

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

ok=PINC;
Если вы хотите сделать логическое или бита 1 переменной ok и ноги PC1, а остальные биты оставить без изменения, то примерно так:

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

ok |= PINC&(1<<PC1); 

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

Добавлено: Пт апр 02, 2010 21:43:24
romazan
привет всем котам.
У меня такой вопрос:
Значит пишу программу с прерываниями, при компиляции кода выдаёт ошибку

../main.c:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'


и ссылается на это

#pragma vector=TIMER1_COMPA_vect
__interrupt void T1_COMPARE()
{
....
}

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

Добавлено: Сб апр 03, 2010 22:32:49
smac
romazan писал(а):Значит пишу программу с прерываниями, при компиляции кода выдаёт ошибку...
Правильно ссылается, синтаксис то явно не WinAVR-овский, а студия, насколько мне известно, только с WinAVR работает. Прочитайте в документации на WinAVR как оформлять прерывания.
приблизительно так

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

#include <avr/interrupt.h>

ISR(ADC_vect)
{
    // user code here
}

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

Добавлено: Вс апр 11, 2010 12:27:29
Naddir
Люди помогите!!!!!
Не могу запустить AVRProg. Выает вот такое окно. Пробывал на дух ситемах Виста и Виндоус 7. Закачал все последние обновления.

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

Добавлено: Вс апр 11, 2010 14:28:44
AI_Disable
Он не видит ваш программатор. Смотрите драйвер, железо.

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

Добавлено: Вс апр 11, 2010 17:16:12
Naddir
AI_Disable писал(а):Он не видит ваш программатор. Смотрите драйвер, железо.
Спасибо, вечером проверю. У меня FVR910.

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

Добавлено: Вт май 11, 2010 20:44:25
AndyWorld
Решил я выделить в отдельный файл инициализацию ЖК и еще один файл с задержками и прочими математическими штучками.
Вот так.
.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 а не с инициализации. Тоже самое когда открываю проект, первой открывается эта подпрограмма а не основное тело. В итоге мне пришлось отказаться от этого и пришлось все включить в основной листинг. Читаемость и передвижение усложнились многократно. Как правильно сделать?

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

Добавлено: Чт май 13, 2010 11:53:11
Meteor
Есть 2 пути.
Первый описывать макросами функции в файле, но тогда теряете в проверке и отладке...
Делать вызов нужного файла в теле где планируется функция, что то типа такого

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

set temp;
ldi tmp, 0x23
.include "NameFiles.asm"; Вызов файла
....

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

Добавлено: Чт май 13, 2010 19:05:45
AndyWorld
Я тоже уже об этом подумал. Вызывать InitLCD после include. Только толку маловато. Как правило InitLCD идет после отработки основной инициализации МК.
А макросы тоже можно вынести в prg? И так же влючать в тело Include?

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

Добавлено: Пт май 14, 2010 08:10:38
Meteor
Вот скрин включения файлов в тело программы.

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

Добавлено: Пн май 31, 2010 15:28:23
ВитГо
А есть ли средство в AVR Studio чтобы заполнить таблицу прерываний для выбранного проца ?

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

а как сделать конструкции например вида
.org прерывание_1
reti
.org прерывание_2
reti
.. и т д

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

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

Добавлено: Пн май 31, 2010 15:48:39
Engineer_Keen
Я эту табличку из предыдущих проектов копирую, если контроллер такой же. Ну а если новый, то да, ручками из даташита...
Может все вместе замутим базу *.asm файлов со строками прерываний :))) Хотя лично мне не влом набрать своими руками :write:

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

Добавлено: Пн май 31, 2010 18:22:56
ARV
ВитГо писал(а):А есть ли средство в 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
и все!

желаю успехов!