0

pic 18f4550 を使用して、デフォルトの mikroelectronica の例を変更せずに非常に単純な USB 通信デバイスを構築しようとしています (vusb に接続された 100nf をいくつか持っていないハードウェアでのみ変更するため、それらを 470uf に置き換えましたが、入れませんでした私の水晶発振器との任意のpf)

ハードウェア: USB pic18f4550 の回路図

このコードは、Proteus シミュレーションでうまく機能しています。

unsigned char k;
unsigned char userWR_buffer[64];

const char *text = "MIKROElektronika Compilers ER \r\n";
//**************************************************************************************************
// Main Interrupt Routine
//**************************************************************************************************
void interrupt()
{
  HID_InterruptProc();
}
//**************************************************************************************************
//**************************************************************************************************
// Initialization Routine
//**************************************************************************************************
void Init_Main()
{
        //--------------------------------------
        // Disable all interrupts
        //--------------------------------------
        INTCON = 0;                             // Disable GIE, PEIE, TMR0IE,INT0IE,RBIE
        INTCON2 = 0xF5;
        INTCON3 = 0xC0;
        RCON.IPEN = 0;                          // Disable Priority Levels on interrupts
        PIE1 = 0;
        PIE2 = 0;
        PIR1 = 0;
        PIR2 = 0;

        ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
        CMCON  |= 7;                            // Disable comparators
        //--------------------------------------
        // Ports Configuration
        //--------------------------------------
        TRISA = 0xFF;
        TRISB = 0xFF;
        TRISC = 0xFF;
        TRISD = 0;
        TRISE = 0x07;

        LATA = 0;
        LATB = 0;
        LATC = 0;
        LATD = 0;
        LATE = 0;
        //--------------------------------------
        // Clear user RAM
        // Banks [00 .. 07] ( 8 x 256 = 2048 Bytes )
        //--------------------------------------
}
//**************************************************************************************************

//**************************************************************************************************
// Main Program Routine
//**************************************************************************************************

void main() {
 char i;

  Init_Main();

  HID_Enable(&userWR_buffer, &userWR_buffer);

  Delay_ms(1000);
  Delay_ms(1000);
  while(1) {
    Delay_ms(1000);
    i=0;
    while(text[i]) {
      userWR_buffer[0]= text[i++];
      while (!HID_Write(&userWR_buffer, 1));
      }
    }

  Delay_ms(1000);
  HID_Disable();
}
//**************************************************************************************************
4

1 に答える 1

0

水晶発振器にpfを入れていません

これはうまくいかないと思います。オシロスコープで水晶で何が起こっているかを確認してください。デバイスにはクロック入力がないため、何も実行されません。

于 2012-11-24T17:56:21.257 に答える