Autor Tema: quiero crear mi propias libreria  (Leído 1931 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado hqv

  • PIC12
  • **
  • Mensajes: 70
quiero crear mi propias libreria
« en: 04 de Octubre de 2005, 15:59:00 »
hola :Estoy creando mis propias librerias para un chip de voz y he tenido algunos problemas, con lo relacionado a la creación de librerías.

si alguien me pudiese ayudar sería de gran ayuda.

les adjunto el codigo que estoy escribiendo  como librería.
me indica el siguiente error.
gracias
hqv

Error[61]   C:ARCHIV~1PICCdriversisd2590.c 25 : LVALUE required  

////////////////////////////////////////////////////////////////////////////////
//                                 isd2590.c                                    //                                                              //
//                         driver for device isd2590                          //
//                                                                            //
//                                                                            //
//                                                                            //
//                                                                            //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////


#define isd_CE   PIN_B3   //chip enable
#define isd_PD   PIN_B4   //power down
#define isd_P/R   PIN_B5   //play/record
#define isd_EOM   PIN_B6   //end of message
#define isd_OVF   PIN_B7   //overflow


////////////////////////////
//    FUNCIONES             //
////////////////////////////
//función para llevar el puntero dirección a la posición 0 de la memoria
void isd_reset(void)
{
 isd_PD =1;          //resetea puntero address a address 0 memoria
 delay_ms(40);        //tiempo necesario operación reset para play=18.75 y record=37.5
 isd_PD =0;
}// fin funcion reset    

//función para reproducir un mensaje
void play (void)
{
 isd_P/R =1;           //selecciono operación PLAY
 delay_us(350);       //tiempo mínimo para set= 300 us
 isd_CE=0;            // habilitodevice para PLAY
 delay_us(150);       //tiempo minimo para CE=100 us            
 isd_CE =1;            //deshabilito
         
}// fin funcion play    

//función para grabar un mensaje
void record (void)
{
 isd_P/R =0;           //selecciono operación RECORD
 delay_us(350);       //tiempo mínimo para set= 300 us
 isd_CE =0;            // habilito device para RECORD
 delay_us(150);       //tiempo minimo para CE=100 us            
 isd_CE =1;            //deshabilito
 
     
}//fin funcion record  



//funcion usada para reproducir un mensaje grabado dentro del chip
void play_message(int address)
{
 disable_interrupts(int_ext);      //deshabilito la interrupcion externa ?????
 isd_reset();
 

   switch(address)  
 {
  case "0":
       {
       output_d(0b00000000);    //primer mensaje de la memoria
       delay_us(350);           //tiempo mínimo =300us    
       break;
       }
       
  case "1":
       {
           
       break;  
       }      
       
  default:break;            
                                   
 }//fin switch                      
                             
play();
                             
                             
isd_reset();                                                                                    
                            
enable_interrupts(int_ext);//????   

}//fin función play_message   
//función para grabar un mensaje en el chip
void record_message(int address)
{
     
   
     
     
     
}//fin función record_message

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: quiero crear mi propias libreria
« Respuesta #1 en: 04 de Octubre de 2005, 16:42:00 »
estas cometiendo un pequeño fallito en la estructura switch-case...hazlo así a ver q tal...

switch(address) {
case 0: output_d(0b00000000); delay_us(350); break;
case 1: break;
}

saludos Giño

Desconectado hqv

  • PIC12
  • **
  • Mensajes: 70
RE: quiero crear mi propias libreria
« Respuesta #2 en: 04 de Octubre de 2005, 18:16:00 »
gracias por ver esa duda ...

pero el problema principal es que me tira un error al compilar.

el error es el siguiente:

Error[61]   C:ARCHIV~1PICCdriversisd2590.c 30 : LVALUE required  
Halting build on first failure as requested.
BUILD FAILED: Tue Oct 04 19:13:39 2005

indica a la posición 30 la cual esta la siguiente instrucción:  

28    void isd_reset(void)
29     {
30     isd_PD =1;          //resetea puntero address a address 0 memoria
31     delay_ms(40);        //tiempo necesario operación reset para play=18.75
32                                    //   y         record=37.5
33      isd_PD =0;
34     }// fin funcion reset    

los números los puse para que vean donde me arroja el error


hqv

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: quiero crear mi propias libreria
« Respuesta #3 en: 05 de Octubre de 2005, 01:12:00 »
¿Has probado esto?
PIN_B4 =1;

Es probable que así tampoco funcione, por lo que tendrás que ver dónde está definido PIN_B4

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: quiero crear mi propias libreria
« Respuesta #4 en: 05 de Octubre de 2005, 01:40:00 »
cambia todo loq tengas de la forma:
isd_PD =1;
por:
output_bit(isd_PD,TRUE);

creo q eso funcionará... aunq no te se explicar el pq Rebotado

saludos Giño

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: quiero crear mi propias libreria
« Respuesta #5 en: 05 de Octubre de 2005, 12:57:00 »
La verdad es que no entiendo porqué CCS tiene esta forma tan incómoda de setear los puertos como 0 y como 1 desquiciado

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: quiero crear mi propias libreria
« Respuesta #6 en: 05 de Octubre de 2005, 13:06:00 »
la verdad esq si Ardiendo la primera vez q tuve q hacerlo casi me kedo loco intentando sacar el fallo... la forma en q lo utiliza hqv creo q solo es valido para leer el puerto, pero no para setearlo... pq?? pues no lo se... por cierto otra forma de hacer lo mismo sería esta:

#define GP0 PIN_A0

output_high (GP0);

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
RE: quiero crear mi propias libreria
« Respuesta #7 en: 06 de Octubre de 2005, 05:00:00 »
Kizas me equivoque....o mi memoria RAM me esta fallando jeje pero creo recordar que la definicion de los pines ejemplo
#define GP0 PIN_A0

PIN_A0 declara direccion de memoria por lo que no se puede poner una direccion de memoria a 1 o a 0, solamente podemos cambiar el contenido de la direccion de memoria la cual apunta a la salida del pin, un nivel alto(1) o un nivel bajo(0) mediante las funciones ya conocidas: output_high (GP0); ...etc

Giño
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: quiero crear mi propias libreria
« Respuesta #8 en: 08 de Octubre de 2005, 00:58:00 »
Esa es precísamente la incomodidad de CCS. En C30, por ejemplo, tú sí puedes hacer GP0=1 o GP0=0


 

anything