ATtiny: não há suporte para multiplicação?


9

É verdade que os AVRs ATtiny não têm suporte de hardware para multiplicação? Parece funcionar bem como eu faço multiplicação no meu código. Também incluí o math.he tenho alguns cálculos sin () e cos (). Estou enfrentando uma enorme penalidade de 800 ciclos para esses cálculos, alguém sabe?


usar lookup tabelas para trig, e interpolação linear, se você quer uma melhor resolução (com erro tolerável)
vicatcu

Respostas:


12

O ATtiny não possui um multiplicador de hardware, mas a multiplicação de software não é tão cara quanto você sugere. Consulte a nota de aplicação do AVR200 e o código associado para obter algumas rotinas otimizadas de multiplicação e divisão.

Os cálculos de seno e cosseno podem ser acelerados usando tabelas de pesquisa, trocando efetivamente espaço de memória por ciclos do processador. No entanto, como o @DaveTweed apontou corretamente, a aproximação algorítmica do seno e do cosseno no software aumentará a contagem do ciclo para mais perto do alcance que você teme.


5
A aproximação polinomial para sin()e cos()tipicamente envolve várias (3-5) multiplicações, além de acréscimos / subtrações de multiprecisão, dobragem de intervalo etc., para que 800 relógios por chamada de função não sejam irrealistas.
Dave Tweed

@ DaveTweed: Obrigado, bom ponto. Editado para esclarecer.
Scott Winder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.