Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Энкодер + таймер

Непрочитано 03.02.2013, 14:53  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Энкодер + таймер

Угу.
Значит 2 ошибки и очепятка.
Johnnie Walker не пошёл на пользу мыслительному процессу...
Реклама:
omercury вне форума  
Сказали "Спасибо" omercury
alvadep (03.02.2013)
Непрочитано 03.02.2013, 15:16  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Энкодер + таймер

увожаемые форумчане, всем спосибо за помощь, с обработкой энкодера я разобрался, но появилась новая проблема:
при попытке организовать внешне прерывание вылезает ошибка
C:\generator\generator.asm(20): error: Illegal attempt to re-use 'INT5' as label
Подскажите в чем дело.
прилагаю кусак кода:
.include "C:\generator\usb1286def.inc"
.def l=r16
.def h=r17
.cseg
.org 0
;************************************************* ******************
rjmp reset
rjmp INT0 ;External Interrupt Request 0
rjmp INT1 ;External Interrupt Request 1
rjmp INT2 ;External Interrupt Request 2
rjmp INT3 ;External Interrupt Request 3
rjmp INT4 ;External Interrupt Request 4
rjmp INT5 ;External Interrupt Request 5
rjmp INT6 ;External Interrupt Request 6
rjmp INT7
.org $0022
rjmp tIMER1_COMPA
;************************************************* ******************
;îáðàáîòêà ýíêîäåðà, èçìåíåíèå ÷àñòîòû
int5:
in r20, pinb
cpi r16,0
brcs down
;up
Senay76 вне форума  
Непрочитано 03.02.2013, 15:35  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Энкодер + таймер

Метка INT5 используется несколько раз. Проверяйте.
Или просто переименуйте и переход и метку.
alvadep вне форума  
Непрочитано 03.02.2013, 15:46  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Энкодер + таймер

Надо быть чуток проще - и использовать метки, переменные, дефайны поскромнее, чем там INPUT, PRINT, OUT, INT.

INT0, ... , INT7 - наверняка где нить как маска прерываний используется в системных файлах.
Boba_spb вне форума  
Непрочитано 03.02.2013, 15:52  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Энкодер + таймер

INT0, ... , INT7 - наверняка где нить как маска прерываний используется в системных файлах.[/QUOTE]

так точно сменил метку и все ОК
Senay76 вне форума  
Непрочитано 03.02.2013, 16:09  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Энкодер + таймер

Вектора лучше инициализировать инициалицировать типа так

.cseg
.org 0
jmp StartProgram
.org OVF0addr
jmp Timer0_Interrupt
.org OVF2addr
jmp Timer2_Interrupt
.org OVF1addr
jmp Timer1_Interrupt
.org URXC1addr
jmp RsRx_Interrupt;
.org 0x100
StartProgram:
.....


В этом случае меньше вероятность не попасть на нужный вектор.
Boba_spb вне форума  
Непрочитано 03.02.2013, 16:20  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: Энкодер + таймер

подскажите как в avr studio "спровацировать" внешнее прерывание по фронту
Senay76 вне форума  
Непрочитано 03.02.2013, 16:47  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Энкодер + таймер

Обычно сразу описываю все векторы, чтоб непонятных глюков не было.
PHP код:
.CSEG
.org 0
    rjmp    begin                    ;Сброс
    reti    ;rjmp    Ext_INT0                ; External Interrupt Request 0
    reti    ;rjmp    PCI                ; Pin Change Interrupt
    reti    ;rjmp    Tim1_CompA        ; Timer/Counter1 Compare Match A
    reti    ;rjmp    Tim1_OVF        ; Timer/Counter1 Overflow
    reti    ;rjmp    Tim0_OVF        ; Timer/Counter0 Overflow
    reti    ;rjmp    EERDY            ; EEPROM Ready
    reti    ;rjmp    ACE                ; Analog Comparator Event
    reti    ;rjmp    ADC_Comp        ; ADC Conversion Complete
;*************************************************  ********
;    INT_VECTORS_SIZE    = 9    ; size in words
;*************************************************  ******** 
Сообщение от Senay76 Посмотреть сообщение
подскажите как в avr studio "спровацировать" внешнее прерывание по фронту
Как минимум, настроить прерывание и условия его возникновения, разрешить его и включить все прерывания, а уж его вызвать установив соответствующий флаг во время отладки.
Миниатюры:
Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 39
Размер:	36.8 Кб
ID:	43104  
omercury вне форума  
Непрочитано 03.02.2013, 17:10  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Энкодер + таймер

Сообщение от omercury Посмотреть сообщение
Обычно сразу описываю все векторы, чтоб непонятных глюков не было.
PHP код:
.CSEG
.org 0
    rjmp    begin                    ;Сброс
    reti    ;rjmp    Ext_INT0                ; External Interrupt Request 0
    reti    ;rjmp    PCI                ; Pin Change Interrupt
    reti    ;rjmp    Tim1_CompA        ; Timer/Counter1 Compare Match A
    reti    ;rjmp    Tim1_OVF        ; Timer/Counter1 Overflow
    reti    ;rjmp    Tim0_OVF        ; Timer/Counter0 Overflow
    reti    ;rjmp    EERDY            ; EEPROM Ready
    reti    ;rjmp    ACE                ; Analog Comparator Event
    reti    ;rjmp    ADC_Comp        ; ADC Conversion Complete
;*************************************************  ********
;    INT_VECTORS_SIZE    = 9    ; size in words
;*************************************************  ******** 
Как минимум, настроить прерывание и условия его возникновения, разрешить его и включить все прерывания, а уж его вызвать установив соответствующий флаг во время отладки.
Все бы ничего, но под каждый вектор отведено по 2 слова.

А reti - односоловная инструкция, поэтому, написав 4 раз подряд reti, Вы "закроете" только 2 ветора подряд, а комменте пишите что 4
Boba_spb вне форума  
Непрочитано 03.02.2013, 18:06  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Энкодер + таймер

Boba_spb, в AVR команда IJMP и RJMP занимает 16 бит... в младших вектор прерывания занимает 1 слово. Это было оттуда.

Последний раз редактировалось omercury; 03.02.2013 в 18:10.
omercury вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Энкодер Gladkih Производственное оборудование 14 26.09.2011 21:19
Энкодер брешет 7Fantomas7 Производственное оборудование 10 03.05.2011 16:18
Atmega32 и энкодер Pevek80 Микроконтроллеры, АЦП, память и т.д 21 06.03.2011 20:46
Энкодер alberio Информация по радиокомпонентам 18 05.08.2010 22:51
Энкодер ЛИР-458А bobdenis Производственное оборудование 5 03.04.2007 14:20


Часовой пояс GMT +4, время: 15:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.