no se si asi funcione le puse los 4 ciclos del clk antes de enviar y 5 para leer
#if defined(__PCM__)
#include <16f73.h>
#fuses XT,NOWDT,PUT, NOPROTECT
#use delay (clock =4000000)
#define PIN_OE PIN_C1
#define PIN_LE PIN_C2
#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8)
int16 errores;
void diagnostico (void)
{
int8 j,k;
output_low(PIN_OE);
output_high(PIN_OE);
j = spi_read(0);
k = spi_read(0);
errores = make16(j,k);
}
void programarMBI (void)
{
set_tris_c(0x10);
output_high(PIN_LE);
output_low(PIN_LE);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
spi_write(0x6B);
spi_write(0X55);
output_high(PIN_C3);
output_low(PIN_C3);
output_high(PIN_C3);
output_low(PIN_C3);
output_low(PIN_C3);
}
void main(){
set_tris_b(0x00);
set_tris_a(0x00);
set_tris_c(0x80);
setup_adc_ports(NO_ANALOGS);
setup_spi(spi_master | spi_l_to_h | spi_clk_div_16);
output_high(PIN_A0);
programarMBI();
diagnostico();
while(true)
{
if(errores)
{
output_b(0x00);
}
else
{
output_b(0x0F);
}
}
}