Bom dia a todos do fórum, por favor me ajudem, a algum tempo venho tentando fazer uma comunicação entre o Pic 18f4550, Visual Basic 2010 e o circuito e quando achei que tinha conseguido, mais uma vez o objetivo não foi alcançado 100%.
Montei o circuito com o intuito de fazer se comunicar através da comunicação cdc, Tentei fazer a interface no Visual Basic c# e express. Segui umas vídeo aulas, ensinando a fazer um supervisório utilizando o visual express, peguei também o exemplo de código em c para ccs, Compilei fiz tudo com muita dedicação, na hora de testar, para minha felicidade o circuito foi reconhecido pela interface feita no VB, os círculos que representam os leds mudavam de estado conforme clicava na tecla criada no VB, para minha tristeza, quando fui medir com o multímetro as saídas do Pic elas não mudavam de estado, abaixo estarei postando o código em c, e a imagem do circuito e da interface em vb, conto com a colaboração dos interessados em ajudar.
Código:
//****************************************************************************//**************** ASCENDER LEDS PC( PC A PIC.....)*********************//****************************************************************************#include <18f4550.h>#fuses hspll,nowdt,nomclr,noprotect,nolvp,nodebug,usbdiv,pll5,cpudiv1,vregen#use delay(clock=48M) // clock a 48Mhz#define USB_CON_SENSE_PIN PIN_B2#include <usb_cdc.h> // declaro librerias USB#include <usb_desc_cdc.h> // Descriptores del dispositivo USB.//*********************** configuracion y declaraciones ****************#define ledv PIN_B6 // asignando etiquetas a el pinb6#define ledr PIN_B7#define ledon output_high // asignando etiquetas a la funcion output #define ledoff output_lowint8 data;void main(){ // inicio del codigo set_tris_d(0); set_tris_b(0); output_d(0);//********* CONFIGURAR EL HOST Y VISUALIZAR MEDIANTE LEDS************// ledoff(ledv); // enciendo el led rojo yq aun no detecta el host ledon(ledr); usb_cdc_init(); usb_init(); // inicializamos el USB usb_task(); //habilita periferico usb e interrupciones usb_wait_for_enumeration(); //esperamos hasta que el PicUSB sea configurado por el host ledoff(ledr); // encendemos el led verde ledon(ledv);//************ TERMINA DE VISUALIZAR LOS LEDS ****************************/////////////////////////////////////////////////////////////////////////////// ************** INICIO DEL PROGRAMA ************************************* while(!usb_cdc_connected()){} // espera a detectar una transmisión de la PC (Set_Line_Coding).{} while(true){ usb_task(); if(usb_enumerated()){ //retorna verdadero si el dispositivo esta enumerado if(usb_cdc_kbhit()){ // en espera de un nuevo caracter en el buffer de recepcion data=usb_cdc_getc(); if(data=='1') { output_toggle(PIN_D0); } if(data=='2') { output_toggle(PIN_D1); } if(data=='3') { output_toggle(PIN_D2); } if(data=='4') { output_d(0); } if(data=='5') { output_d(255); } usb_cdc_putc(data); } } }}
Bom o circuito feito no proteus:
Foto da interface feita no vb:
Bom fico no aguardo de ajuda para fazer isso funcionar, desde já agradeço.