INCLUDE "MODEDEFS.BAS" DEFINE OSC 8 DEFINE HSER_BAUD 2400 DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0 DEFINE HSER_SPBRG 51 ' 2400 Baud @ 8MHz, 0,17% DEFINE HSER_CLROERR 1 ' Clear overflow automatically txsta = %00100010 USBBufferSizeMax con 18 ' Maksimalna velicina bafera USBBufferSizeTX con 18 ' Ulaz USBBufferSizeRX con 18 ' Izlaz i var byte 'USB baferi USBBuffer Var Byte[USBBufferSizeMax] USBBufferCount Var Byte usbinit 'inicijalizacija USB-a Pocetak: ProgramStart: gosub DoUSBIn goto ProgramStart 'Podprogram za citanje podataka sa PC-a DoUSBIn: USBBufferCount = USBBufferSizeRX 'Velicina RX bafera USBService 'Odrzi konekciju USBIn 1, USBBuffer, USBBufferCount, DoUSBIn 'Procitaj podatke If USBBuffer[0] = 254 Then hserout [dec usbbuffer[0]] Gosub DoUSBOut USBBuffer[0] = 0 ' ili nesto drugo, samo da bude razlicito od 254 Endif Return 'Podprogram za upis podatana na PC-u DoUSBOut: USBBufferCount = USBBufferSizeTX 'Velicina TX bafera USBService 'resetuj promenljive usbbuffer[0]=254 uSBBuffer[1]=444 uSBBuffer[2]=444 uSBBuffer[3]=444 uSBBuffer[4]=444 uSBBuffer[5]=444 uSBBuffer[6]=444 uSBBuffer[7]=444 uSBBuffer[8]=444 uSBBuffer[9]=444 uSBBuffer[10]=444 uSBBuffer[11]=444 uSBBuffer[12]=444 uSBBuffer[13]=444 uSBBuffer[14]=444 uSBBuffer[15]=444 uSBBuffer[16]=444 'posalji odgovor 'Unos u promenljive pause 100 hserin [dec usbbuffer[1]] if usbbuffer[1]!=444 then hserout ["444"] endif hserin [dec usbbuffer[2]] if usbbuffer[2]!=444 then hserout ["444"] endif hserin [dec usbbuffer[3]] if usbbuffer[3]!=444 then hserout ["444"] endif hserin [dec usbbuffer[4]] if usbbuffer[4]!=444 then hserout ["444"] endif hserin [dec usbbuffer[5]] if usbbuffer[5]!=444 then hserout ["444"] endif hserin [dec usbbuffer[6]] if usbbuffer[6]!=444 then hserout ["444"] endif hserin [dec usbbuffer[7]] if usbbuffer[7]!=444 then hserout ["444"] endif hserin [dec usbbuffer[8]] if usbbuffer[8]!=444 then hserout ["444"] endif hserin [dec usbbuffer[9]] if usbbuffer[9]!=444 then hserout ["444"] endif hserin [dec usbbuffer[10]] if usbbuffer[10]!=444 then hserout ["444"] endif hserin [dec usbbuffer[11]] if usbbuffer[11]!=444 then hserout ["444"] endif hserin [dec usbbuffer[12]] if usbbuffer[12]!=444 then hserout ["444"] endif hserin [dec usbbuffer[13]] if usbbuffer[13]!=444 then hserout ["444"] endif hserin [dec usbbuffer[14]] if usbbuffer[14]!=444 then hserout ["444"] endif hserin [dec usbbuffer[15]] if usbbuffer[15]!=444 then hserout ["444"] endif hserin [dec usbbuffer[16]] pause 100 if usbbuffer[16]!=444 then USBOut 1, USBBuffer, USBBufferCount, DoUSBOut 'Posalji podatke PC-u endif Return