include "modedefs.bas" define osc 20 Define ADC_BITS 10 ' 10-BITNI AD KONVERTOR Define ADC_CLOCK 1 ' Klok (1=Oscilator /8) DEFINE HSER_RCSTA 90h ' OMOGUCI SERIJSKI PORT I KONTINUALAN PRIJEM DEFINE HSER_BAUD 2400 ' BRZINA 2400 DEFINE HSER_SPBRG 129 ' 2400 Baud @ 8MHz, 0,17% AD_Rez_1 var word ' REZULTAT AD KONVERZIJE AD_Rez_2 var word AD_Rez_3 var word AD_Rez_4 var word AD_Rez_5 var word AD_Rez_6 var word AD_Rez_7 var word AD_Rez_8 var word i var byte USBBufferSizeMax con 18 ' Maksimalna velicina bafera USBBufferSizeTX con 18 ' Ulaz USBBufferSizeRX con 18 ' Izlaz test var byte USBBuffer var byte[USBBufferSizeMaX] USBBufferCount var byte 'Odabiranje pojedinih AD kanala ADCON0 = %0000001 ' KANAL1 ADCON0 = %0000101 ' KANAL2 ADCON0 = %0001001 ' KANAL3 ADCON0 = %0001101 ' KANAL4 ADCON0 = %0010001 ' KANAL5 ADCON0 = %0010101 ' KANAL6 ADCON0 = %0011001 ' KANAL7 ADCON0 = %0011101 ' KANAL8 TRISA = %11111111 ' PORT A JE ULAZNI ADCON1 = %10000010 ' PORT A JE U ANALOGNOM MODU, ' REZULTAT JE DESNO FORMATIRAN, ' 0 I 5 SU REFERENTNI NAPONI. low porte.0 ' Signalna lampica na portu e.0 ugasena TRISC.7 = 1 TRISC.6 = 1 RCSTA.7 = 1 Pocetak: ProgramStart: GOsub DoSerIn goto ProgramStart DoSerIn: usbbuffercount = usbbuffersizerx hserin [dec usbbuffer[0]] if usbbuffer[0] = 254 THEN gosub DoSerOut endif return DoSerOut: usbbuffercount = usbbuffersizetx USBBuffer[0] = 254 'REALIZACIJA AD KONVERZIJE adcin 0, ad_rez_3 'izvrsi konverziju na RA0 i 10 bita 'rezultata smesti u AD_rez_3 adcin 1, ad_rez_4 'izvrsi konverziju na RA1 i 10 bita 'rezultata smesti u AD_rez_4 adcin 2, ad_rez_1 'izvrsi konverziju na RA2 i 10 bita 'rezultata smesti u AD_rez_1 adcin 3, ad_rez_2 'izvrsi konverziju na RA3 i 10 bita 'rezultata smesti u AD_rez_2 adcin 4, ad_rez_5 'izvrsi konverziju na RA4 i 10 bita 'rezultata smesti u AD_rez_5 adcin 5, ad_rez_6 'izvrsi konverziju na RA5 i 10 bita 'rezultata smesti u AD_rez_6 adcin 6, ad_rez_7 'izvrsi konverziju na RA6 i 10 bita 'rezultata smesti u AD_rez_7 adcin 7, ad_rez_8 'izvrsi konverziju na RA7 i 10 bita 'rezultata smesti u AD_rez_8 usbbuffer[1] = ad_rez_1.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[2] = ad_rez_1.Highbyte 'Visi bajt rezultata smesti 'u USBBuffer[2] usbbuffer[3] = ad_rez_2.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[3] usbbuffer[4] = ad_rez_2.highbyte 'Visi bajt rezultata smesti 'u USBBuffer[4] usbbuffer[5] = ad_rez_3.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[5] usbbuffer[6] = ad_rez_3.highbyte 'Visi bajt rezultata smesti 'u USBBuffer[6] Usbbuffer[7] = ad_rez_4.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[7] usbbuffer[8] = ad_rez_4.highbyte 'Visi bajt rezultata smesti 'u USBBuffer[8] usbbuffer[9] = ad_rez_5.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[9] usbbuffer[10] = ad_rez_5.Highbyte 'Visi bajt rezultata smesti 'u USBBuffer[10] usbbuffer[11] = ad_rez_6.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[11] usbbuffer[12] = ad_rez_6.highbyte 'Visi bajt rezultata smesti 'u USBBuffer[12] usbbuffer[13] = ad_rez_7.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[13] usbbuffer[14] = ad_rez_7.highbyte 'Visi bajt rezultata smesti 'u USBBuffer[14] Usbbuffer[15] = ad_rez_8.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[15] usbbuffer[16] = ad_rez_8.highbyte 'Visi bajt rezultata smesti 'u USBBuffer[16] high porte.0 hserout [dec usbbuffer[1]] timeout2: hserin 5000,timeout2, [dec test] if test = 111 then hserout [dec usbbuffer[2]] endif low porte.0 timeout3: hserin 5000,timeout3, [dec test] if test = 111 then hserout [dec usbbuffer[3]] endif high porte.0 timeout4: hserin 5000,timeout4, [dec test] if test = 111 then hserout [dec usbbuffer[4]] endif low porte.0 timeout5: hserin 5000,timeout5, [dec test] if test = 111 then hserout [dec usbbuffer[5]] endif high porte.0 timeout6: hserin 5000,timeout6, [dec test] if test = 111 then hserout [dec usbbuffer[6]] endif low porte.0 timeout7: hserin 5000,timeout7, [dec test] if test = 111 then hserout [dec usbbuffer[7]] endif high porte.0 timeout8: hserin 5000,timeout8, [dec test] if test = 111 then hserout [dec usbbuffer[8]] endif low porte.0 timeout9: hserin 5000,timeout9, [dec test] if test = 111 then hserout [dec usbbuffer[9]] endif high porte.0 timeout10: hserin 5000,timeout10, [dec test] if test = 111 then hserout [dec usbbuffer[10]] endif low porte.0 timeout11: hserin 5000,timeout11, [dec test] if test = 111 then hserout [dec usbbuffer[11]] endif high porte.0 timeout12: hserin 5000,timeout12, [dec test] if test = 111 then hserout [dec usbbuffer[12]] endif low porte.0 timeout13: hserin 5000,timeout13, [dec test] if test = 111 then hserout [dec usbbuffer[13]] endif high porte.0 timeout14: hserin 5000,timeout14, [dec test] if test = 111 then hserout [dec usbbuffer[14]] endif low porte.0 timeout15: hserin 5000,timeout15, [dec test] if test = 111 then hserout [dec usbbuffer[15]] endif high porte.0 timeout16: hserin 5000,timeout16, [dec test] if test = 111 then hserout [dec usbbuffer[16]] endif low porte.0 ' Ugasi signalnu lampicu RETURN