#include <18F4550.h>
#device ADC=10
#fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,CPUDIV1,PLL1,VREGEN,NOPBADEN //4mh
#use delay(clock=4000000)
#use rs232(baud=9600,rcv=PIN_C7,bits=8)
#define USB_HID_DEVICE TRUE
#define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT //Uçnokta1'de Kesme transferi aktif
#define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
#define USB_EP1_TX_SIZE 64 //Uçnokta1 için maksimum alınacak ve gonderilecek
#define USB_EP1_RX_SIZE 64 //veri boyutu (64 byte)
#include <pic18_usb.h>
#include "USB_Konfigurasyon.h" //USB konfigurasyon bilgileri bu dosyadadır.
#include <usb.c>
//////////////
/////////////
#define UcNokta1 1
#define usb_durum paket[0]
#define hata paket[1]
#define port_durum paket[2]
#define kontrol paket[3]
#define bekle paket[4]
/////////////
unsigned int8 paket[64];
unsigned int8 a,b,c,d,k=0;
void main(void)
{
usb_init();
usb_task();
usb_wait_for_enumeration(); //Cihaz, hazır olana kadar bekle
while(TRUE)
{
if(usb_enumerated())
{
a=getc();
b=getc();
c=getc();
d=getc();
k++;
if (usb_kbhit(1)) //Eğer pc'den yeni bir paket geldiyse
{
usb_get_packet(UcNokta1, paket, 64);
switch(kontrol) // Paketin ilk elemanındaki komutu oku ve ilgili göreve git
{
case 'o':
port_durum=8;
usb_durum=9;
paket[5]=a;
paket[6]=b;
paket[7]=c;
paket[8]=d;
paket[9]=k;
hata=input_b();
usb_put_packet(UcNokta1, paket, 64, USB_DTS_TOGGLE);//64
break;
}
}
}
}
}