Usb Problemi

Başlatan muhittin_kaplan, 17 Mart 2010, 19: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      *
*****************************************************************************
}
{
Up to 6 individual simultaneous keys can be pressed by using Keyarray 1 through 5
Alts, shift, ctrls etc are handled though modifer bytes. These can be combined by
ORing the required bytes together.
}
Device=18f2550
Clock = 48
// 20Mhz crystal, 48Mhz internal (FS USB)
Config   PLLDIV = 5
Config   CPUDIV = OSC1_PLL2
Config   USBDIV = 2
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                                                 *
********************************************************************************
}
Sub SendKey(pKey As Byte, pModifier As Byte)
  // Send desired key
  KeyReport.Modifier   = pModifier
  KeyReport.Reserved   = 0
  KeyReport.KeyArray0   = pKey
  KeyReport.KeyArray1   = 0
  KeyReport.KeyArray2   = 0
  KeyReport.KeyArray3   = 0
  KeyReport.KeyArray4   = 0
  KeyReport.KeyArray5   = 0
  WriteReport
  // Send Key Release
  KeyReport.Modifier   = 0
  KeyReport.Reserved   = 0
  KeyReport.KeyArray0   = 0
  KeyReport.KeyArray1   = 0
  KeyReport.KeyArray2   = 0
  KeyReport.KeyArray3   = 0
  KeyReport.KeyArray4   = 0
  KeyReport.KeyArray5   = 0
  WriteReport
End Sub
{
********************************************************************************
* Name    : Main                                                           *
* Purpose : Main Routine                                                 *
********************************************************************************
}
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 :                                                              *
********************************************************************************
}
// Wait for USB attach
Repeat
Until HID.Attached
// Let PC finish enumerating
DelayMS(5000)
INTCON2.7=0
Main

muhittin_kaplan

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