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?

David Högberg
fonte
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.

Scott Winder
fonte
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