타이머 카운터 예제

그림 2에 표시된 것과 같은 입력 캡처 타이머에는 타이머의 개수 레지스터에 연결된 래치가 있습니다. 타이머는 일정한 클럭 속도(일반적으로 프로세서 클럭의 미분)로 실행되므로 카운트 레지스터가 지속적으로 증가(또는 다운 카운터의 경우 감소)됩니다. 외부 신호는 자유 실행 타이머 값을 프로세서 가시 레지스터에 래치하고 출력 신호(일반적으로 인터럽트)를 생성합니다. 일부 타이머에서 발견되는 이 기능의 변형은 프로세서가 작성한 값을 초기 개수가 아닌 끝점으로 사용합니다. 이 경우 프로세서는 카운트 레지스터의 값과 지속적으로 비교되는 터미널 카운트 레지스터에 기록합니다. 카운트 레지스터는 항상 0으로 재설정되고 카운트카운트가 계산됩니다. 터미널 카운트 레지스터의 값과 같으면 출력 신호가 어설션됩니다. 그런 다음 카운트 레지스터가 0으로 재설정되고 프로세스가 반복됩니다. 터미널 수는 동일하게 유지됩니다. 전체 효과는 오버플로 카운터와 동일합니다.

그런 다음 미리 결정된 길이의 주기적 신호가 생성됩니다. 카운터/타이머 카운터/타이머 하드웨어 소개는 대부분의 임베디드 시스템의 중요한 구성 요소입니다. 경우에 따라 경과 시간을 측정하기 위해 타이머가 필요합니다. 다른 사람에 우리는 계산하거나 일부 외부 이벤트를 시간 할 수 있습니다. 다음은 하드웨어에 대한 프라이머입니다. 카운터/타이머 하드웨어는 대부분의 임베디드 시스템의 중요한 구성 요소입니다. 경우에 따라 타이머는 경과 시간(프로세서 클럭 체크 계산)을 측정합니다. 다른 사람에, 우리는 계산 하거나 시간 외부 이벤트를 할.

이름 카운터와 타이머는 하드웨어에 대해 이야기 할 때 상호 교환적으로 사용할 수 있습니다. 용어의 차이는 하드웨어가 지정된 응용 프로그램에서 사용되는 방식과 관련이 있습니다. 그림 1: 간단한 카운터/타이머 그림 1은 마이크로 컨트롤러 내에 종종 포함된 온칩과 유사한 간단한 타이머를 보여줍니다. 74HC161 카운터 또는 프로그래밍 가능한 논리 장치와 비슷한 것을 만들 수 있습니다. 표시된 타이머는 로드 가능한 8비트 카운트 레지스터, 입력 클럭 신호 및 출력 신호로 구성됩니다. 소프트웨어는 0x00과 0xFF 사이의 초기 값으로 카운트 레지스터를 로드합니다. 입력 클럭 신호의 후속 전환은 해당 값을 증가시입니다. 8비트 카운트가 오버플로되면 출력 신호가 어설션됩니다. 출력 신호는 프로세서에서 인터럽트를 트리거하거나 프로세서가 읽을 수 있는 비트를 설정할 수 있습니다. 타이머를 다시 시작하려면 소프트웨어가 개수 레지스터를 동일하거나 다른 초기 값으로 다시 로드합니다. 카운터가 업 카운터인 경우 초기 값에서 0xFF로 계산됩니다.

다운 카운터는 0x00으로 카운트다운됩니다. 일반적인 카운터는 일반적으로 컨트롤 레지스터에 비트를 설정하여 로드된 후 카운터 실행을 시작하는 몇 가지 방법을 갖습니다. 그림에는 표시되지 않습니다. 실제 카운터는 일반적으로 프로세서가 데이터 버스를 통해 언제든지 카운트 레지스터의 현재 값을 읽을 수 있는 방법을 제공합니다. 자동 재로드 기능이 있는 반자동 A 타이머에는 프로세서가 기록한 카운트를 보유하는 래치 레지스터가 있습니다. 프로세서가 래치에 기록하면 카운트 레지스터도 기록됩니다. 나중에 타이머가 오버플로되면 먼저 출력 신호를 생성합니다. 그런 다음 래치의 내용을 카운트 레지스터에 자동으로 다시 로드합니다. 래치가 프로세서가 작성한 값을 계속 보유하므로 카운터는 동일한 초기 값에서 다시 계산하기 시작합니다. 이러한 타이머는 입력 클럭과 동일한 정확도로 일반 출력을 생성합니다. 이 출력은 실시간 운영 체제(RTOS) 타이머 틱과 같은 주기적인 인터럽트를 생성하거나, UART에 보레이트 클럭을 제공하거나, 정기적인 펄스가 필요한 모든 장치를 구동하는 데 사용될 수 있습니다.

カテゴリー: 未分類 パーマリンク