Usb Problemi

Başlatan muhittin_kaplan, 17 Mart 2010, 22:46:18

muhittin_kaplan

Yeni Bir Cihaz Hazırladım.
Laptopta ve denediğin 3-4 pc de çalıştı gayet güzel. Ama Evdeki Pc de denediğinde çalışmadı sebebi neler olabilir acaba ?

muhittin_kaplan

Yok. Laptop da da çalışmıyor. Aslında Çalışıyor yanlız Bir Müddet Sonra Bağlantı Kopuyor.
Protonta UsbPoll gibi bir komut vardı swordfish de ne acaba ?

ErsinErce


muhittin_kaplan

Hocam Problemi Biliyorum yanlız Çözemiyorum.
Yaptığım Cihaz Keyboard. ama Bir müddet sonra kapatıyor suspend moda geçiyor. gerçi kesme transferde neden suspend moda geçer onuda anlamış değilim.

ErsinErce

Usb sıkıntısı yüzünden C ye tam geçiş yaptım, alt komutları bulup çalıştırmak iyice problem haline gelmişti, verdiğim linkte aynı problemden dolayı SF de ki interrupt servisini kapatıp diğer işlemleri gerçekleştirmişler uzun zaman alan işlemlerde service fonksiyonunu direk çağırmışlar.
Kodlarınızda olmadığından dolayı tam birşey söylemekte mümkün değil malesef ama bağlantıyı canlı tutmak için her 2~10ms de bir "service()" komutunu kullanmanız gerekebilir.

muhittin_kaplan

SF ye yeni geçiş yaptım usb rutinleri için. Service rutuni çağırsak suspend moda grmez mi akşam deneyeyim.

Hocam Kodlar Aşağıda
{ 
***************************************************************************** 
*  
Name    : USB Keyboard demo.bas                                          * 
*  Author  : Nathan Herbert                                                 * 
*  Notice  : Copyright (c) 2008                                             * 
*          : All Rights Reserved                                            * 
*  Date    : 03/02/2009                                                     * 
*  Version : 1.1                                                            * 
*  Notes   : 1.0 First Revision                                             * 
*          : 1.1 Updated to read back LED status                            * 
*         : 1.2 Now opens own wordpad window to show possibile uses      * 
***************************************************************************** 
&
#125; 
{ 
Up to 6 individual simultaneous keys can be pressed by using Keyarray 1 through 5 
Alts
shiftctrls etc are handled though modifer bytesThese can be combined by 
ORing the required bytes together

&
#125; 

Device=18f2550 
Clock 
48 

// 20Mhz crystal, 48Mhz internal (FS USB) 

Config   PLLDIV 
Config   CPUDIV 
OSC1_PLL2 
Config   USBDIV 

Config   FOSC 
HSPLL_HS 
Config   VREGEN 
ON 

Config   MCLRE
=OFF 
    
#option HID_BUFFER_SIZE = 8 
#option USB_DESCRIPTOR = "HIDKeyboardDesc-1.bas" 


Include "usbhid.bas" 
Include "keyboarddefs.bas" 


// Keyboard HID buffer 
Structure TKeyReport 
   Modifier       
As Byte    // Modifer Byte 
   
Reserved      As Byte     // Reserved 
   
KeyArray0      As Byte      // Buttons Pushed 
   
KeyArray1      As Byte 
   KeyArray2      
As Byte 
   KeyArray3      
As Byte 
   KeyArray4      
As Byte 
   KeyArray5      
As Byte    
End Structure 
Dim KeyReport 
As TKeyReport Absolute TXReportRAM 

// Status LED structure 
Structure TLedsReport 
   _byte 
As Byte 
   NumLock       
As _byte.0 
   capslock       
As _byte.1 
   ScrollLock      
As _byte.2 
   Compose         
As _byte.3 
   Kana         
As _byte.4 
   Const1         
As _byte.5 
   Const2         
As _byte.6 
   Const3         
As _byte.7 
End Structure 
Dim LedsReport 
As TLedsReport Absolute RXReportRAM 


{ 
******************************************************************************** 
Name    : SendKey                                                           * 
Purpose : Sends Key Report                                                 * 
******************************************************************************** 
&
#125; 
Sub SendKey(pKey As Byte, pModifier As Byte) 

   // Send desired key 
   
KeyReport.Modifier   pModifier 
   KeyReport
.Reserved   
   KeyReport
.KeyArray0   pKey 
   KeyReport
.KeyArray1   
   KeyReport
.KeyArray2   
   KeyReport
.KeyArray3   
   KeyReport
.KeyArray4   
   KeyReport
.KeyArray5   

   WriteReport 

   
// Send Key Release 
   
KeyReport.Modifier   
   KeyReport
.Reserved   
   KeyReport
.KeyArray0   
   KeyReport
.KeyArray1   
   KeyReport
.KeyArray2   
   KeyReport
.KeyArray3   
   KeyReport
.KeyArray4   
   KeyReport
.KeyArray5   

   WriteReport 

End Sub 

{ 
******************************************************************************** 
Name    : Main                                                           * 
Purpose : Main Routine                                                 * 
******************************************************************************** 
&
#125; 
Sub Main() 
   
DelayMS(100) 
While true 
    
    
If LedsReport.capslock=1 Then 
        Select PORTB 
            
Case %11111110 
                SendKey
(one,None) 
            
Case %11111101 
                SendKey
(two,None) 
            
EndSelect    
   
EndIf 
         If  
HID.DataAvailable Then 
            
// Bring Report into structure 
            
ReadReport 
            
// Set LED 3 to show caps lock status 
         
EndIf 
    
Wend    

End Sub 

{ 
******************************************************************************** 
Name    : Program Start                                                     * 
Purpose :                                                              * 
******************************************************************************** 
&
#125; 

// Wait for USB attach 
Repeat 
Until HID
.Attached 


// Let PC finish enumerating 
DelayMS(5000) 
INTCON2.7=
Main 

muhittin_kaplan

evet şimdilik normal
while wend in arasına service () komutunu koyunca düzeldi.