I2C: Problema de lectura / escritura de BitBanging con Pic16f877A (OSC = 11.0592MHz)

0

Referir a [Este enlace] ( I2C: no se puede leer varios bytes mediante el método de Bit-Banging ).

Creé una biblioteca I2C BitBanging para Pic16f877A. Pero no puedo leer / escribir la EEPROM.

La configuración de mi pin son:

SCK : RB0
SDATA_OUT : RB1
SDATA_IN : RB2

El código de reposo sigue siendo el mismo.

Posiblemente, el problema podría ser la función de retardo ya que estoy usando OSC = 11.0592 MHZ con Pic16f877A. Pero intentó aumentar la demora 2 veces. El problema sigue siendo el mismo.

También,

#pragma config  FOSC    =   HS

¿Puede alguien ayudarme con los posibles problemas y la forma de rectificar el problema?

Nota: el código sigue siendo el mismo que el enlace dice. Solo el Pin y sus registros requeridos se cambian para Pic16f877A.

    
pregunta skg

2 respuestas

1

Finalmente entendí mi error.

Proporcionar enlace simplemente funciona bien. Fue mi error. Mientras modificaba la llamada de funciones, eliminé la llamada de función initI2C (). Lo que estaba causando el problema.

Además, el valor Crystal debería ser

#define Crystal_Value       12          // MHz

Gracias a todos por sus valiosas sugerencias, que me ayudaron a mejorar mi código.

    
respondido por el skg
1

Si todo el código es exactamente el mismo, tiene un error aquí:

#define Crystal_Value       8          // MHz

debe reemplazar esta línea por:

#define Crystal_Value       11          // MHz

en la condición 11MHz es realmente el valor de su oscilador del sistema y no el único de su oscilador de cristal.

    
respondido por el damien

Lea otras preguntas en las etiquetas