[an error occurred while processing this directive]
Не присылается пакет Setup ISP1581
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Seven 30 мая 2006 г. 01:12

Ни в какую не приходит пакет Setup на Philips 1581. Работаю по прерываниям (хотя работал по опросу, результат тот же. Контроллер MCS51 семейства. Листинг программы:

void main(void)
{
usb_init();

EX1=1;
EA=1;

while(1)
{

/* если получен пакет SETUP */
if(USB_INT2.BITS.EP0SETUP!=0)
{
USB_INT2.BITS.EP0SETUP=0;

/* начать процесс нумерации и разбора запроса */
usb_read_request();
}

if(USB_INT1.VALUE!=0)
{


/* если получен сигнал "засыпания" */
if((USB_INT1.VALUE&MSK_SUSPI))
{
USB_INT1.BITS.SUSP=0;
MDREG|=MSK_SUSP;
MODEREGWR();
MDREG&=~MSK_SUSP;
MODEREGWR();
}

// если получен сигнал побудки
if(USB_INT1.VALUE&MSK_RESUMEI)
{
/* сброс режима SUSPEND */

USB_INT1.BITS.RESUME=0;
MDREG|=MSK_SNDRESM;
MODEREGWR();
MDREG&=~MSK_SNDRESM;
MODEREGWR();

}
}
}
}

void usb_init()
{
unsigned int del=15000;

U_CS=0;
U_CS=1;
WR=1;
RD=1;
ALE=0;
U_CS=1;

EA=0;

do
{
U_RESET=0;

for(;del!=0;del--);

U_RESET=1;

for(del=15000;del!=0;del--);

if((U_READ(0x72)==0x15)&&(U_READ(0x71)==0x81))
break;
}
while(1);

for(del=1500;del!=0;del--);

usb_reg_init();
}

void usb_reg_init(void)
{
TESTMODREG_Value(MSK_FORCEFS);

MDREG=0x8D;
MODEREG_Value(MDREG);

INTCONFREG_Value(0x54);//0x54

ENINTREG4_Value(0);
ENINTREG3_Value(0);
ENINTREG2_Value(0xFF);
ENINTREG1_Value(0x39);
}

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru