Bir AVR (veya yaklaşık) tersi hesaplamak için etkili bir yol bulmaya çalışıyorum.
Hızı doğrusal olarak değiştirebilmem için bir step motorun nabız süresini hesaplamaya çalışıyorum. Dönem, hızın tersi ile orantılıdır ( p = K/v
), ancak bunu anında hesaplamanın iyi bir yolunu düşünemiyorum.
Benim formülüm
p = 202/v + 298; // p in us; v varies from 1->100
Arduino üzerinde yapılan testlerde, bölüm tamamen p
sabit bırakarak yok sayılıyor gibi görünüyor 298
(belki de bu avr-gcc'de farklı olacaktır). Ben de v
aşana kadar bir döngüde toplamaya çalıştım 202
ve döngüler sayma, ama bu oldukça yavaş.
Bir arama tablosu oluşturabilir ve flash'ta depolayabilirim, ancak başka bir yol olup olmadığını merak ediyordum.
Edit : Belki başlık "verimli bölme" olmalıdır ...
Güncelleme : Pingwept'in işaret ettiği gibi, hızı dönemle eşleme formülü yanlış. Ancak asıl sorun bölme işlemidir.
Edit 2 : Daha fazla araştırmada, bölme arduino üzerinde çalışıyor, sorun hem yanlış formül hem de başka bir yerde bir int taşması nedeniyle oldu.