pcbway

USB Haberleşmesi

Başlatan ebuzer83, 15 Mart 2012, 12:46:42

ebuzer83

15 Mart 2012, 12:46:42 Son düzenlenme: 24 Nisan 2012, 14:16:16 ebuzer83
Mrblar kodlarımı değiştirdim. Bu şekilde kodlar proteusta çalışıyor c# yazılımını da yaptım ve cihaza bilgi göndere biliyorum. Fakat devreyi kurup çalıştırdığımda yeni bir donanım bulunduğuna dair hiç bir şey olmuyor. konfigurasyon ayarlarında \"USB voltaj vegulatörü\" aktif ediyorum ondada usb aygıtı tanınmadı diyor. Üstadların yardımlarını bekliyorum.

#include \"USBdsc.c\"
sbit LCD_RS at RD0_bit;
sbit LCD_EN at RD1_bit;
sbit LCD_D4 at RD2_bit;
sbit LCD_D5 at RD3_bit;
sbit LCD_D6 at RD4_bit;
sbit LCD_D7 at RD5_bit;

sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISD2_bit;
sbit LCD_D5_Direction at TRISD3_bit;
sbit LCD_D6_Direction at TRISD4_bit;
sbit LCD_D7_Direction at TRISD5_bit;

unsigned char gidecek[64];
unsigned char gelen[64];

int i,j;
int yaz;

int d1,d2,d3,d4,d5;
unsigned char *veri=\"0000\";
unsigned char *veri2=\"000\";
//char d5;
//unsigned char[10]=0x30,0x31,0x30,0x33,0x34,0x35,0x36,0x37,0x38,0x39;
//char *veri3[7];

void interrupt() {

USB_Interrupt_Proc();

}

void main()
{
TRISA = 0;
TRISB = 0;
TRISC = 0xFF;
TRISD = 0xFF;
TRISE = 0x07;

LATA = 0;
LATB = 0;
LATC = 0;
LATD = 0;
LATE = 0;

          HID_Enable(&gelen, &gidecek);

          Lcd_Init();
          Lcd_Cmd(_LCD_CLEAR);
          Lcd_Cmd(_LCD_CURSOR_OFF);


           while(1)
           {
           if (HID_Read())
                {
                veri[0]=gelen[0];
                veri[1]=gelen[1];
                veri[2]=gelen[2];
                veri[3]=gelen[3];
                Lcd_Out(1,1,veri);

                d1=Dec2Bcd(gelen[1]-48)*100;
                d2=Dec2Bcd(gelen[2]-48)*10;
                d3=Dec2Bcd(gelen[3]-48);
                d5=d1+d2+d3;
                ByteToStr(d5,veri2);
                //ByteTostr(veri2,j);
                Lcd_Out(2,5,veri2);
                Lcd_Out(2,10,d5);

               if(gelen[0]==0x2B)
               {
                for(i=0;i<d5;i++)
                {
                     PORTB.B0=1;
                     Delay_ms(200);
                     PORTB.B0=0;

                     PORTB.B1=1;
                     Delay_ms(200);
                     PORTB.B1=0;

                     PORTB.B2=1;
                     Delay_ms(200);
                     PORTB.B2=0;

                     PORTB.B3=1;
                     Delay_ms(200);
                     PORTB.B3=0;
                     Delay_ms(200);
                     Lcd_Chr(2,15,i);
                                 }

                          }
                if(gelen[0]==0x2d)
                {
                for(i=0;i<d5;i++)
                {
                     PORTB.B3=1;
                     Delay_ms(200);
                     PORTB.B3=0;

                     PORTB.B2=1;
                     Delay_ms(200);
                     PORTB.B2=0;

                     PORTB.B1=1;
                     Delay_ms(200);
                     PORTB.B1=0;

                     PORTB.B0=1;
                     Delay_ms(200);
                     PORTB.B0=0;
                     Delay_ms(200);

                                     }  }   }   }
}

hikko

şu kitapta usb ile ilgili örnekleri ve uygulamaları bulabilirsin, usb konusu da anlatılmıştır.

http://www.altaskitap.com/MikroC-ve-PIC18F4550,PR-110.html

yazici67

Yalnız bu kodun Hid ile ilgisi yok ki.Tamam HID aktifleştirilmiş başlatılımış ama sonra program sonsuz döngüye giriyor ve sadece Portb ve porta ile uğraşıyor.Usb kesmesi ( mikro c de nasıl olur bilmiyorum ) belirtilmemiş...

hikko

merhabalar!

Mikroc & pic18f4550 isimli kitapta hem visual c# kompomenti ve kullanımı, hem de mikroc kullanımı detaylı şekilde anlatılıyor.

ebuzer83

yaptığım uygulama proteusta çalışmasına rağmen devreyi kurduğumda bilgisayarda herhangi bir algılama olmuyor. problem ne olabilir acaba

yazici67

Kodun şu anki hali teoride çalışır gözüküyor.Devreyi kabaloları rutin olarak kontrol et sonra denenmiş örneklerden yardım al.

ebuzer83

Hocam birçok örnek çalışma inceledim. Zaten program proteusta çalışıyor. devreyi yaptığımda çalışmıyor anlayamadım bi türlü. elimde daha önceden hazırlanmış bir hex dosyası onu pic\'e yazarken  konfigürasyon hatası veriyor ama donanımı algılıyor. O hex dosyası da CCS yazılmış. kabloları hiç değişmeden kendi hex dosyamı attığımda pic herhangi bir tepki vermiyor