Autor Tema: Problema con I2CRead  (Leído 1999 veces)

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

Desconectado crois85

  • PIC10
  • *
  • Mensajes: 4
Problema con I2CRead
« en: 04 de Noviembre de 2005, 06:36:00 »
Buenas, alguien me podria decir,por favor, que es lo que falla en este programa de PICBASIC PRO.El pic no hace nada de lo que le pido y si lo hace no es el resultado que busco(lo que sale por los puertos no es ni por asomo lo que debveria salir).




DEFINE OSC 4
DEFINE I2C_HOLD 1

High PORTA.5
CMCON = 7

B VAR WORD
RES VAR BYTE
BL  VAR B.byte0
BH VAR B.byte1
CPIN VAR PORTA.2
DPIN VAR PORTA.3

CNT VAR BYTE
CNT=%10100000
TRISB=%00000000
TRISC=%00000000
TRISA=%00000000
Low PORTA.0
Low PORTA.1
Low PORTA.4

BL=%00001000
BH=0









I2CRead DPIN,CPIN,CNT,BL,[RES]
Pause 5


PORTB=RES
PORTC=BL

PORTA=(BH+PORTA)


Low PORTA.5
Pause 5
High PORTA.5





a:
High PORTA.4
GoTo a

End


Desconectado batman123

  • Colaborador
  • PIC10
  • *****
  • Mensajes: 46
RE: Problema con I2CRead
« Respuesta #1 en: 05 de Noviembre de 2005, 15:06:00 »
OYE ESE CODIGO ESTA UN POCO ENRREDADO

PORQUENO EXPLICAS CON TUS PROPIAS PALABRAS QUE ES LO QUE QUIERES HACER PARA DE ESA FORMA PODER AYUDARTE.

PORQUE LO UNICO QUE ENTENDI ES QUE QUIERES GRAVAR UN DATO EN LA EPROM Y LUEGO ENCENDER UN LED  PORQUE  EL PROGRAMA CREO QUE NO HACE NADA MAS... O ME EQUIVOCO...

FlashSUERTE...Flash
No hay cosas imposibles  si no hombres incapaces

Desconectado crois85

  • PIC10
  • *
  • Mensajes: 4
RE: Problema con I2CRead
« Respuesta #2 en: 05 de Noviembre de 2005, 16:42:00 »
Quizas no me he explicado con claridad.

-El programa debe leer una eeprom 24c08 utilizando I2CRead desde un PIC16f876a.

-Debe enviar por el PORTB el byte grabado en la direccion.

-Por el PORTC envia la parte baja de la direccion de memeoria leida.

-Y por 2 patillas de porta los dos bites altos de la direccion(los del banco)

Detalles

B= la direccion de memoria
BH y BL es B divido en parte baja y alta
CNT es la direccion de la eeprom y el banco de lectura.
RES el la variable donde se almacena el byte leido.

Si hay alguna duda mas no duden en preguntar.



Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: Problema con I2CRead
« Respuesta #3 en: 12 de Noviembre de 2005, 14:34:00 »
Varias puntualizaciones:

Comprobar el hard. El pin clock y el pin data deben tener una resistencia cada una de pullup a +5v de valor 4k7.

Segundo, funcionando a 4MHZ creo que deberías ajustar el bus a 100KHz, esto se consigue con la directiva :

DEFINE I2C_SLOW 1 "Use for >8MHz OSC with standard speed devices

Luego comprueba de nuevo, con el datasheet la dirección etc de la memoria y el soft que has escrito.

Saludos,
Ricky

Desconectado crois85

  • PIC10
  • *
  • Mensajes: 4
RE: Problema con I2CRead
« Respuesta #4 en: 13 de Noviembre de 2005, 09:07:00 »
Gracias por la atencion.
Ya contaba con las pull-up, en cuanto al lo de la directiva  DEFINE I2C_SLOW 1  yo creia que debia incluirse solo si corre a mas de 8 MHZ y no a la inversa.
Y en cuanto al soft lo he comprovado muuuuchas veces y no veo fallos(que alguine me corrija si ve algo).

Desconectado crois85

  • PIC10
  • *
  • Mensajes: 4
RE: Problema con I2CRead
« Respuesta #5 en: 15 de Noviembre de 2005, 09:36:00 »
Gracias a todos por la ayuda.
Finalmente consegui solucionar el problema casi por completo.........(al final solo necesitava declarar " ADCON1=$6 ", ya ves que tonteria)


 

anything