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

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

Отправлено SergeyL 13 ноября 2002 г. 11:31
В ответ на: Ответ: проблема проявляется в том, что (+) отправлено Dimych76 13 ноября 2002 г. 10:33

>>out TX_CMD_PORT, TX_START_ALL_BYTES ; (304h)<-0C0h
Тут наверно просто описка, но все равно спрошу, почему <-0C0h ? Я пишу 0x00C9.

В остальном вроде все правильно. На всякий случай приведу как сделано у меня.

void cs8900_output()
{
int tries = 0;
u16_t *ptr=0;

// exit if link has failed
PACKETPP = CS_PP_LINESTATUS;
if ((PPDATA & 0x0080U/*LinkOK*/) == 0) return; // no Ethernet link

// transmit command
TXCMD = 0x00C9U;
TXLENGTH = uip_len;

PACKETPP = CS_PP_BUSSTATUS;
// not ready for transmission and still within 100 retries?
while(((PPDATA & 0x0100U/*Rdy4TxNOW*/) == 0) && (tries++ < 100))
{
// throw away the last committed received frame
PACKETPP = CS_PP_RXCFG;
PPDATA = (0x0003U | 0x0040U/*Skip_1*/ | 0x0100U/*RxOKiE*/);
PACKETPP = CS_PP_BUSSTATUS;
}

ptr = (u16_t *)&uip_buf[0];
// ready to transmit?
if((PPDATA & 0x0100U/*Rdy4TxNOW*/) != 0)
{
mempushNF(&RXTXREG, uip_buf, (uip_len+1) / 2);
}
else
{

}

uip_len = 0;
return;
}

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

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru