현재 위치
  1. 게시판
  2. Q&A

Q&A

Q&A

상품 게시판 상세
MPAINO-16A16R에 개발 관련 질문 입니다.
ILOGICS (ip:) 평점 0점   작성일 2023-02-16 추천 추천하기 조회수 154

 아두이노제품을 리셋시키기 위해서는 3가지 방법이 있습니다.


1. 하드웨어 리셋버튼을 이용한다.


2. 작성자분께서 언급하신 asm volatile("jmp 0");을 이용한다.


3. watchdog을 이용한다.


1의 경우 케이스형태의 제품군은 리셋포트를 없는 경우라 제외한 2, 3 을 보왔을때


2가지 방법에 차이가 있어서 설명드립니다.


2번 방식인 경우도 리셋이 되긴하지만 해당 방법에서는 프로그램 자체는 리셋이 되긴하지만 출력되는 포트자체는 리셋이 되지 않습니다.


예를 들자면 해당방법으로 1초뒤 LED를 키고 프로그램 리셋하라고 명령을 주면 초기화 되어서도 LED가 켜져있음을 확인할 수 있습니다.


이 방법을 보안하기 위해 Watchdog 기능을 이용한 리셋방법을 권장드립니다.


watchdog기능은 일정기간을 설정해두고 해당기간 중 리셋이 걸리지 않으면 아두이노를 리셋합니다.


다음은 watchdog을 이용한 리셋 구문입니다.


void setup() {

  Serial.begin(115200);

  delay(1000);

  Serial.println("start");

}



void loop() {

  if (millis() >= 5000) {

    Serial.print("Time: ");

    Serial.println(millis());

    WDTCSR |= 0b00011000;  //와치독 타이머가 16ms내에 리셋신호 없을시 아두이노 리셋한다.

    WDTCSR |= 0b00001000;

    WDTCSR |= 0b00000000;

    delay(20);

  }

}


위 구문을 참고하셔서 프로그램 작성하시면 됩니다.









[ Original Message ]

MPAINO-16A16R에 개발 관련 질문 입니다.


제품을 아두이노 IDE에서 아두이노 용도로 사용하려고 합니다.


제품에 리셋 포트 또는 버튼이 없는 형태라서...


리셋 기능을 사용하기 위하여,


asm volatile (jmp 0);


펑션을 사용하려고 하는데요...


문제가 없는지 확인 부탁 드리고,


혹시 다른 좋은 방법이 있다면 조언 부탁 드립니다.

첨부파일
비밀번호 삭제하려면 비밀번호를 입력하세요.
댓글 수정

비밀번호 :

/ byte

비밀번호 : 확인 취소