2017-06-25 9 views
-1

Comment convertir rpm en rad/s en C? J'utilise le programme Altera Monitor pour calculer rad/s à partir de rpm. mais quand j'utilise 2 * pi/60, il dit "pi" n'est pas déclaré. J'ai inclus math.h encore le même problème.Comment convertir rpm en rad/s en C?

J'ai aussi un autre problème en incluant la bibliothèque de virgules flottantes vhdl. J'utilise la version Quatus 16.1. J'ai essayé d'inclure

BIBLIOTHÈQUE ieee; utilisez ieee.float_pkg.all;

Erreur (10481): Erreur de clause d'utilisation VHDL sur uart.vhd (27): la bibliothèque de conception "ieee_proposed" ne contient pas l'unité principale "float_pkg". Vérifiez que l'unité primaire existe dans la bibliothèque et a été compilée avec succès.

comment résoudre ce problème?

+4

Veuillez lire les descriptions des balises lors du balisage, 'rpm' signifie Gestionnaire de paquets Red Hat/RPM! –

+0

Je ne comprends pas pourquoi vous n'avez pas simplement saisi la valeur de pi, ou #define it. La recherche de la valeur de pi n'a pas besoin d'une question SO! – ThingyWotsit

Répondre

3

Lorsque vous utilisez gcc (et beaucoup d'autres compilateurs) la constante de pi est défini dans math.h comme M_PI:

rads = rpm * 2.0 * M_PI/60.0; 

Toutefois, ce n'est pas garanti par la norme C, donc si votre code doit être portable alors vous devriez avoir une définition de contingence pour pi.

+0

Ceci n'est en effet pas toujours correct, https://stackoverflow.com/questions/5007925/using-m-pi-with-c89-standard - alors qu'il est disponible dans GlibC par exemple, * "Ces constantes proviennent de la norme Unix98 et ont été également disponible dans BSD 4.4, par conséquent, ils ne sont définis que si '_BSD_SOURCE' ou '_XOPEN_SOURCE = 500', ou une macro de sélection de caractéristiques plus générale, est définie.L'ensemble par défaut inclut ces constantes. "* Je suppose qu'Altera utilise GCC . –

+0

@AnttiHaapala: vous avez peut-être raison, mais je n'ai jamais rencontré de situation où M_PI n'est pas défini, pour C au moins (C++ est une autre affaire). –

+0

'gcc pi.c -lm -pedantic -std = c11' par exemple –

1

La constante souvent définie dans math.h est M_PI ou parfois PI, mais pas pi. Mais aucune de ces constantes n'est mentionnée dans la norme C, donc vous ne devriez pas vous y fier et simplement définir la vôtre, par ex. en utilisant le nom que vous attendiez:

#define pi 3.14159265358979323846