Hola, gracias por reponder. No pude correr tu programa, no se a que le estare errando. Lo mismo logre hacer lo mismo que vos, a mi manera. Todavia me quedan unas dudas en cuanto a BAUD: es necesario usar el pin DOUT? ,
resolucion: por que obtengo el fondo de escala enviandole 13 HI?
Ademas que seria el <<2; cuando lees la entrada analogica.
Este es mi programa mejorado
#include <16f877.h>
#device adc=12 // Usa resolución de 10 bits
#use delay(clock = 4000000)
#include<lcd.c> // libreria del LCD.
#define DA_SCL PIN_B0
#define DA_SDO PIN_B1
#define DA_SDI PIN_B2
#define DA_CS PIN_B3
#use spi(MASTER,CLOCK_HIGH=4,CLOCK_LOW=4,CLK=DA_SCL, DO=DA_SDO, DI=DA_SDI, BITS=16, MODE=1, mSB_FIRST, stream=DA_spi, FORCE_SW)
void main()
{
int16 i;
long adc_data;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);//
lcd_init(); //inicializa lcd
lcd_gotoxy(1,1); // Escribe a partir de la columna 1 en la línea 1.
lcd_putc("TODO OK"); //
do
{
// for(i = 0; i<8192; i++)
// {
adc_data= (read_adc())<<2;
output_low(DA_CS); //
spi_xfer(DA_spi,adc_data,16);
delay_ms(5); //
output_high(DA_CS);
lcd_gotoxy(1,2); // Escribe a partir de la columna 1 en la línea 2.
printf(lcd_putc,"t=%lu",adc_data); //Escribo en la segunda fila del LCD.
//}
}
while(true);
}
:
--------------------------------------------------------------------------------------------------------------------------------------------