홈>
많은 소비자 기기처럼 작동하는 재설정 버튼이있는 ATmega328을 사용하여 회로를 만들려고합니다.
<올>이 행동을 달성하는 가장 좋은 방법은 무엇입니까? 두 개의 핀이 필요하다고 생각합니까? 수동 구성 요소 만 사용하여 수행 할 수 있습니까?
감사합니다!
- 답변 # 1
- 답변 # 2
상태 머신 사용 왕의 프레스를 감지합니다. 완료되면 하드웨어 또는 소프트웨어 재설정을 트리거하거나 재설정 벡터로 이동하여이를 시뮬레이션 할 수 있습니다. 변수를 명시 적으로 초기화하는 등이를 지원하는 코드를 작성해야합니다.
- 답변 # 3
RSTDISBL(높은 퓨즈의 비트 7)을 설정하여 외부 재설정을 비활성화하고재설정PC6으로 고정하여 프로그램의 재설정 동작을 관리합니다.
두 번째 부분은 재설정 버튼을 눌렀을 때 캡처하는 것입니다. 핀이 변경 될 때PCINT1 처리기 ISR에 코드를 넣으십시오 (PCINT14핀 기능). Arduino 보드를 프로그래밍하는 경우 재설정 버튼을 위로 당깁니다 (누르면 LOW가되고 릴리스는 HIGH가됩니다).
길게 누르거나 짧게 누르는 것은 타이머 문제입니다. 요구 사항에 따라 길게 누르면 마이크로 컨트롤러가 재설정되기 전에 일부 EEPROM 값 또는 외부 상태를공장 기본값으로 복원합니다.
이 C 스 니펫은 짧게 또는 길게 누르면 마이크로 컨트롤러를 재설정합니다 (워치 독 타이머 기능) :
#include <avr/wdt.h> // ... wdt_enable(WDTO_15MS); for (;;) {}
관련 자료
- html - 같은 그룹의 다른 라디오 버튼을 선택한 후 라디오 버튼을 재설정하는 방법
- javascript - 간격 중 다른 버튼을 클릭하여 간격 중지 및 재설정
- javascript - 버튼을 클릭하여 모듈에 설명 된 기능을 호출하는 방법은 무엇입니까?
- javascript - 버튼으로 작업하기 위해 페이지로드시 호출되는 함수를 어떻게 얻습니까?
- c# - 기능이 버튼으로 트리거되면 WPF 바인딩이 작동하지 않습니다
- c# - 클릭 이벤트의 버튼에서 보내는 Enter 키 누르기 시뮬레이션?
- c# - XamarinAndroid의 단추에서 비동기 비 람다 함수를 호출하는 방법
- javascript - 머티리얼 UI 팝 오버가 버튼 기능을 차단합니다Reactjs
- javascript - React Native에서 버튼을 누를 때 API에서 다시 가져 오기
- javascript - 버튼 클릭시 무작위 함수를 어떻게 호출합니까?
- javascript - bootstrap-tour click () 함수가 버튼을 클릭하지 않음
- html - 자바 스크립트를 사용하여 버튼을 누르면 임의의 노래 재생
- python - Ttk Indeterminate 진행률 표시 줄 버튼 누름
- javascript - ScrollView는 네이티브 반응에서 버튼을 누르면 프로그래밍 방식으로 스크롤합니다
- javascript - 사용자 비밀번호를 재설정하기 위해 Firebase 클라우드 기능을 만드는 방법
- python 3.x - Yahoo Finance에서 셀레늄을 사용하는 버튼 누르기가 작동하지 않습니다
- ios - 사용자가 키보드에서 리턴 버튼을 누를 때 키보드를 닫는 방법은 무엇입니까?
- javascript - 이전 버튼 및 재설정 만들기
- python - 키와 버튼 위젯을 Tkinter의 동일한 기능에 어떻게 바인딩 할 수 있습니까?
- javascript - 한 번만 작동하는 텍스트 상자에 버튼 값을 가져 오는 onclick () 함수
1 개의 버튼, 1 개의 저항기, 1 개의 커패시터 및 1 개의 GPIO 핀 (리셋 핀 외에)으로 수행 할 수 있습니다.
이 회로 시뮬레이션 – CircuitLab을 사용하여 만든 회로도
버튼을 누르면 RESET 핀에 LOW 펄스가 발생합니다 (USB 인터페이스와 똑같은 방식으로).
시동 과정에서 선택한 GPIO 핀을 읽습니다. LOW이면 버튼을 계속 누르고 있습니다. HIGH이면 해제되었습니다.
일반 부트 로더와 함께 Arduino를 사용하는 경우 부트 로더 자체에 2 초 지연이 발생합니다 (충분할 수 있음). 또는 실수로 설정을 재설정하지 않도록 버튼을 놓을 시간이 충분한 지 확인하기 위해 버튼을 읽기 전에 프로그램에서 자체 지연을 설정해야합니다.