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

430FR4 RTC Modulo регистр

Мне надо по событию однократно изменить период RTC.

Примерно такой код:

  RTCMOD = rt;                // скорректировать
  RTCCTL = RTCSS__XT1CLK | RTCPS__64 | RTCSR;    // запретить прерывания от RTC + загрузить значение теневого регистра
  // софтовая задержка
  RTCMOD = RTCSEC(120);        // Начать заново
  RTCIV;                    // сбросить прерывания от RTC
  RTCCTL |= RTCIE;            // разрешить прерывания от RTC

Процессор ведёт себя так, как будто я RTCMOD первый раз не загружаю.

В документации указано, что по RTCSR я его загружаю принудительно. А второй раз он должен загрузиться только при переполнении.

Тем не менее таймер сбрасывается отсчитывается 2 минуты и прерывание.

То есть ведёт себя так, как будто первой загрузки не было.

Кто сталкивался и как бороться?

 

из документации

The value in RTCMOD is loaded to the shadow register under two conditions:

1. When the counter reaches the value in the shadow register, which also triggers an overflow signal and

clears the counter value.

2. When a software reset is triggered by software writing logic 1 to the RTCSR bit in the RTCCTL

register.

Because the shadow register always updates its value from RTCMOD, software must set RTCMOD

before the hardware overflow occurs. Using the software reset lets software immediately set the target

modulo value into shadow register without waiting for the next overflow. If the value in RTCMOD is not

updated when the hardware overflow occurs, the shadow register fetches the previous modulo value

stored in RTCMOD. If RTCMOD is changed multiple times before the overflow, only the last value is

loaded to the shadow register.

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


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

Короче хомут нашёл.

Я ставил задержку, там где написано "софтовая задержка"

Но написал её типа while(RTCCNT<2);

Но не учёл что сброс таймера может не пройти. Судя по всему он и не проходит.

То есть задержку лучше поставить типа for(int i=0;i<5;i++) RTCNT;

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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