Estoy utilizando un PIC18f258 y la libreria <vs_saa1064m.c> y no consigo que aparezca nada en las pantallas, tengo 4 displays en modo dinamico, he comprobado que las señales de reloj y datos estan bien conectadas y compruebo con el osciloscopio las salidas que atacan los transistores que multiplexan los displays pero ni se inmutan, por lo que deduzco que no esta recibiendo bien la informacion. Estaria muy agradecido si me pudierais echar una mano. Aqui os dejo el codigo que es mu simple. Gracias
#include "C:\Documents and Settings\HOLA\Escritorio\JOSE MANUEL\Placa_ampliacion\I2C\I2C.h"
#define SAA1064_DINAMICO
#define SAA1064_SCL PIN_C3 //definicion de pines...
#define SAA1064_SDA PIN_C4
#include <vs_saa1064m.c>
#USE FIXED_IO(b_outputs=PIN_B6,PIN_B7)
#USE FIXED_IO(c_outputs=PIN_C0,PIN_C1,PIN_C2,PIN_C3,PIN_C4,PIN_C6,PIN_C7)
void main()
{
control_rev=0;
control_temp=0;
temp_rev=0;
set_tris_A(0b11111111);
setup_adc_ports(ALL_ANALOG);//todos analogicos y la referencia en el canal 3
setup_adc(ADC_CLOCK_DIV_32);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_EXT_L_TO_H);// se encargara de contar los pulsos para el cuenta revoluciones
setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_INTERNAL|T3_DIV_BY_8);// temporizara 0.1 segundos cuando carguemos 3036
DISABLE_INTERRUPTS(INT_EXT);
EXT_INT_EDGE(H_TO_L);
DISABLE_INTERRUPTS(INT_TIMER1);
DISABLE_INTERRUPTS(INT_TIMER3);
ENABLE_INTERRUPTS(GLOBAL);
while(TRUE)
{
delay_ms(10);
saa1064_init(0x76);
saa1064_conf(0b01110001); //21mA & NO parpadeo & Dinamico
saa1064_putc(0x5B,0x3F,0x3F,0x7D); //2006
saa1064_stop();
}
}