Эдуард1978 (09.06.2015 09:57, просмотров: 222) ответил Ксения на У меня оно так:
Ура все заработало ! Спасибо за пподержку участникам форума! Вот исправленный участок кода: void InitUSB ()
{
//UHWCON =(1<<UVREGE)|(1<<UIDE)|(1<<UIMOD);
UHWCON = (1<<UIMOD) | (1<<UVREGE); // это надо если нужно включить регулятор напряжения для USB модуля
// UDINT=0;
_delay_ms(15);
PLLCSR = (1<<PLLP2) | (1<<PLLP1) |(0<<PLLP0)| (1<<PLLE);
while ((PLLCSR & 1)==0);
USBCON = (1<<USBE) | (1<<VBUSTE)| (1<<OTGPADE) ;
USBCON&=~((1<<HOST)|(1<<FRZCLK));
UDINT=0;
// Endpoint 0 selected
UENUM=0;
// Device endpoint registers initialization
// Endpoint 0: On
UECONX=0x01;
UECFG0X=0x00;
// Endpoint X size: 8
// Endpoint X Banks: 1
//ALLOC ON
UECFG1X=0x30;
UECFG1X|=(1<<ALLOC);
while(!(UESTA0X&(1<<CFGOK)));// Endpoint X configuration: Control, OUT
//USBCON&=~((1<<HOST)|(1<<FRZCLK));
UDCON&=~((1<<LSM)|(1<<DETACH));
USB_curr_config=0;
USB_USWSTAT=POWERED_STATE;// ; default to powered state
USB_device_status=1;//, BANKED
USB_dev_req=NO_REQUEST;//, BANKED ; No device requests in process
UDINT=0;
}
void USBReset ()
{
UDADDR = 0;
USB_address_pending=0;
USBCON = (1<<USBE) | (1<<VBUSTE)|(1<<OTGPADE) ;;
USBCON&=~((1<<HOST)|(1<<FRZCLK));
UDINT=0;
// Endpoint 0 selected
UENUM=0;
// Device endpoint registers initialization
// Endpoint 0: On
//UECONX=0x00;
UECONX=0x01;
UECFG0X=0x00;
// Endpoint X size: 8
// Endpoint X Banks: 1
//ALLOC ON
UECFG1X=0x30;
UECFG1X|=(1<<ALLOC);
while(!(UESTA0X&(1<<CFGOK)));// Endpoint X configuration: Control, OUT
//USBCON&=~((1<<HOST)|(1<<FRZCLK));
UDCON&=~((1<<LSM)|(1<<DETACH));
index1=0;
USB_curr_config=0;
USB_device_status=1;
USB_USWSTAT=DEFAULT_STATE;
UDINT=0;
PORTB|=(1<<5);
}