2014-05-20 3 views
4

간단한 게임을 코딩 중이며 MSP430F5529 마이크로 컨트롤러에서 테스트하려고합니다. 발생한 문제는 워치 독 타이머와 관련이 있습니다.MSP430F5529 초기화 중 워치 독 타이머 트리거

작성한 코드로 인해 장치가 재설정되어 워치 독 타이머 문제가 발생합니다. 필자는 주 코드의 첫 번째 줄, 사전 초기화 코드 (pre-initialisation code) 같은 것조차 중단해야한다고 가정합니다. 내가 옳은 길을 가고 있는지 아니면 문제가 코드의 다른 섹션을 거짓말하고 있는지 알아 보겠습니까?

하는 것이 더 명확하게하기 위해, 내 주요 코드 (간단한 형태) 다음과 같습니다

  1. 중지 워치 독 타이머.
  2. 보드 (GPIO 핀)를 초기화하십시오.
  3. CPU의 Vcore 전압을 설정하십시오.
  4. 참조 결정 (XTAL)을 설정하십시오.
  5. 시스템 시계를 설정하십시오.
  6. 인터럽트를 활성화합니다 (전역 적으로).
  7. 실시간 시계 (RTC)를 설정합니다.
  8. LCD 디스플레이를 설정하십시오.
  9. 단추를 초기화하십시오.
  10. 사용자 입력을 위해 적절한 LPM 모드로 대기하십시오.

내가 아는 한,이 코드 시퀀스는 옳다.

답변

6

다음은 몇 가지 생각입니다. 워치 독을 먹일 계획이 없다면 워치 독을 명시 적으로 비활성화해야합니다. init 코드 이전에 수정하지 않고 (실행 전 코드를 개인적으로 수정하고 실행 시간을 늘리지 않는 한)이 작업을 수행하지 않아도됩니다. 메인 시작시에 다음과 같은 경우를 제외하고 OK 여야합니다. 정적 배열을 사용하면 초기화 이전 코드에서 0으로 초기화 될 수 있습니다. 크기가 클 경우 다소 시간이 걸릴 수 있습니다. 초기화 전 코드를 종료하기 전에 워치 독 트리거를 사용하기에 충분할 수 있습니다. 또한 적어도 일부 MSP430의 경우 클록 레지스터에 쓰기 전에 암호로 잠금을 해제해야합니다. 그렇지 않으면 칩이 재설정됩니다. 여기

사전 초기화 코드에서 감시를 논의 링크가 이미 그것을 보지 않은 경우 : http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/267695.aspx

+0

왜 사전 초기화 코드에서 그것을 할 수없는 제안합니까? – gbudan

+0

나는 초기화 전 코드에서 그렇게하지 않을 것을 제안하지 않았다. 나는 네가해서는 안된다고 했어. 아마 "해서는 안된다"라고해서는 안됩니다. 이는 사전 초기화 코드를 부정적인 것으로 바꾸는 것을 의미 할 수 있습니다 (귀하가하는 일을 알지 못하는 한) 또는이 특별한 경우가 자주 발생하지 않습니다 (이는 내 부분에 대한 가정입니다) . – gtozzi

관련 문제