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

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

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

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

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

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

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

 
Опции темы
Непрочитано 26.05.2005, 15:02  
UserAVR
Гость
 
Сообщений: n/a
По умолчанию Таймеры AVR

Существует схема на AT90S2313.
На вход подается некая последовательность импульсов с переменным периодом следования(частота меняется примерно от 10 до 150 Гц)Контроллер передаёт импульсы с входа на выход.
По сигналу на другом входе он должен измерить длительность периода следующего входного импульса и на выходе сделать 2
коротких (вдвое)импульса за следующий (после измеренного) период входного.Началом первого является начало входного, а окончанием второго-окрнчание входного.Я понимаю что нужно сосчитать количество тиков таймера,за период входного импульса ,потом загрузив половину этих тиков в счётчик ,ждать прерывания от таймера.
Если конкретно, то меня интересует всего 4 вопроса:
1-как запустить (и остановить)таймер на счёт
2-где потом взять его "тики"
3-куда загрузить половину "тиков"
4-как запустить таймер в обратную сторону
Подскажите пожалуйста где взять пример для подражания.
Или контроллер АТ90S2313 это не может?
заранее спасибо
Реклама:
 
Непрочитано 26.05.2005, 23:24  
kHz
Частый гость
 
Регистрация: 12.03.2005
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kHz на пути к лучшему
По умолчанию Re: Таймеры AVR

нарисовал бы временную диаграмму.
kHz вне форума  
Непрочитано 27.05.2005, 11:09  
UserAVR
Гость
 
Сообщений: n/a
По умолчанию Таймеры AVR

Диаграмма несложная.Программа написана с удвоением импульса минимальной длительности(а они не все такие,хочется посимметричнее),используя временную задержку в холостых циклах. В этой же схеме применяется слияние двух входных импульсов в один выходной - это проще.

-- Прилагается рисунок: --

 
Непрочитано 30.05.2005, 21:29  
kHz
Частый гость
 
Регистрация: 12.03.2005
Сообщений: 21
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kHz на пути к лучшему
По умолчанию

Посмотри, может на мысль натолкнет. Программка была написана примерно за 10 мин (не все, придеться додумать)

//---------------------------------------------------------------
Int1: sbr r25,10000000b // Установить бит признак управления
reti // Флаги в основной программе не используются (поэтому и не портятся)
//---------------------------------------------------------------
Int0: sbrc r25,7
rjmp Set_dir // Если бит управления установлен
in r16,DirTimer
andi r16,11111000b
breq Ext // Если таймер не запущен
in r16,TCNTL
in r17,TCNTH // Считываются показания таймера
// Обработка времени (по сути дела деление на 4)
out TCNTH,r16_Date_high
out TCNTH,r16_Date_Low // Установка времени срабат. таймера
ldi r16,00000011b
out DirTimer,r16 // Включение таймера
ldi r18,4 // Счетчик =4
sbr r25,00000001b // Установить принуд вывод 0
reti
Set_dir:
cbr r25,10000000b // Обнуление признака управления
ldi r16,0
out TCNTH,r16
out TCNTL,r16 // Обнуление таймера
ldi r16,00000011b
out DirTimer,r16 // Включение таймера
Ext: reti
//---------------------------------------------------------------
T_Ovf: out TCNTH,r16_Date_high
out TCNTH,r16_Date_Low // Установка времени срабат. таймера
ldi r16,00000011b
eor r25,r16 // Инверсия бит принудит устан 0 и 1
dec r18 // Уменьшение счетчика
brne Ext // Если не дошли до конца
ldi r16,0
out DirTimer,r16 // Выключение таймера
cbr r25,00000011b // Обнуление бит принудит установки
reti
//---------------------------------------------------------------
Int_Reset:
// Инициализация стека
// Инициализация портов
// Инициализация прерываний
// Инициализация таймера
Begin: sbrc r25,0
rjmp Set0 // Признак принуд устан 0
sbrc r25,1
rjmp Set1 // Признак принуд устан 1
sbic PORTin,PINin
rjmp Set1 // Повторять входной сигнал
Set0: cbi PORTout,PINout
rjmp Begin
Set1: sbi PORTout,PINout
rjmp Begin
//---------------------------------------------------------------
kHz вне форума  
Непрочитано 01.06.2005, 10:01  
UserAVR
Гость
 
Сообщений: n/a
По умолчанию Таймеры AVR

Спасибо.Буду пробовать
 
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собираем глюки и "подводные камни" AVR и AVR Studi Don_Ambrosio Коллекция глюков 27 14.11.2010 12:24
Такие разные 555-е таймеры boor Коллекция глюков 12 24.06.2009 15:44
Таймеры rrenderr Микроконтроллеры, АЦП, память и т.д 10 28.05.2007 14:40


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


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