Autor Tema: valor de retorno, donde diablos retorna?  (Leído 1574 veces)

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

Desconectado PHLAKO

  • PIC10
  • *
  • Mensajes: 49
valor de retorno, donde diablos retorna?
« en: 06 de Febrero de 2009, 13:25:59 »
Hola amigos del foro. En mi constante busqueda de aprender el lenguaje C, me asalta una duda.

si hago esto(lectura de eeprom interna del uC, ultima pagina del hilo del cursillo):


unsigned char read_eeprom(unsigned int);  //declarando la funcion prototipo


y despues la invoco:
read_eeprom(0X01); //lee la direccion 01 ed la eeprom



siendo la funcion:
unsigned char read_eeprom(unsigned int eeprom_addr)
{
EEADR = eeprom_addr;
EECON1bits.EEPGD = 0;          /* Ensure EEPGD is clear for EEDATA access */
EECON1bits.RD = 1;             /* Trigger a read by setting the RD bit */
return EEDATA;            /* Read the result from EEDATA register */
}


ahi donde dice: "return EEDATA;" donde manda el dato que esta dentro de EEDATA?

saludos

chaos :)
SIEMPRE TE RECORDARE AMADO Y FIEL COMPAÑERO "LOBO"

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: valor de retorno, donde diablos retorna?
« Respuesta #1 en: 06 de Febrero de 2009, 13:39:59 »
por ejemplo:
mivariable= read_eeprom(0x01);

Con esto vas a tener en mivariable el valor de la memoria de la dirección 0x01




Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: valor de retorno, donde diablos retorna?
« Respuesta #2 en: 06 de Febrero de 2009, 14:52:44 »
Como menciona Pablo, las funciones entregan un valor a una variable con return.

Ejemplo:

Código: [Seleccionar]
int suma(int a, int b)
{
return a+b;
}

void main (void)
{
int resultado;

resultado=suma(3,5);
}


Resultado valdrá 8.

Desconectado PHLAKO

  • PIC10
  • *
  • Mensajes: 49
Re: valor de retorno, donde diablos retorna?
« Respuesta #3 en: 06 de Febrero de 2009, 16:01:18 »
A que bien, esas pequeñas herramientas ayudan mucho. Muchas gracias, me ha quedado super claro. Me he leido cuanto manual de ANSI he encontrado, pero es dificil sacar de la cabeza el famoso lenguaje ensamblador. A medida que voy escribiendo y probando los codigos de C, se me va aclarando el modo de proceder. :-/

Saludos :)

chaos :)
SIEMPRE TE RECORDARE AMADO Y FIEL COMPAÑERO "LOBO"