Доброго времени суток, уважаемые форумчане.
Необходимо сделать вычисление арккосинуса. Делал систему следующим образом. Получая результат с 16-битной шины нужно выдавать значение угла.
Решил сделать следующим образом
ttt <= $signed(($signed(fractional_angle)*1000 >> 15));
angle <= $signed(9000) - 9*$signed(ttt);
То есть - зная что ко мне приходит функция косинуса максимум функции при 0, минимум при 180 (т.е. если 32767 - это 0 градусов, а -32767 - 180).
Для простоты разбиваю свой диапазон на два участка [999;0] и [0; -999] что соответствует углам [0;90], [90;180].
С этим, вроде, все нормально, но вот результаты меня разочаровали. Во первых, значения немного не те всегда - в том плане, что отличаются на какую-то дельту.
Необходимо также углы вращать и все в таком духе.
Кто-нибудь подскажет как мне нужно "вращать" эти углы, чтобы все норм было?