Например TDA7294

Форум РадиоКот • Просмотр темы - AtMega16 T1 ШИМ CTC прерывания по OCR - мин. длительность ?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб мар 07, 2026 22:49:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: AtMega16 T1 ШИМ CTC прерывания по OCR - мин. длительность ?
СообщениеДобавлено: Сб авг 18, 2012 15:45:55 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 101
Зарегистрирован: Ср фев 24, 2010 19:16:07
Сообщений: 680
Рейтинг сообщения: 0
Приветствую Форумчане!

Разместил этот же вопрос на easyelectronics...


в моей задаче мне нужно при помощи микроконтроллера avr генерить импульсы различной частоты и скважности, причем важна точность генерации.
например нужно генерить такой сигнал на ноге контроллера
L - низкий уровень
H - высокий уровень
число - длительность уровня в мкс
L 2.35; H 4.7; L 1.5; H 3.0; L 27.3 H 4.7 и так далее

то есть промежутки очень короткие...
по закону мерфи нужно что бы контроллер еще чем нибудь занимался в это время (гы,гы,гы, сам знаю :-( )

у меня возникла идея сделать эту генерацию при помощи таймера T1 в режиме CTC с прерыванием и сбросом по совпадению с OCR1

частота таймера - максимальная, 16 мгц (такт меги от кварца)
прескалер = 1

тогда один такт таймера это 0.0625 мкс (1\16000000)

я посчитаю длительности сигналов и засуну их в массив, получиться чтото вроде
2.35\0.0625=37.5==38
4.7\0.0625=75.2==75
1.5\0.0625=24
и так далее

теперь самый интересный вопрос: а сколько времени занимает вход и выход из прерывания в подобных случаях?

просто мне нужно в прерывании выполнить как минимум:
Код:
     IN R2, SREG  //- сохранить флаговый регистр

// здесь устанавливаем бит порта в состояние что нам нужно
     OR  R3, R3    // проверим на ноль флаг фазы, сначала R3=0
     BREQ PB0_L  // переход на сброс бита порта

     SBI PORTB, 0 // установили бит порта в 1
     RJMP CONT   // продолжаем

PB0_L: // здесь сброс бита порта
      CBI PORTB, 0 // сбросили бит порта в 0

CONT:  // продолжаем
      COM R3     // инвертируем фазу для следующего захода
      LPM  R4, Z+ // читаем следующую длительность фазы сигнала
      OUT OCR1AH, R5 // примем что R5=0 всегда
      OUT OCR1AL, R4
      OUT SREG, R2
      RETI


код писал по памяти, могу ошибиться в переходах, точно не помню как правильно называется OCR1...

ну так вот собственно вопрос - какую минимальную длительность фазы сигнала я смогу таким образом обеспечить ?

вернее по программе выше я смогу посчитать и сам.. а вот сколько тактов я потеряю на входе выходе из такого прерывания прерывания ?

если не понятно написал - скажите попробую еще как нить объяснить..

p.s. может есть какие то другие способы решения моей задачи ?


Вернуться наверх
 
 Заголовок сообщения: Re: AtMega16 T1 ШИМ CTC прерывания по OCR - мин. длительност
СообщениеДобавлено: Сб авг 18, 2012 16:44:13 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
Цитата:
теперь самый интересный вопрос: а сколько времени занимает вход и выход из прерывания в подобных случаях?
Ну видимо аналогично командам CALL (4) + переход по вектору указалелю (3) и RET (4).


Последний раз редактировалось zero648 Сб авг 18, 2012 16:50:04, всего редактировалось 1 раз.

Вернуться наверх
 
 Заголовок сообщения: Re: AtMega16 T1 ШИМ CTC прерывания по OCR - мин. длительност
СообщениеДобавлено: Сб авг 18, 2012 16:50:01 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 101
Зарегистрирован: Ср фев 24, 2010 19:16:07
Сообщений: 680
Рейтинг сообщения: 0
zero648 писал(а):
Цитата:
теперь самый интересный вопрос: а сколько времени занимает вход и выход из прерывания в подобных случаях?
Ну видимо аналогично командам CALL (4) + переход по вектору указалелю (2 или 3) и RET (4).


эхх.. с моей задачкой "видимо" большой риск - уж больно мало тактов на 1.5 мкс остается - всего 24 такта - придется как то этот интервал nop'ами реализовывать, но надежда умирает последней...

не могу найти в документации про это..

вот и решил спросить...


Вернуться наверх
 
 Заголовок сообщения: Re: AtMega16 T1 ШИМ CTC прерывания по OCR - мин. длительност
СообщениеДобавлено: Вс авг 19, 2012 06:04:27 
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 101
Зарегистрирован: Ср фев 24, 2010 19:16:07
Сообщений: 680
Рейтинг сообщения: 0
спасибо всем думавшим - вопрос снят.

если кому будет интересно ответ дали здесь http://forum.easyelectronics.ru/viewtop ... 66#p205266

p.s. если админ сочтет ссылку неуместной - то можно ее удалить к собачьим хвостам :-)


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y