Функции синхронизации на MSP430FR6989 в C - PullRequest
0 голосов
/ 16 апреля 2020

Для проекта я хочу определить, сколько времени займет функция. Для этого я думал об использовании TimerA TA0 и захвата. Однако после просмотра документации мне стало интересно, можно ли перехватить таймер с помощью внутреннего «сообщения». В таблице данных (http://www.ti.com/lit/ds/symlink/msp430fr6989.pdf стр. 87, таблица внизу страницы) мне не совсем понятно, как это сделать. В нем указаны выводы порта, которые можно использовать, но я (очевидно) не заинтересован в этом. Таким образом, я думал, смогу ли я написать в регистратор TAxIV, чтобы просто установить флаг прерывания самостоятельно, но я абсолютно не уверен, сработает ли это (я так не думаю, но я не знаю почему ), Я мог бы использовать это для захвата таймера.

Я также уже посмотрел пример кода, но там они используют ACLK для в качестве входного сигнала. Так что это тоже не очень полезно.

С уважением и заранее спасибо

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Ответ (все спасибо go КЛ., См. Выше, кто дал ответ):

для инициализаций:

TA0CCTL1 = CM_3 | CCIS_1 | SCS | CAP; // could put in interrupt here
TA0CTL = TASSEL__SMCLK | MC__CONTINUOUS; // setting the timer up with the SMCLK

и для использования, что означает захват таймер:

TA0CCTL1 ^= CCIS0 // TA0CCR1 = TA0R, toggling the CCIS0 bit to switch between Vcc and GND

и затем просто считывание регистра захвата.

Этот ответ здесь, чтобы его было легче читать, полный ответ см. В моем разговоре с CL. выше, кто дал мне ответ.

0 голосов
/ 16 апреля 2020

Как показано на блок-схеме Timer_A (рисунок 25-1) в Руководстве пользователя, сигнал захвата должен поступать с одного из четырех входов захвата.

Последние два входа всегда подключены к GND и V CC, поэтому вы можете инициировать захват вручную, переключаясь между этими двумя входами (см. Раздел 25.2.4.1.1).

...