Подскажите, что может быть такое? работаю с 0 сокетом.Довожу его до SOCK_LISTEN, а в SOCK_ESTABLISHED никак не переходит. вод код программы:
unsigned char Gateway[4] = { 192, 168, 0, 1 } ; unsigned char Mask[4] = { 255, 255, 255, 0 } ; unsigned char MAC[6] = { 33, 77, 99, 55, 66, 11 } ; // ÌÀÑ àäðåñ unsigned char IP[4] = { 192, 168, 0, 199 } ; unsigned char TimeOut[2] = { 0x0F, 0xA0 } ; // TimeOut for Retransmission (0xFA0 = 400ms) unsigned char RetryCount = { 10 } ; unsigned char RxMemSize = { 0x55 } ; // RX Data Memory sizes for Channels unsigned char TxMemSize = { 0x55 } ; // RX Data Memory sizes for Channels
Write_Reg_W3150A ( MR, 0x80 ) ; // ñáðîñ âñåõ ðåãèñòðîâ
Write_Reg_W3150A ( GAR0 , Gateway[0] ) ; // Çàïèñûâàåì GATEWAY Write_Reg_W3150A ( GAR1 , Gateway[1] ) ; Write_Reg_W3150A ( GAR2 , Gateway[2] ) ; Write_Reg_W3150A ( GAR3 , Gateway[3] ) ;
Write_Reg_W3150A ( SHAR0, MAC[0] ) ; // Çàïèñûâàåì MAC Write_Reg_W3150A ( SHAR1, MAC[1] ) ; Write_Reg_W3150A ( SHAR2, MAC[2] ) ; Write_Reg_W3150A ( SHAR3, MAC[3] ) ; Write_Reg_W3150A ( SHAR4, MAC[4] ) ; Write_Reg_W3150A ( SHAR5, MAC[5] ) ;
Write_Reg_W3150A ( SUBR0, Mask[0] ) ; // Çàïèñûâàåì MASK Write_Reg_W3150A ( SUBR1, Mask[1] ) ; Write_Reg_W3150A ( SUBR2, Mask[2] ) ; Write_Reg_W3150A ( SUBR3, Mask[3] ) ;
Write_Reg_W3150A ( SIPR0, IP[0] ) ; // Çàïèñûâàåì IP ADDRESS Write_Reg_W3150A ( SIPR1, IP[1] ) ; Write_Reg_W3150A ( SIPR2, IP[2] ) ; Write_Reg_W3150A ( SIPR3, IP[3] ) ;
Write_Reg_W3150A ( RTR0, TimeOut[0] ) ; Write_Reg_W3150A ( RTR1, TimeOut[1] ) ;
Write_Reg_W3150A ( RCR, RetryCount ) ;
Write_Reg_W3150A ( RMSR, RxMemSize ) ; Write_Reg_W3150A ( TMSR, TxMemSize ) ;
#define TCP 1
Write_Reg_W3150A ( S0_MR , TCP ) ; Write_Reg_W3150A ( S0_PORT0, 0x0 ) ; Write_Reg_W3150A ( S0_PORT1, 0x80 ) ; Write_Reg_W3150A ( S0_CR, 1 ) ; // open socket while ( Read_Reg_W3150A (S0_SR) != 0x13 ) ;
Write_Reg_W3150A ( S0_CR, 2 ) ; // server mode while ( Read_Reg_W3150A (S0_SR) != 0x14 ) ;
далее, при обращении к этой микросхеме по сети, должен регистр S0_SR, равняться 0x17, но этого ни как не получается. В чем может быть дело?
|