DSP28335的外部中断

2019-07-14 14:28发布

interrupt void xint1_isr(void)//w5300 extra int
{         
//   uint8 * data_buf = (uint8 *) tx_buf;         // buffer for loopack data
   uint16 int_val;
   uint8 * data_buf = (uint8 *) tx_buf;
   uint16 idx;        
           wait_1us(1000);
    loopback_tcps(0,5000,data_buf,0);
//   initiate_w5300();
   IINCHIP_CRITICAL_SECTION_ENTER();
   

//   loopback_tcps(0,5000,data_buf,0);
   //M_01052008 : replaced '==' with '='.
   //while(int_val == IINCHIP_READ(IR))  // process all interrupt
   
//   while((int_val = IINCHIP_READ(IR)))  

    int_val = IINCHIP_READ(IR);
   {         
      for(idx = 0 ; idx < MAX_SOCK_NUM ; idx++)
      {

         if (int_val & IR_SnINT(idx))  // check the SOCKETn interrupt
         {
                    if((uint8)IINCHIP_READ(Sn_IR(idx)) & 0x10);
                    else                    
                    {
              SOCK_INT[idx] |= (uint8)IINCHIP_READ(Sn_IR(idx)); // Save the interrupt stauts to SOCK_INT[idx]               
              IINCHIP_WRITE(Sn_IR(idx),(uint16)SOCK_INT[idx]);  // Clear the interrupt status bit of SOCKETn         
                          }
         }
      }

      IINCHIP_WRITE(IR, int_val & 0xFF00);
   }
   IINCHIP_WRITE(IR, int_val & 0xFF00);

   
   IINCHIP_CRITICAL_SECTION_EXIT();

//   led_on(4);
//   loopback_tcps(0,5000,data_buf,0);
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}


中断设为下降沿进入

信号由W5300芯片的提高,有连接时输出低电平,无连接时输出高电平。

现在的现象是中断只能进一次,后面因为引脚一直为低电平,无法产生下降沿。此时已经断开连接了,并且程序已经执行了几步了,但是这个引脚的电平保持不变。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
10299823
1楼-- · 2019-07-14 20:23
无法触发吗?
cemaj
2楼-- · 2019-07-15 01:05
是不是保持时间太短?
jimmhu
3楼-- · 2019-07-15 01:45
是IO驱动有问题吗
lihuami
4楼-- · 2019-07-15 03:45
 精彩回答 2  元偷偷看……
xiaoyaozt
5楼-- · 2019-07-15 09:39
外部中断和其他模块中断中断原理一样,也是先设置中断级,然后PIE级,最后CPU级
10299823
6楼-- · 2019-07-15 15:25
使用上拉电阻了吗?

一周热门 更多>