Problemas con una variable de 16 bits

Tengo problemas con mi código me marca error al poner int16 y declarar mi variable.
este es mi código:

Código:
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay (clock=48000000)
#use rs232 (baud=9600, xmit=pin_c6, rcv=pin_c7,)
//#include <lcd.c>

int16 ADC=0;

//float salida=0.0;

//main

void main(void)
 {
// lcd_init ();
 
//-----------------------------------while--------------------------------------

while (TRUE){
//delay_us(1);
if(input(pin_A5)== 1 )
ADC= ADC+1;
if(input(pin_B1)== 1 )
ADC= ADC+2;
if(input(pin_B2)== 1 )
ADC= ADC+4;
if(input(pin_B3)== 1 )
ADC= ADC+8;
if(input(pin_B4)== 1 )
ADC= ADC+16;
if(input(pin_B5)== 1 )
ADC= ADC+32;
if(input(pin_B6)== 1 )
ADC= ADC+64;
if(input(pin_B7)== 1 )
ADC= ADC+128;

if(input(pin_A2)== 1 )
ADC= ADC+256;
if(input(pin_C0)== 1 )
ADC= ADC+512;
if(input(pin_C1)== 1 )
ADC= ADC+1024;
if(input(pin_C2)== 1 )
ADC= ADC+2048;
if(input(pin_C4)== 1 )
ADC= ADC+4096;
if(input(pin_C5)== 1 )
ADC= ADC+8192;
if(input(pin_A0)== 1 )
ADC= ADC+16384;
if(input(pin_A1)== 1 )
ADC= ADC+32768;

//salida = (ADC/256.3)*5;
//lcd_gotoxy(0,0);
//printf (lcd_putc, " %1.3fV",salida);
printf(" %d ", ADC);


ADC=0;
}

}
Por_favor alguien qUE me pueda corregir!!
 
Última edición por un moderador:

D@rkbytes

Moderador
Saludos.
Para mostrar datos de una variable int16 debes usar %LU (Long Unsigned Int), en vez de %D (Signed Int)
Así que cambia esto....
printf(" %d ", ADC);

Por esto...
printf(" %lu ", ADC);

Suerte.
 
Gracias!! pero ahora tengo otro problema, no recibo nnada en el "serial port monitor" del picc! cual sera el problema??
 
bueno el código en picc ya quedo bien. ahora necesito graficar las muestras.
donde puedo graficar y ver mi muestras?? tengo que muestrear una señal de 12MHz!
 
Última edición por un moderador:

Arriba