Moderadores: andre_luis, 51, guest2003, Renie
Jorge_Francisco escreveu:Pois é, isso ja aconteceu comigo, no meu caso não tinha ajustado corretamente o PLL, veja se não é isso. Colocou capacitor no Vusb? Sua fonte está limpa? Tente verificar ruidos.
Vlw
program USB_HID_test; // p18f4550def delays
uses USBdsc2, USBGenHID;
var
k, i : byte;
//ch : array[20] of byte;
userWR_buffer : array[64] of byte;
userRD_buffer : array[64] of byte;
label
principal, loop, hid_fora;
//******************************************************************************
// interrupção
//******************************************************************************
procedure interrupt;
begin
HID_InterruptProc;
end;
//******************************************************************************
//******************************************************************************
// inicialização
//******************************************************************************
procedure Init_Main;
begin
//--------------------------------------
// Disable interrupts
//--------------------------------------
INTCON := 0; // desliga GIE, PEIE, TMR0IE,INT0IE,RBIE
INTCON2 := 0xF5;
INTCON3 := 0xC0;
RCON.IPEN := 0;
PIE1 := 0;
PIE2 := 0;
PIR1 := 0;
PIR2 := 0;
ADCON1 := ADCON1 or 0x0F;
//--------------------------------------
// configura portas
//--------------------------------------
TRISA := 0xFF;
TRISB := %11111110;
TRISC := 0xFF;
TRISD := 0Xff;
TRISE := 0x07;
LATA := 0;
LATB := 0;
LATC := 0;
LATD := 0;
LATE := 0;
//--------------------------------------
// limpa RAM
//--------------------------------------
asm
LFSR FSR0, $000
MOVLW $08
CLRF POSTINC0, 0
CPFSEQ FSR0H, 0
BRA $ - 2
end;
end;
//******************************************************************************
// Main Program Routine
//******************************************************************************
//var bbbb: byte; volatile;
begin
Init_Main;
loop:
delay_ms(500);
setbit(latb,0);
delay_ms(500);
clearbit(latb,0);
if testbit(portd,3)=1 then goto principal
else
goto loop;
principal:
setbit (UCFG,FSEN); //liga usb
setbit (UCFG,UPUEN); // liga pull up no D+ pra falar que é full speed
delay_ms(1);
HID_Enable(@userRD_buffer, @userWR_buffer); //inicializa comunicação usb
delay_ms(1000);
{ while true do
begin
if portd.3 = 0 then goto hid_fora {//se ptd.3 = 0 cabo usb desligado
else }
while portd.3 = 1 do
begin
k := HID_Read;
i := 0;
while i < k do
begin
setbit(latb,0);
userWR_buffer := userRD_buffer;
HID_Write(@userWR_buffer, k);
k := 0;
inc(i);
clearbit(latb,0);
end;
end;
hid_fora:
clearbit (UCFG,FSEN); //desliga usb
clearbit (UCFG,UPUEN);// desli pull de full speed
HID_Disable;
goto loop;
InitUSBdsc;
end.
+5V
|
_|_______
--------------|-o NA o|------------------ Reator-------------Neutro
| Fase---- |o C | | |
_ (110) |_o_____o| | |
^1N4148 | Rele Lâmpada
|_______________|
|
|
|
10k /
PIC---/\/\/\-| BC 548
\
|
GND
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante