2011-02-19 7 views
1

내 프로젝트에서 msp430f2013 마이크로 컨트롤러를 사용하고 있습니다 .. 그 펄스 신호 주파수의 들어오는 기차를 계산할 필요가 .... 나는 그것을 할 수있는 방법을 모르겠다 수 있습니다. 누구든지 나를 돕는다. 예제 코드가 나에게 더 도움이된다. ...들어오는 신호를 캡처

답변

2

마이크로 컨트롤러의 설명서를 읽은 다음, 측정 할 수있는 타이머를 설정하는 방법을 알아야한다. 두 개의 펄스 에지 사이의 간격 (예 : 하나의 리딩 에지에서 다음 에지까지). 주파수, F는이 시간 간격 t의 역수 것 즉

f = 1/t 
1

이렇게 다양한 방식으로 아마도 이해할 간단한 간단한 카운터와 같은 타이머 설정이고있다. 입력 핀을 폴링하여 상태가 바뀔 때 타이머에 카운트를 저장합니다. 다시 상태를 변경하면 타이머에서 카운트를 저장하고 다른 하나에서 시간을 빼면 초당 일부 주파수 X 틱 수만큼 클럭 틱이됩니다. 귀하의 차이는 입력 펄스 당 y 틱입니다. y/x 틱이 취소되고 펄스 당 초를 얻습니다. 상승 에지에서 상승 에지로 또는 하강 에지에서 하강 에지까지를 측정하는 경우 타이머 샘플을 빼기 (예 : 마지막 상승 에지 및 현재 상승 에지)하는 것과 동일한 솔루션입니다.

일부 마이크로 컨트롤러는 입력 핀 (또는 적어도 같은 가장자리, 상승 또는 하강)에서 상태가 변경 될 때 인터럽트 할 수있는 기능이 있으며 타이머를 샘플링하고 빼고 얻는 방법을 선호 할 수 있습니다 주기 당 틱 (ticks per period) 등을 사용하여 초당주기 (빈도)를 얻습니다.

타이머를 사용하는 것이 힘들 수 있습니다. 항상 타이머를 사용하여 유도등을 깜박입니다. 먼저 볼 파크에 들어가기 위해 초당 한 번, 그런 다음 5 또는 10 또는 30 초마다 한번씩, 그리고 두 번째와 비교합니다 시계 또는 다른 참고 자료에 손을 대어 자신이 정확하고 십분의 일이 아닌지 확인하십시오. 그것은 타이머와 그 제수의 이해를 확립합니다. 거기에서부터 그것을 사용하여 입력을 측정 할 수 있습니다. 내가 gpio를 올바르게 프로그램했는지 확인하기 위해 (리드 된 운동은 이미 그 중 일부를 다룬다.) 필자는 입력 핀을 샘플링하고 입력 핀 상태로 LED 상태를 변경하고 종종 LED가 깜박이거나 둔한 빛을 볼 수있게한다. gpio 핀을 샘플링 할 수 있는지 확인하십시오. 그런 다음 모두 채우고 입력이 상태를 바꿀 때 타이머를 샘플링 한 다음 첫 번째 폴링을 수행 한 다음 인터럽트 또는 기타가 필요할 경우 샘플링합니다.

관련 문제