W5100에 TCP 서버 모드로 구동시킬려는데 안되서 질문드려요.
SPI 모드로 사용할려고 하는데 위에 인터럽트나 외부메모리 관련 설정을 하면 다른 동작들도 다 안되는데
저는 SPI 모드로 동작하니까
- 인터럽트 관련 설정들은 전부 사용안해도 되는것인지…
- 외부메모리 설정은 외부메모리를 사용하지 않았는데 해줘야 되는 것인지 궁금합니다.
void InitWiznet(void)
{
// cli();
#ifndef DEF_IINCHIP_INT
EICRA=0x00;
EICRB=0x00;
EIMSK=0x00;
EIFR=0x00;
#else
EICRA = 0x00; // External Interrupt Control Register A clear
EICRB = 0x02; // External Interrupt Control Register B clear // edge
EIMSK = (1 << INT4); // External Interrupt Mask Register : 0x10
EIFR = 0xFF; // External Interrupt Flag Register all clear
// DDRE &= ~(1 << INT4); // Set PE Direction
// PORTE |= (1 << INT4); // Set PE Default value
#endif
#if (ATMEGA128_NUM_WAIT == ATMEGA128_0WAIT)
MCUCR = 0x80;
XMCRA=0x40;
XMCRB = 0x00; // disable bus keeper, use PC0-PC7 as address
#elif (ATMEGA128_NUM_WAIT == ATMEGA128_1WAIT)
MCUCR = 0xc0; // MCU control regiseter : enable external ram
XMCRA=0x40; // External Memory Control Register A :
// Low sector : 0x1100 ~ 0x7FFF
// Upper sector : 0x8000 ~ 0xFFFF
XMCRB = 0x00; // disable bus keeper, use PC0-PC7 as address
#elif (ATMEGA128_NUM_WAIT == ATMEGA128_2WAIT )
MCUCR = 0x80;
XMCRA=0x42;
XMCRB = 0x00; // disable bus keeper, use PC0-PC7 as address
#elif (ATMEGA128_NUM_WAIT == ATMEGA128_3WAIT)
MCUCR = 0xc0;
XMCRA=0x42;
XMCRB = 0x00; // disable bus keeper, use PC0-PC7 as address
#else
#error “unknown atmega128 number wait type”
#endif
#if (__DEF_IINCHIP_BUS__ == __DEF_IINCHIP_SPI_MODE__)
//SPI Initialize
IINCHIP_SpiInit();
IINCHIP_CSInit();
IINCHIP_CSon();
#endif
// sei(); // enable interrupts
}