Autor Tema: Programacion en I2C  (Leído 1244 veces)

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

Desconectado AustinSantos12

  • PIC10
  • *
  • Mensajes: 2
Programacion en I2C
« en: 28 de Noviembre de 2013, 14:22:17 »
Quisiera que me ayudaran a finalizar este proyecto que encontre en el libro Compilador C CCS y simulador PROTEUS para microcontroladores PIC, Eduardo Garcia Breijo, es cuando compilo el programa me aparecen 100 errores y lo he revisado muchas veces y lo escribi igual que como aparece en el libro, agradeceria mucho su ayuda, esta es una implementacion de mi trabajo final para graduarme.

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: Programacion en I2C
« Respuesta #1 en: 28 de Noviembre de 2013, 15:14:58 »
He logrado compilar tu codigo, en realidad son cosas muy simples, el mismo compilador te arroja donde esta y cual es el error/warning, detecte las siguientes errores/warnigs:

Es un warning, linea 19, las funciones de interrupcion deben devolver void:

Citar
#int_rda              //Interrupcion para el puerto serie
   void rda_isr() //Falta el void

Lo arroja como un Warning pero es un error, en ese linea se esta asignando el caracter '2' a dat, el operador de igualdad es == , no =
Citar
if (dat_in='2') //Si es "2" se visualizan los primeros datos de la EEPROM
     {


Aunque no es un error, el compilador manda un warning, esto por el bucle infinito, si lo cambias por for(;;) ya no aparecera la advertencia pero puedes usar ambas
Citar
while(1) {
   
Linea 20, archivo RTC_ds1307.c, aqui faltaba un parentesis
Citar
   return(varia + (varia >> 2) + (bcd & 0x0f));


TEMP_ds1621.c, linea 26, si la funcion no regresa nada deberia indicarse con void
Citar
void WRITE_FLOAT_EXT_EEPROM(long int n, float data) {

TEMP_ds1621.c, Linea 38, Aqui te faltata un parentesis,

Citar
*(((int8*)(&data) + i)) = read_ext_eeprom(i + n);


Entre muchas otras cosas mas, en realidad no vi si tu codigo es funcional, solo cheque que compilara basado en las advertencias que generaba el compilador, por cierto, comente el siguiente header debido a que existe conflictos con los nombres de las funciones, ya existe una que tiene el mismo nombre, ademas movi todos los headers a la carpeta raiz, espero te sirva de base para que hagas funcionar tu codigo. Saludos.

Citar
//#include <FLOATEE.c>


Desconectado AustinSantos12

  • PIC10
  • *
  • Mensajes: 2
Re: Programacion en I2C
« Respuesta #2 en: 29 de Noviembre de 2013, 12:57:07 »
Muchisimas gracias por tu rapida respuesta, comprendi muy bien tus recomendaciones lo unico que cuando compilo el programa desde mi maquina (ya copie los otros programas a la raiz) me aparecen los errores de los print de pantalla, talves me podes ayudar y lo otro es que te queria preguntar si lo habias ejecutado en el microcontrolador de proteus, ya que este es un ejemplo del libro de Eduardo Garcia Breijo y al parece tiene muchos errores, por lo menos en la programacion,