ソースを参照

Fix rtc_set on Teensy 4.0 (thanks blackketter)

fixes #464
teensy4-core
PaulStoffregen 4年前
コミット
536aa0ae13
1個のファイルの変更14行の追加5行の削除
  1. +14
    -5
      teensy4/rtc.c

+ 14
- 5
teensy4/rtc.c ファイルの表示

@@ -49,11 +49,20 @@ unsigned long rtc_get(void)

void rtc_set(unsigned long t)
{
SNVS_HPCR &= ~SNVS_HPCR_RTC_EN;
while (SNVS_HPCR & SNVS_HPCR_RTC_EN) ; // wait
SNVS_HPRTCLR = t << 15;
SNVS_HPRTCMR = t >> 17;
SNVS_HPCR |= SNVS_HPCR_RTC_EN;
// stop the RTC
SNVS_HPCR &= ~(SNVS_HPCR_RTC_EN | SNVS_HPCR_HP_TS);
while (SNVS_HPCR & SNVS_HPCR_RTC_EN); // wait
// stop the SRTC
SNVS_LPCR &= ~SNVS_LPCR_SRTC_ENV;
while (SNVS_LPCR & SNVS_LPCR_SRTC_ENV); // wait
// set the SRTC
SNVS_LPSRTCLR = t << 15;
SNVS_LPSRTCMR = t >> 17;
// start the SRTC
SNVS_LPCR |= SNVS_LPCR_SRTC_ENV;
while (!(SNVS_LPCR & SNVS_LPCR_SRTC_ENV)); // wait
// start the RTC and sync it to the SRTC
SNVS_HPCR |= SNVS_HPCR_RTC_EN | SNVS_HPCR_HP_TS;
}

void rtc_compensate(int adjust)

読み込み中…
キャンセル
保存