// PIC18F14K50 in C - Versione 0.5b - Febbraio 2011 // Copyright (c) 2010-2011 VincenzoV.net // Creative Commons | Attribuzione-Condividi allo stesso modo 3.0 Unported. // Creative Commons | Attribution-Share Alike 3.0 Unported // https://www.vincenzov.net/tutorial/elettronica-di-base/PIC18F14K50 // Using USB - Communication Device Class // (add code in Microchip USB Framework) void ProcessIO(void) { static int byte_counter=0; BYTE char_to_send; // If USB not configurated: return to main if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) return; CDCTxService(); if (getsUSBUSART (USB_Out_Buffer, 1)) { switch (USB_Out_Buffer[0]) { case '1': mLED_1_On(); break; case '2': mLED_2_On(); break; case '3': mLED_3_On(); break; case '4': mLED_4_On(); break; case '0': mLED_1_Off();mLED_2_Off();mLED_3_Off();mLED_4_Off(); break; } if(USBUSARTIsTxTrfReady()) { // Change "STACK SIZE=0xB0 RAM=gpr1" in linker configuration if using sprinf() // sprintf(USB_In_Buffer, (const far rom char*)"%i - Char received: %c\r\n", ++byte_counter, USB_In_Buffer[0]); itoa(++byte_counter, USB_In_Buffer); strcatpgm2ram(USB_In_Buffer,(const far rom char*) " Char received: "); USB_In_Buffer[strlen(USB_In_Buffer) - 1] = USB_Out_Buffer[0]; strcatpgm2ram(USB_In_Buffer,(const far rom char*) "\r\n"); //char_to_send = strlen(USB_In_Buffer); //putUSBUSART(USB_In_Buffer, char_to_send ); putsUSBUSART(USB_In_Buffer); } } }