Тригонометрические функции

Discussion in 'WASM.BEGINNERS' started by Ars_prk, Nov 29, 2005.

  1. Ars_prk

    Ars_prk New Member

    Blog Posts:
    0
    Joined:
    Nov 29, 2005
    Messages:
    1
    Location:
    Russia
    Люди, скажите, можно ли как-нибудь написать функцию ArcCos на ассемблере для микроконтроллера с ядром MSC-51 или, другими словами - выразить тригонометрическую функцию с помощь простых математических действий?
     
  2. yureckor

    yureckor New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2004
    Messages:
    494
    Location:
    Russia
    Ее можно выразить через atan, а вообще все тригонометрические функции вычисляются через ряды или полиномы (короче см. справочник по высшей математике),вот на x86 с использованием встроенного ATAN (на стеке уже лежит аргумент):
    Code (Text):
    1.  
    2.  fld st(0)
    3.  fld st(0)
    4.  fmul
    5.  fld1
    6.  fxch
    7.  fsub
    8.  fsqrt
    9.  fxch
    10.  fdiv
    11.  fld1
    12.  fpatan
    13.  
     
  3. CrazyFun

    CrazyFun New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2005
    Messages:
    129
    я бы использовал разложение в степенной ряд по степеням х



    f(x)= f(0)/0! + (f'(0)/1!)*x + (f''(0)/2!)*x^2 +.. +(f''...''(0)/n!)*x^n +

    +.....



    где f''...''(0) - значекние n-й производной функции f в точке 0



    х^n - икс в степенни n



    колличестов слагаемых подбирается в соответствии с требуемой точностью



    подробности смотрим с любом учебнике по матанализу(теория рядов)
     
  4. Quantum

    Quantum Паладин дзена

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    yureckor

    MSC-51 не имеет FPU.



    Ars_prk

    Поищите реализации CORDIC - это алгоритмы подсчёта тригонометрических ф-ций через циклические сдвиги и логические операции.
     
  5. SDragon

    SDragon New Member

    Blog Posts:
    0
    Joined:
    Jun 6, 2005
    Messages:
    133
    Location:
    Siberia
  6. yureckor

    yureckor New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2004
    Messages:
    494
    Location:
    Russia
    есть много готовых библиотек для КР580ВМ80, или можно глянуть ПЗУ Спека, дизасм и эмулятор его в сети найти легко.