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

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

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

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

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

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

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

 
Опции темы

Таймеры AVR

Непрочитано 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
Сообщений: 17
Сказал спасибо: 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
Сообщений: 17
Сказал спасибо: 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, время: 17:33.


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