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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 04.01.2012, 21:21  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Mega-8, захват таймера

Здравствуйте, излазил интернет, но никак не могу найти пример на ассемблере как организовать захват таймера\счётчика.
Понял что нужно в TIMSK установить TICIE1 (разрешить прерывание по захвату), понял что на ногу ICP1(PB0) подаём сигнал при изменении которого срабатывает прерывание, то что в регистре OCR1 будет количество тиков таймера которые я измеряю. Но как всё это написать никак не разберусь. Знаю, что это пять - шесть строчек, напишите пожалуйста их.
Спасибо.
Реклама:
putmannn вне форума  
Непрочитано 04.01.2012, 21:41  
aleksandr_zh
Гражданин KAZUS.RU
 
Регистрация: 17.11.2011
Адрес: Брянская область, РФ
Сообщений: 699
Сказал спасибо: 693
Сказали Спасибо 428 раз(а) в 213 сообщении(ях)
aleksandr_zh на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

могу только в BASCOM
aleksandr_zh вне форума  
Непрочитано 05.01.2012, 09:24  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Нужно только настроить 2 старших бита в тццр1б и в компараторе не включать режим захвата. Прерывания включать не обязательно (если не нужны). После этого захват начинает работать при изменениях уровня на ножке, чтобы отключить захват по ножке - включаем в компараторе захват и отключаем компаратор
niXto вне форума  
Сказали "Спасибо" niXto
putmannn (05.01.2012)
Непрочитано 06.01.2012, 04:22  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Сообщение от niXto Посмотреть сообщение
Нужно только настроить 2 старших бита в тццр1б
И одного бита может хватить (ICNC1 - по ситуации, а ICES1 - в сивисимости от нужного перепада)
Сообщение от niXto Посмотреть сообщение
в компараторе не включать режим захвата.
А компаратор тут при чём?

Сообщение от niXto Посмотреть сообщение
Прерывания включать не обязательно (если не нужны).
Согласен, завистит от ситуации.


Сообщение от niXto Посмотреть сообщение
После этого захват начинает работать при изменениях уровня на ножке, чтобы отключить захват по ножке - включаем в компараторе захват и отключаем компаратор
В меге-8 захват как-то по другому сделан (по сравнению с м-128 )?

Пример для меги-128:
Код:
;      	TCCR1B = 0x00; //stop
       LDI       R16,0x00       Load immediate
       OUT       0x2E,R16       Out to I/O location
;       TCNT1H = 0x00; //setup
       OUT       0x2D,R16       Out to I/O location
;       TCNT1L = 0x00;
       OUT       0x2C,R16       Out to I/O location
;       TCCR1A = 0x00;
       OUT       0x2F,R16       Out to I/O location
;       TCCR1B = 0x41; //start Timer
       LDI       R16,0x41       Load immediate
       OUT       0x2E,R16       Out to I/O location
;       TIMSK = 0x20; 
       LDI       R16,0x20       Load immediate
       OUT       0x37,R16       Out to I/O location

Последний раз редактировалось _Артём_; 06.01.2012 в 04:24.
_Артём_ вне форума  
Непрочитано 07.01.2012, 15:45  
-Dreamer-
Частый гость
 
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
-Dreamer- на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Как-то приводил пример использования захвата для измерения периода.
Правда, тогда, по быстрому «накидал», добавил пару комментарий..
https://kazus.ru/forums/showthread.p...814#post298814
-Dreamer- вне форума  
Непрочитано 07.01.2012, 20:41  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Спасибо, я разобрался. Правда по прерыванию захвата таймера я плюсую переменную, а потом из неё беру количество натикавших тиков, потому что TCNT1 считает как я понял в тикак указанных в CS10-CS12, мне это не удобно, т.к. придётся делить потом на OCR1A. Да и если честно не получилось у меня извлечь из TCNT1 значения..... в даташите написано - что он сохраняется при захвате в OCR1, но и там абракадабра получалась.... вобщем сам считаю вот так
Цитата:
ldi temp, 1
add sek, temp
clr temp
adc sekh, temp
думаю это несильно загружает проц.
putmannn вне форума  
Непрочитано 07.01.2012, 21:51  
-Dreamer-
Частый гость
 
Регистрация: 22.03.2010
Адрес: Севастополь
Сообщений: 26
Сказал спасибо: 5
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
-Dreamer- на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Простите, но на первый взгляд, ничего не понял в вашем алгоритме, да и захват в OCR1 – это у вас опечатка?
Захват возможен либо при изменении фронта на выводе ICP1 или от компаратора. В любом случае значение счетчика переписывается в ICR1.
Все, что вам нужно это прочитать этот регистр: in r1, $26, in r2,$27.
-Dreamer- вне форума  
Непрочитано 07.01.2012, 22:31  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Сообщение от _Артём_ Посмотреть сообщение
А компаратор тут при чём?
При том, что если включить захват по прерыванию компаратора, то ножка ИЦП1 перестает работать((
niXto вне форума  
Сказали "Спасибо" niXto
_Артём_ (08.01.2012)
Непрочитано 08.01.2012, 15:00  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Сообщение от niXto Посмотреть сообщение
При том, что если включить захват по прерыванию компаратора, то ножка ИЦП1 перестает работать((
Не знал (или забыл, скорей всё-таки не знал - AC редко используемая вещь в АВР). Полезная функция в принципе, может пригодится. Спасибо.
_Артём_ вне форума  
Непрочитано 09.01.2012, 07:17  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Mega-8, захват таймера

Сообщение от _Артём_ Посмотреть сообщение
Не знал (или забыл, скорей всё-таки не знал - AC редко используемая вещь в АВР). Полезная функция в принципе, может пригодится.
Да, это используется для отключения захвата (например, если регистр ИЦР1 используется как ТОП-регистр, при достижении значения которого таймер должен обнуляться) - переключаем захват на компаратор и отключаем компаратор. Срабатывания захвата не произойдет никогда, пока не включим компаратор
niXto вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Захват и сжатие видео на at91sam9xe, потянет-ли? svad0 Микроконтроллеры, АЦП, память и т.д 3 14.12.2011 09:57
Видeо захват с экрана. Luzkov Видеотехника 9 04.05.2008 20:45
Захват движения X-Shadow Электроника - это просто 10 24.12.2005 16:48
[Решено] Захват пакетов в сети Ethernet 100 Mbit Виктор Cемёнов Делимся опытом 3 18.07.2005 14:51


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot