답변:
AVR의 I / O 포트는 리셋시 INPUT / Tri-State / Hi-Z (DDRx = 0x00)로 설정됩니다. 대부분의 마이크로 컨트롤러 (모두는 아님)가이 동작을합니다. 핀이 들어가는 것이 가장 안전한 상태입니다. 따라서 포트를 사용하여 입력으로 자동 설정 될 수 있습니다.
ATmega16에서 발췌 한 일부 내용은 다음과 같습니다.
포트 C 핀은 클럭이 작동하지 않더라도 리셋 조건이 활성화되면 3 상태로 표시됩니다.
데이터 시트의 내용에 관계없이 포트 초기화는 항상 좋은 생각입니다.
데이터 시트에 아무 것도 표시되지 않으면 완전히 중요한 아이디어입니다.
프로그램이 실행될 때 발생하는 상황에 관심이있는 경우 포트 데이터 내용 만 정의하면됩니다.
결과에 신경 쓰지 않으면 포트 데이터 비트를 설정할 필요가 없습니다 :-).
제조업체가 데이터 시트에서 포트 데이터 비트가 설정되거나 지워 졌다고 명시 적으로 말하면 어쨌든 직접 초기화하는 것이 좋습니다. "경계 조건"은 루프 시작, 루프 끝, 원형 버퍼 랩 라운드 포인트 등 대부분의 문제가 발생하는 위치입니다. 프로세서 시작은 하드웨어에 해당합니다. 소음과 결함이 있고 사람들이있는 현실 세계에서, 당신이 할 수있는 한 프로그램의 운명을 맡는 것은 정말 좋은 생각입니다. 포트 초기화는 이것의 쉬운 부분입니다.
재설정시 레지스터 나 SRAM은 초기화되지 않으며 일부 주변 장치 레지스터 만 초기화됩니다. 사용하는 것을 초기화해야합니다.
UCSRC
데이터 시트 와 같은 일부의 '초기 값'을 찾았습니다 . I / O 포트, 특히 데이터 방향은 어떻습니까?