Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

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

 
Опции темы

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

Непрочитано 02.02.2013, 19:17  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Энкодер + таймер

Здравствуйте, подскажите как с помощью энкодера менять регистры сравнения таймера Т1. мк
Реклама:
Senay76 вне форума  
Непрочитано 02.02.2013, 19:26  
Арктур
Почётный гражданин KAZUS.RUN
 
Аватар для Арктур
 
Регистрация: 29.10.2012
Сообщений: 2,930
Сказал спасибо: 7
Сказали Спасибо 3,471 раз(а) в 1,771 сообщении(ях)
Арктур на пути к лучшему
По умолчанию Re: энкодер + таймер

http://chipenable.ru/index.php/progr...or-na-avr.html
Арктур вне форума  
Непрочитано 02.02.2013, 21:05  
Senay76
Частый гость
 
Регистрация: 19.10.2010
Сообщений: 35
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Senay76 на пути к лучшему
По умолчанию Re: энкодер + таймер

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

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

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

Я не очень помню ассемблер. Но я бы сделал так: при прерывании инкрементировать младший регистр, при установке флага переполнения инкрементировать старший регистр.

А какой у Вас контроллер?

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

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

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

Сообщение от swat24 Посмотреть сообщение
Я не очень помню ассемблер. Но я бы сделал так: при прерывании инкрементировать младший регистр, при установке флага переполнения инкрементировать старший регистр.

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

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

Senay76,
Хорошо, Вы считывали значение регистров в регистры А,В и там сравнивали и прибавляли 1 к младшему, и после переполнения не устанавливался бит?

Последний раз редактировалось swat24; 02.02.2013 в 23:38.
swat24 вне форума  
 
Опции темы

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

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


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