此帖出自单片机论坛
最新回复
本帖最后由 duanchao1230 于 2014-7-1 11:52 编辑
你好我的中断程序里面是这样处理的 你看看对不对 我现在老是断了 然后就连不上了void W5100_Interrupt_Process(void)
{
unsigned char i,j;
while(1)
{
i=Read_W5100(W5100_IR);
Write_W5100(W5100_IR, (i&0xf0));
if(i == 0)
{
break;
}
if((i & IR_CONFLICT) == IR_CONFLICT)
{
}
if((i & IR_UNREACH) == IR_UNREACH
{
}
if((i & IR_S0_INT) == IR_S0_INT)
{
j=Read_W5100(W5100_S0_IR);//¶áè¡Socket0ÖD¶Ï±êÖ¾¼Ä′æÆ÷ //»ØD′ÇåÖD¶Ï±êÖ¾ Write_W5100(W5100_S0_IR, j);//»ØD′ÇåÖD¶Ï±êÖ¾
if(j&S_IR_CON)//ÔúTCPÄ£ê½ÏÂ,Socket03é1|ᬽó
{
S0_State|=S_CONN;//íøÂçᬽó×′ì¬0x02,¶Ë¿úíê3éᬽ󣬿éòÔÕy3£′«êäêy¾Y
}
if(j&S_IR_DISCON)//ÔúTCPÄ£ê½ÏÂSocket¶Ï¿aᬽó′|àí
{
Write_W5100(W5100_S0_CR, S_CR_CLOSE);// 1رն˿ú,μè′yÖØDÂ′ò¿aᬽó S0_State=0;//íøÂçᬽó×′ì¬0x00,¶Ë¿úᬽó꧰ü
}
if(j&S_IR_SENDOK)//Socket0êy¾Y·¢Ëííê3é,¿éòÔÔù′ÎÆô¶ˉS_tx_process()oˉêy·¢Ëíêy¾Y {
S0_Data|=S_TRANSMITOK;//¶Ë¿ú·¢Ëíò»¸öêy¾Y°üíê3é
w5100sendflg = 0;
}
if(j&S_IR_RECV)//Socket½óêÕμ½êy¾Y,¿éòÔÆô¶ˉS_rx_process()oˉêy
{
S0_Data|=S_RECEIVE;//¶Ë¿ú½óêÕμ½ò»¸öêy¾Y°ü
}
if(j&S_IR_TIMEOUT)//Socketᬽó»òêy¾Y′«êä3¬ê±′|àí
{
Write_W5100(W5100_S0_CR, S_CR_CLOSE);
S0_State = 0;
}
} }
}
详情
回复
发表于 2014-7-1 11:46
| ||
|
||
| |
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目 |
|
此帖出自单片机论坛
| ||
|
||
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
EEWorld Datasheet 技术支持