Перейти к содержанию
    

Концептуальный вопрос о таймерах

Нужен контроллер с таймером, который сбрасывается по перепаду на входе на аппаратном уровне. Не программно, а именно аппаратно.

 

В идеале к этому таймеру еще хотелось бы MAT регистр, который при достижении указанного значения генерирует прерывание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нужен контроллер с таймером, который сбрасывается по перепаду на входе на аппаратном уровне. Не программно, а именно аппаратно.

В идеале к этому таймеру еще хотелось бы MAT регистр, который при достижении указанного значения генерирует прерывание.

Хм.

i8052 :) и все его клоны.

TIMER2 умеет загружаться 16-битным значением по спаду на ноге T2EX.

Правда, по досчёту до FFFF он тоже перезагрузится, но это можно выяснить по флагам прерывания (вектор один, но дальше по битам EXF2 и TF2 можно разгрести - это его только что загрузили внешним спадом или он переполнился) и предистории.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

[i8052 и все его клоны.

TIMER2 умеет загружаться 16-битным значением по спаду на ноге T2EX.

Правда, по досчёту до FFFF он тоже перезагрузится, но это можно выяснить по флагам прерывания (вектор один, но дальше по битам EXF2 и  TF2 можно разгрести - это его только что загрузили внешним спадом или он переполнился) и предистории.

Ну вот, опять 51 :(

Спасибо за ответ!

 

Неужели в продвинутых архитектурах этого нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такая функция есть у Fujitsu. 16-bit reload timer может перезагружаться заданным значением при обнаружении заданного фронта на ноге. Кроме того, можно использовать InputCapture - потом в прерывании записанное по фронту значение вычитать из текущего значения таймера. Но это слегка через зад :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите в сторону атмеловых АРМ Похоже там есть такой вариант настройки

Да, есть такое! Спасибо!

 

Each channel is organized around a 16-bit counter. The value of the counter is incremented at each positive edge of the selected clock. When the counter has reached the value 0xFFFF and passes to 0x0000, an overflow occurs and the COVFS bit in TC_SR (Status Register) is set.

 

The current value of the counter is accessible in real time by reading the Counter Value Register, TC_CV. The counter can be reset by a trigger. In this case, the counter value passes to 0x0000 on the next valid edge of the selected clock.

 

A trigger resets the counter and starts the counter clock. Three types of triggers are common to both modes, and a fourth external trigger is available to each mode.

 

The following triggers are common to both modes:

• Software Trigger: Each channel has a software trigger, available by setting SWTRG in TC_CCR.

• SYNC: Each channel has a synchronization signal SYNC. When asserted, this signal has the same effect as a software trigger. The SYNC signals of all channels are asserted simultaneously by writing TC_BCR (Block Control) with SYNC set.

• Compare RC Trigger: RC is implemented in each channel and can provide a trigger when the counter value matches the RC value if CPCTRG is set in TC_CMR.

 

В LPC21xx такого нет, придется заводить вход на MAT, затем по прерыванию вычислять "фазовую" поправку для таймера (разницу между показаниями своего таймера, тикающего от кварца, и внешнего таймера, который выдает сихросигнал в положении 0).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...