bonjour ,
je suis étudiant en électronique, j'ai un projet qui a pour but de faire communiquer une interface PC et un PIC18f2550 avec une liaison USB(cordon type B). Mon problème est que lorsque je branche mon cordon usb, mon ordinateur ne reconnait pas le port.
voila le schéma structurelle de ma carte test :
et voici mon protocole de communication en c :
Code:#include "main.h" #define USB_CON_SENSE_PIN PIN_B2 #include <usb_cdc.h> #define BOUTON_POUSSOIR PIN_E3 #define LED_ON output_high #define LED_OFF output_low #define led_verte PIN_A1 #define led_jaune PIN_A0 #define led_rouge PIN_A2 #int_EXT2 void EXT2_isr(void) { disable_interrupts(INT_EXT2); //inhibe interruption sur INT2 disable_interrupts(GLOBAL); //inhibe interruption global enable_interrupts(INT_EXT2); //interruption possible sur INT2 enable_interrupts(GLOBAL); //interruption global pos } void main() { char c; int8 delay=0; setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); set_adc_channel(2); setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); set_tris_A(0b00101111); set_tris_B(0b11100101); set_tris_C(0b00001000); LED_ON (led_verte) ; LED_OFF (led_verte) ; LED_OFF(led_jaune); LED_OFF(led_rouge); enable_interrupts(INT_EXT2); enable_interrupts(GLOBAL); usb_init_cs(); // Initialisation USB sans attachement du peripherique a l'USB PC while (TRUE) { if(usb_attached() ) { LED_ON (led_verte) ; delay_ms(2000); LED_OFF (led_verte) ; delay_ms(2000); usb_task(); } //if(usb_attached() ) LED_ON (led_verte) ; if (usb_enumerated()) { printf("Boucle!!!!\r\n"); LED_ON(led_rouge); if (usb_cdc_kbhit()) { c=usb_cdc_getc(); if (c=='!') output_toggle(led_jaune); } if (++delay>200) { delay=0; printf(usb_cdc_putc,"\r\nADC = %lU",read_adc()); } delay_ms(5); } // if(BOUTON_POUSSOIR==1)LED_ON (led_jaune); } }
voila , si quelqu'un peut m'aider . Merci d'avance.
-----