arduino software reset

http://blog.naver.com/PostView.nhn?blogId=eosuntaek&logNo=50001608290&redirect=Dlog&widgetTypeCall=true

리셋하시고 싶은 부분에 #asm("jmp 0")삽입해 보세요..


마이크로 비젼 질문게시판에 이런글이 잇던데 참고 하세요..
iar 컴파일러를 이용해서 avr 사용시 하드웨어는 reset을 하지않고 소프트웨어 리셋을 할 수있는 방법이있는지요?
program counter / stack pointer 초기화 가능...


답변



watch dog를 사용하지 않으시려면요,,,
이렇게 해보시죠,,함수 포인터 입니당.
terminal로 A를 100개 보내고 리셋되는게 반복되는 예제입니다.
포인터가 시작번지를 가리키고 잇으며 포인터함수를 호출할경우 리셋으로 점프하게되므로
자의적으로 혹은 외부 상태에 맞게 코딩하시면 리셋되리라 봅니다..그럼,,

void main (void)
{
void (* reset)(void)=0x0000;
unsigned char temp;
....중간생략
while(1)
{
for(temp=0;temp<100; temp++) sendbyte('A');
(*reset)(); //또는 (void)(*reset)(); // CODE 0번지로 점프 ->리셋과 같음,
}
}
[출처] AVR 소프트웨어 리셋|작성자 Alan

댓글

이 블로그의 인기 게시물

4,5,6 띠 저항의 색띠를 읽는 법(띠저항 값)

수지에서 인천공항 리무진 버스 (인천공항버스정보)(2022년3월업데이트)

수지에서 김포공항 리무진 버스 ( 2022년 3월 업데이트 )