Problemas con una variable de 16 bits

#1
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:
#2
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.
 
#5
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