회원가입 ID/PW 찾기
AA
 RTC_SetWakeUpCounter(1023);

void RTC_SetWakeUpCounter(uint16_t RTC_WakeupCounter)
{
  /* Disable the write protection for RTC registers */
  RTC->WPR = 0xCA;
  RTC->WPR = 0x53;


  /* Configure the Wakeup Timer counter */
  RTC->WUTRH = (uint8_t)(RTC_WakeupCounter >> 8);
  RTC->WUTRL = (uint8_t)(RTC_WakeupCounter);

  /* Enable the write protection for RTC registers */
  RTC->WPR = 0xFF; 
}

  RTC->WPR = 0xCA;
  RTC->WPR = 0x53;
이게 왜 이러는지 모르겠습니다 . 데이터시트에 보면 읽기보호에 RTC레지스터 쓰기 금지처리 한다고 나와있는것 같은데 왜 금지인가요??

그리고 마지막에   RTC->WPR = 0xFF; 인데 0xFF 인건지 왜 해주는건지 모르겠습니다 .

그리고 이게 wakeupcounter인데 카운터 하고 인터럽트 오버플로우 되면 인터럽트 되는건가요? 계산은 어떻게 하는건가요?

데이터시트를 잘 봐도 이해가 안갑니다. 물론 영어 실력이 딸려 이해가 더더욱 안될수도 있고요 
혹시 아시는분 있으시면 답변 부탁드립니다, 

감사합니다.
댓글 1
  • No Profile

    RTC의 Part Number를 모르니 정확한 답변을 하기가 곤란하군요.

    비밀인지 모르지만 최소한의 정보는 제공해야 하지 않을까요.


    일단 샘플코드를 보고 유추해보면

    WPR은 아마도 Write Protect Register를 말하는 것 같군요.

    잘못된 코드나 폭주로 인해 RTC의 Register의 값이 바뀌는 걸 방지하기 위하여 이런 메커니즘을 많이 사용하지요.

    즉 원하는 Register의 값을 바꾸기 위해서는 일단 Write가 가능하도록 해야겠지요.(보통 default로 Write protect가 되어있고)

    그래서 정해진 시퀀스에 따라 0xCA와 0x53을 순서대로 WPR에 써넣으면  보호된 Register의 값을 바꿀 수 있게 됩니다.

    바꾸고 나면 다시 보호되도록 해야겠지요. 그래서 마지막에 0xff를 써넣는 것입니다. 물론 다른 값으로 써넣어도 되는지는 알 수 없지만...

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
3 머신러닝, AI & 알고리즘 HOT오목 게임 알고리즘3 새로운하늘 3468 2010.03.29
2 머신러닝, AI & 알고리즘 HOT지하철 최단거리 알고리즘은?2 지워나 2870 2008.06.20
1 머신러닝, AI & 알고리즘 HOT순차 프로그램에 대한 간단한 알고리즘과 재귀 알고리즘의 속도 테스트 - by 아크마7 아크마 3083 2007.08.08
  • 열매 맺지 않는 과일 나무는 심을 필요가 없고, 의리 없는 벗은 사귈 필요가 없다.
    - 명심보감
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.