2015-01-20 4 views
0

Я пытаюсь создать проект с msp430g2553. Проблема, с которой я сталкиваюсь, пока я кодирую. Что мне нужно сделать:сталкиваются с проблемой при работе с таймером и прерываниями MSp430

  1. Я включил входы на одном из контактов сообщения msp. Таймер запускается по нарастающему фронту входа.
  2. Он подсчитывает определенное значение, хранящееся в TACCRO.
  3. Это продолжается навсегда.

Теперь то, что я должен сделать здесь:

  1. Приращение переменной гр на 1, когда значение в TACCRO достигается.
  2. А также выполните некоторые вычисления со значением счетчика, хранящегося в регистре TAR.

Проблема Я не могу понять, где я должен написать код для вычисления со значением в TAR, я должен написать его в ISR только или я должен написать это в основном коде. Неужели кто-нибудь может мне помочь?

P.S Я пишу вопрос здесь в первый раз, поэтому, если требуется дополнительная ясность, пожалуйста, дайте мне знать.

+0

* Когда вы должны читать TAR? –

+0

Я читаю его, как только поднимается фронт входа, после остановки таймера. –

ответ

0

Это зависит от того, чего вы хотите достичь в конце, но с информацией, которую вы предоставляете, я думаю, что самый простой и простой способ сделать это - использовать ISR для соответствующего счетчика и писать свой код там.

Помните, что ISR должны быть короткими и быстрыми, поэтому процессор может выполнять другие задачи. Если ваши вычисления сложны или процесс тяжелый, я бы рекомендовал хранить значения в глобальных переменных, установить глобальный флаг и позволить сложным вычислениям выполнять основной код через цикл, который проверяет и сбрасывает этот флаг.

Надеюсь, это поможет.

+0

Это очень помогает. Спасибо. –

+0

Может у (@asier) сказать мне еще одну вещь. Если бы я хотел написать два разных ISR, то как бы я мог указать в коде, какой ISR соответствует тому, который inerrupt? –

+0

@AbhishekTyagi Это зависит от компилятора, и это другой вопрос. –

Смежные вопросы