TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: GIBRAM_12 en 09 de Mayo de 2009, 20:35:54

Título: Ayuda con operaciones sen-1 y cos-1
Publicado por: GIBRAM_12 en 09 de Mayo de 2009, 20:35:54
Estoy realizando un proyecto el cual,consiste en un seguidor solar por medio de ecuaciones astronomicas estoy utlizando un dspic(30f4011) y lo estoy programando en el compilador C30 de microchip, ya programe un reloj en tiempo real y un calendario ya que ocupo tener el numero de dia y la hora como entradas (variables) para realizar los calculos solo que no tengo ni la menor idea de como declarar o de como introducirlos al codigo que ya tengo.

Grasias  de antemano si me pudieran orientar un poco
Título: Re: Ayuda con operaciones sen-1 y cos-1
Publicado por: BrunoF en 09 de Mayo de 2009, 21:02:21
Hola. Debería haber una librería llamada <math.h> dentro del paquete de librerías del C30 que debería contener todas las funciones trigonométricas,trigonométricas inversas e hiperbólicas. Debes incluírla en tu programa.

Luego las puedes utilizar en tu programa haciendo las llamadas correspondientes. Te recomiendo que mires el archivo math.h para entrar en detalle.

Saludos.
Título: Re: Ayuda con operaciones sen-1 y cos-1
Publicado por: BrunoF en 09 de Mayo de 2009, 21:09:17
P.D. Ojo con los años bisiestos! :D :D :D
Título: Re: Ayuda con operaciones sen-1 y cos-1
Publicado por: GIBRAM_12 en 09 de Mayo de 2009, 22:24:53
Aqui esta un poco de lo que tratado de hacer empesare por algo simple el sen-1 (seno inverso) de .5... ya para despues hacer las ecuaciones el problema esque no puedo observar el resultado no se si alguien me pueda ayudar segun yo lo estaba mostrando en el puerto B,

y contestando a bruno em para la realizacion de  ese tipo de calculos no se toma en cuenta los años bisiestos

Aqui les dejo el programa aver si alguien me puede decir el error o la forma correcta de hacerlo

#include    <p30f4011.h>
#include   <math.h>
#include   <errno.h>
#include    <stdio.h>

#define PI 3.1416

_FOSC (CSW_FSCM_OFF & FRC_PLL8);
_FWDT (WDT_OFF);
_FBORPOR (PBOR_OFF & MCLR_DIS);
_FGS (CODE_PROT_OFF);
_FICD (ICS_NONE);

float main ()
{
TRISB=0x0000;
double param,result;
param=.5;
result=asin (param)*180/PI; //la division de 180/pi se ase para manejar grados porque tengo entend
                                              //ido que maneja radianes
   while (1)
   {
   PORTB=result;
   }

}


Grasias brunoF por tu comentario lo tome en cuenta