홈>
현재 책상에 nRF 송신기/수신기 쌍 설정이 있습니다. 송신기는 5ms마다 단일 바이트 (0xAA)를 전송합니다. 수신기는 바이트를받은 후 바이트를 보낸 후 약 10us (+/- 2) 정도임을 나타 내기 위해 LED를 높게 설정합니다. +/- 0.5us 정확도로 정확한 타이밍/동기화 애플리케이션에이 nRF 펄스를 사용하고 싶습니다. 따라서 송신기가 실제로 바이트를 보낸 시간과 다음도착해야합니다. 다음 펄스를 추정하기 위해 과거의 nRF 펄스 시간 (Teensy의 ARM_DWT_CYCCNT 레지스터를 사용하여 클럭 사이클로 측정)을 사용하는 알고리즘을 만들었고 합리적으로 잘 작동하는 것 같습니다. 그러나 0.5us 정확도를 얻는다면 아직 말할 수는 없습니다 내가 원하는.
이제 추정값을 가져 와서 클럭 카운트가 예상 클럭 값에 도달하자마자 마이크로 컨트롤러가 출력 핀을 높게 설정하고 싶습니다. 현재는 while 루프를 대기하고 레지스터를 폴링 하여이 작업을 수행하지만 루프 자체는 수백 클럭 사이클을 차지하여 정확도를 떨어 뜨립니다. 클럭 사이클 카운터가 예상 값에 도달 할 때 인터럽트 트리거를받는 방법이 있습니까? 각 추정치를 계산 한 후에 어떻게 든이 인터럽트를 설정해야합니다.
감사합니다!
- 답변 # 1
관련 자료
- upgrade - Linux의 sshd_config 파일에 제공 할 수있는 AllowUsers의 사용자 항목 수에 제한이 있습니까?
- r - ggplot의 바이올린 플롯에서 값당 관측치 수가있는 레이블을 추가하는 방법이 있습니까?
- java - 사용자가 1-50 사이의 숫자를 입력했는지 확인하는 더 좋은 방법이 있습니까?
- Karate의 Scenario Outline 이름에 Datatable 행 번호를 추가하는 방법이 있습니까?
- node.js - 인도 통화로 숫자를 형식화하는 npm 모듈이 있습니까?
- c - AVR128DB48에서 인터럽트를 트리거하는 일반 모드의 타이머
- Svelte의 구독 상점에 값이 변경 될 때 함수를 트리거하는 방법은 무엇입니까?
- c# - 합계에 소수가 있는지 확인하는 함수가 있습니까?
- math - 숫자가 일치/겹치는 지 확인하기 위해 두 숫자 시퀀스를 비교하는 공식이 있습니까?
- bash - Linux 쉘 스크립팅에서 주어진 시간에 10 개의 스크립트를 트리거하는 방법이 있습니까?
- python - 배열에있는 특정 요소의 수를 계산하는 방법은 무엇입니까?
- mongodb - 특정 값의 발생 횟수로 몽고 데이터베이스를 필터링하는 방법이 있습니까?
- javascript - 문자열을 가져 와서 평가하고 숫자가 있는지 확인하고 문자열의 일부를 반복하십시오
<올>
타이머를 사용하여 시스템 클럭을 계산하고 원하는주기에 오버플로 된 오프셋으로 카운터를 사전로드하십시오.
타이머를 사용하여 시스템 클럭을 계산하고 원하는 사이클 수만큼 비교 일치를 설정하십시오.
사이클 수를 늘리려면 Isr에서 더 빠른 처리를 수행 할 수 있지만 기본 요지는 동일합니다.
다른 접근 방식도 있지만 여기에 설명 된 두 가지 방법이 더 쉽습니다.