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

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

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

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

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

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

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

 
Опции темы

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

Непрочитано 02.02.2013, 23:36  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: энкодер + таймер

Senay76, Вы не обозначили МК. Для меги, например, есть команды ADIW и SBIW, которые прибавляют/вычитают константу к/из регистровой пары.

О! Пока писал, уже обозначили. Команды инкремента и декремента не влияют на флаг переполнения. Или проверяйте флаг Z, или делайте арифметические операции (сложение с константой, вычитание константы), которые влияют на флаг переполнения.
Реклама:

Последний раз редактировалось alvadep; 02.02.2013 в 23:44.
alvadep вне форума  
Непрочитано 02.02.2013, 23:45  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: энкодер + таймер

Сообщение от swat24 Посмотреть сообщение
в таком случае так как alvadep сказал. Я просто не очень помню эти регистры, давно уже с ассемблером не работал.

Senay76,
Хорошо, Вы считывали значение регистров в регистры А,В и там сравнивали и прибавляли 1 к младшему, и после переполнения не устанавливался бит?
не совсем так , я завел переменную состоящую из регистров А и Б, прибавлял к младшему регистру 1 и флаг не устанавливался
Senay76 вне форума  
Непрочитано 02.02.2013, 23:49  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Энкодер + таймер

alvadep, ну значит тут я не советчик, этого я не знал. Вопрос к Вам, а какие команды влияют на флаг переполнения?
Senay76 значит как alvadep написал сделайте.

Последний раз редактировалось swat24; 02.02.2013 в 23:52.
swat24 вне форума  
Непрочитано 02.02.2013, 23:50  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: энкодер + таймер

[QUOTE=alvadep;594001]Senay76, Вы не обозначили МК. Для меги, например, есть команды ADIW и SBIW, которые прибавляют/вычитают константу к/из регистровой пары.
надо проверить есть ли у моего мк такие операции

Команды инкремента и декремента не влияют на флаг переполнения.
не знал, попробую сделать как вы сказали
Senay76 вне форума  
Непрочитано 02.02.2013, 23:59  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Энкодер + таймер

Сообщение от swat24 Посмотреть сообщение
Вопрос к Вам, а какие команды влияют на флаг переполнения?
Все остальные арифметические команды влияют на флаг переполнения.
alvadep вне форума  
Непрочитано 03.02.2013, 00:01  
gary2007
Почётный гражданин KAZUS.RUN
 
Аватар для gary2007
 
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,440
Сказал спасибо: 375
Сказали Спасибо 1,052 раз(а) в 621 сообщении(ях)
gary2007 на пути к лучшему
По умолчанию Re: Энкодер + таймер

Пробуйте как написано тут.
Миниатюры:
Нажмите на изображение для увеличения
Название: 7.6.1. Обращение к 16-битным регистрам.JPG
Просмотров: 53
Размер:	174.3 Кб
ID:	43077  
__________________
Мелочи не решают главного. Они решают всё!
gary2007 вне форума  
Непрочитано 03.02.2013, 01:59  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Энкодер + таймер

PHP код:
;*************************************************  ****
PWMup:        ;Точка входа на увеличения
in      r16,OCR1AH
inc     r16   ;Инкремент и проверка переполнения младшего байта
brne    skip2
in      r17,OCR1AL
inc     r17   ;То же для старшего байта
brne    skip1 ;Если переполнения счётчика нет, уходим на выполнение изменения
              ;Если произошло переполнение счётчика
dec     r17   ;Здесь возвращаем максимальное значение компаратора
dec     r16   ;чтоб не было зацикливания регулировки
rjmp    skip1 ;Переход на выполнение
;*************************************************  ********
PWMdown:      ;Точка входа на уменьшение
in      r16,OCR1AH
dec     r16
cpi     r17,255 ;Проверка переполнения младшего байта
brne    skip2
in      r17,OCR1AL
dec     r17
cpi     r17,255   ;То же для старшего байта
brne    skip1 ;Если переполнения счётчика нет, уходим на выполнение изменения
              ;Если произошло переполнение счётчика
clr     r17   ;Здесь возвращаем минимальное значение компаратора
clr     r16   ;чтоб не было зацикливания регулировки

skip1:        ;Собственно запись счётчика в компаратор таймера 0
out     OCR1AH,r17
skip2:
out     OCR1AL,r16
ret
;*************************************************  *** 
omercury вне форума  
Непрочитано 03.02.2013, 12:08  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Энкодер + таймер

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

Сообщение от alvadep Посмотреть сообщение
Еще раз убеждаюсь, что утро вечера мудреней.
omercury, поправьте в PWMdown кое-что.
Почему только в PWMdown?
В PWMup то же самое.

[PHP]PWMup: ;Точка входа на увеличения
in r16,OCR1AL
inc r16 ;Инкремент и проверка переполнения младшего байта
brne skip2
in r17,OCR1AH
...........
PWMdown: ;Точка входа на уменьшение
in r16,OCR1AL
dec r16
cpi r16,255 ;Проверка переполнения младшего байта
brne skip2
in r17,OCR1AH[/PHP]

Последний раз редактировалось omercury; 03.02.2013 в 14:52.
omercury вне форума  
Непрочитано 03.02.2013, 13:03  
alvadep
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
alvadep на пути к лучшему
По умолчанию Re: Энкодер + таймер

Я имел в виду то, что в PWMdown Вы декрементируете R16, а проверку делаете по R17.
alvadep вне форума  
 
Опции темы

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

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, время: 10:08.


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