Buen@s Grupo
Tengo un problema con la comunicacion de dos PIC 18F8722 por I2C (RC3 y RC4), uno como maestro y otro como esclavo. El problema es que en el esclavo se genera la interupcion, se descarga la dirrecion pero no los datos que envio.
En el programa del Maestro utilizo el siguiente codigo
Actualiza_Pic_2:
Select C_Con ' Segun la Secuencia de Comunicacion
Case 0 ' Envia Fecha
HBusOut %00000001,0,[Amo,Mes,Dia]
C_Con = 1
Case 1 ' Envia Hora
HBusOut %00000100,1,[Hora,Minuto,Segundo]
C_Con = 0
Else Case
C_Con = 0 ' Inicializaza
End Select
Return
La Rutina de Int del Esclavo es
Interrupcion:
Context SAVE ' Salva Registros Antes de Interrupcion
If PIR1.3 = 1 Then ' Interrupcion Canal 1 I2C
Repeat ' Repite mientras este lleno el Buffer
If SSP1STAT.5 = 0 Then ' Entro Dirrecion
Cnt_I2C = 0 ' Inicializa Contador
Aux_I2C[Cnt_I2C] = SSP1BUF ' Lee Dirrecion
Else
Inc Cnt_I2C ' Incrementa Contador
Aux_I2C[Cnt_I2C] = SSP1BUF ' Lee Valor
End If
Until SSP1STAT.0 = 0 ' Espera a Buffer Vacio
Revisar_I2C = 1 ' Bandera Revisar Telegrama I2C
If Cnt_I2C >= 9 Then Cnt_I2C = 0 ' Limite Contador del Buffer
PIR1.3 = 0 ' Borra Flanco Interrupcion Bus I2C
End If
Context Restore ' Retorna de la Interupcion
Le comfiguracion del I2c del Esclavo es
'++++++++++++++++++++++[Registros del I2C]++++++++++++++++++++++++++++++++++++++
SSP1CON1 = %00110110 ' Bus I2C como Esclavo 7 Bit
SSP1CON2 = %10000001 ' Configuracion Bus I2C
SSP1ADD = %00000010 ' Dirrecion del Sclavo I2C [2]
Bueno creo que son todos los datos que tengo y espero que sean suficientes.
Gracias por la Ayuda