La aplicación funciona, uno de los problemas es q al inicio del buble mandas el valor de var y ésta está vacio asi q solo mandas 0x00 o caratcter nulo, además como está al inicio del bucle infinito, saturas el terminal, ya q no hay nada q controle su envio.
Por otro lado no puedes ver el valor del PORTB:
1.- No lo lees
2.- No lo guardas en ninguna variable (si asi lo deseas).
3.- En ningun momento envias el valor del PORTB al PC
4.- Declaras varias funciones, pero no las usas
Como te mencionan con input_b() puedes leer el PORTB
#include <18f4550.h>
//#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN // YO USO CRISTAL DE 20MHz 20/5=4MHz, TU USAS UNO DE 48 MHz YA 1 USAS PLL12 48/12=4MHz
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL12,CPUDIV1,VREGEN,NOPBADEN
#use delay(clock=48000000)
//#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
//#include "usb_desc_cdc.h" // Descriptores del dispositivo USB.
// usb_cdc.h ya incluye los arch antes citados, reviza usb_cdc.h
#include "usb_cdc.h" // Descripción de funciones del USB.
//short estado_usb; // boolean global, se debe declarar antes de llamar a usb_cdc.h
//#define USB_CON_SENSE_PIN PIN_B2
#define USB_CON_SENSE_PIN PIN_E3
//#define PORTB = busdata // Defino el puerto B como la entrada de datos
//#byte PORTB =0x81 // defino portb reg 0x81 del 18f4550
// Declaracion de funciones
static void adqrap(void); // Defino adquisicion rapida
static void adqlen(void); // Defino adquisicion lenta
static void lectur(void); // Funcion Lectura
static void escrit(void); // Funcion Esctritura
// Declaracion de variables
int8 var1;
char var;
void main() {
//set_tris_b (0xff);
//set_tris_a (00010000);
delay_ms(300);
usb_cdc_init();
usb_init();
while(!usb_cdc_connected()) {}
// espera a detectar una transmisión de la PC (Set_Line_Coding)
do{
usb_task();
if (usb_enumerated()){
var1=input_b();
var=input_b();
//usb_cdc_putc(var1);
//usb_cdc_putc(var);
if(usb_cdc_kbhit()){ //en espera de nuevo(s) caracter(es) en el buffer
if(usb_cdc_getc()=='x'){ //¿lo que llegó fué el caracter x?
printf(usb_cdc_putc, "Probando comunicacion\n\r");
//si, entonces envía una cadena hacia el PC
}
if(usb_cdc_getc()=='a'){ //¿lo que llegó fué el caracter a?
printf(usb_cdc_putc, "Proximamente datos osciloscopio\n\r");
//si, entonces envía una cadena hacia el PC
}
if(usb_cdc_getc()=='b'){ //¿lo que llegó fué el caracter b? // aca t muestra el valor de PORTB
printf(usb_cdc_putc, "PORTB= %c\n\r",var);
printf(usb_cdc_putc, "PORTB= %u\n\r",var1);}
}
}
}while (TRUE); // bucle eterno
}
Hice las pruebas con dos soft y con ambos funciona igual ve las imagenes