acos fonksiyonu düzgün çalışmıyor ?

Başlatan koray692, 15 Şubat 2016, 14:13:42

koray692

merhaba arkadaşlar mikroc arm kullanıyorum acos fonksiyonu kullanıyorum ancak sonuç farklı çıkıyor double olarak -0,218 giriyorum çıktı olarak bana 102,6 vereceği yerde 1.783215E+000 veriyor nedeni ney anlayamadım ?

pea

Radyan olarak değer vermiş.
1.79 radyan = 102.6 derece

koray692

#2
teşekkürler...ancak aldığım açı değerleri doğru değil datasheet bilgilerine göre afs_sel değerini 0 olarak seçtim datasheet te yazan zero-g output taki 50 mg yide lsb cinsinden xy için 819 z değeri için 1310,72 buldum...kod;

// ivmelenme(g cinsinde) hesaplama        819-xy          z-1310.72

  G_ACCx = (double)( ((float)ACCx- 819.0f )/(16384.0f)   );              //     AFS_SEL=0   16,384 LSB/g DE
  G_ACCy = (double)( ((float)ACCy -819.0f)/(16384.0f)   );               //     AFS_SEL=0   16,384 LSB/g DE
  G_ACCz = (double)( ((float)ACCz -1310,72.0f)/(16384.0f)   );              //     AFS_SEL=0   16,384 LSB/g DE
  abc=(G_ACCx*G_ACCx) + (G_ACCy*G_ACCy) + (G_ACCz*G_ACCz);

  G_ACC=(double) sqrt(abc);                                                                // R^2 = Rx^2 + Ry^2 + Rz^2
  ACI_ACCx=  57.2958*acos(G_ACCx / G_ACC);                                 // Axr = arccos(Rx/R)
  ACI_ACCy= 57.2958* acos(G_ACCy / G_ACC);                                 // Ayr = arccos(Ry/R)
  ACI_ACCz=  57.2958*acos(G_ACCz / G_ACC);   






mesaj birleştirme:: 15 Şubat 2016, 16:18:25

zero g output ları işin içinden çıkarınca düzeldi ama çıkartmak doğrumu bilmiyorum :)