AVR에서 역을 계산하는 효율적인 방법을 찾으려고합니다 (또는 근사).
스테퍼 모터의 펄스주기를 계산하여 속도를 선형으로 변경할 수 있습니다. 주기는 속도의 역수 ( p = K/v
)에 비례 하지만 즉시 계산하는 좋은 방법은 생각할 수 없습니다.
내 공식은
p = 202/v + 298; // p in us; v varies from 1->100
아두 이노에 테스트, 분할 떠나 완전히 무시 될 것으로 보인다 p
고정 298
(하지만 아마도이 AVR-GCC 다른 것). 또한 v
초과 할 때까지 루프에서 합산 을 시도 하고 루프를 202
계산했지만 상당히 느립니다.
조회 테이블을 생성하여 플래시에 저장할 수는 있지만 다른 방법이 있는지 궁금합니다.
편집 : 어쩌면 제목은 "효율적인 분할"이어야합니다 ...
업데이트 : pingswept가 지적했듯이 기간을 속도에 매핑하는 공식이 잘못되었습니다. 그러나 주요 문제는 나누기 연산입니다.
편집 2 : 추가 조사에서 arduino에서 나누기가 진행되고 있으며 문제는 위의 잘못된 수식과 다른 곳의 int 오버플로 때문입니다.