예제 #1
0
/******************************************************************************
 * @fn      HalDMAInit
 *
 * @brief   DMA Interrupt Service Routine
 *
 * @param   None
 *
 * @return  None
 *****************************************************************************/
HAL_ISR_FUNCTION( halDmaIsr, DMA_VECTOR )
{
  DMAIF = 0;

  if (ZNP_CFG1_UART == znpCfg1)
  {
    if (HAL_DMA_CHECK_IRQ(HAL_DMA_CH_TX))
    {
      extern void HalUARTIsrDMA(void);
      HalUARTIsrDMA();
    }
  }
  else
  {
    if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_RX ) )
    {
      HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_RX );
      HalSpiRxIsr();
    }

    if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_TX ) )
    {
      HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_TX );
      HalSpiTxIsr();
    }
  }
}
예제 #2
0
파일: hal_dma.c 프로젝트: 12019/hellowsn
/******************************************************************************
 * @fn      HalDMAInit
 *
 * @brief   DMA Interrupt Service Routine
 *
 * @param   None
 *
 * @return  None
 *****************************************************************************/
HAL_ISR_FUNCTION( halDmaIsr, DMA_VECTOR )
{
  extern void HalUARTIsrDMA(void);

  DMAIF = 0;

#if HAL_UART_DMA
  if (HAL_DMA_CHECK_IRQ(HAL_DMA_CH_TX))
  {
    HalUARTIsrDMA();
  }
#endif // HAL_UART_DMA

#if (defined HAL_SPI) && (HAL_SPI == TRUE)
  if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_RX ) )
  {
    HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_RX );
    HalSpiRxIsr();
  }

  if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_TX ) )
  {
    HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_TX );
    HalSpiTxIsr();
  }
#endif // (defined HAL_SPI) && (HAL_SPI == TRUE)

#if (defined HAL_IRGEN) && (HAL_IRGEN == TRUE)
  if ( HAL_IRGEN == TRUE && HAL_DMA_CHECK_IRQ( HAL_IRGEN_DMA_CH ) )
  {
    HAL_DMA_CLEAR_IRQ( HAL_IRGEN_DMA_CH );
    HalIrGenDmaIsr();
  }
#endif // (defined HAL_IRGEN) && (HAL_IRGEN == TRUE)
}
예제 #3
0
파일: hal_dma.c 프로젝트: Daan1992/WSN-Lab
/******************************************************************************
 * @fn      HalDMAInit
 *
 * @brief   DMA Interrupt Service Routine
 *
 * @param   None
 *
 * @return  None
 *****************************************************************************/
HAL_ISR_FUNCTION( halDmaIsr, DMA_VECTOR )
{
  HAL_ENTER_ISR();

  DMAIF = 0;

  if (ZNP_CFG1_UART == znpCfg1)
  {
    if (HAL_DMA_CHECK_IRQ(HAL_DMA_CH_TX))
    {
      extern void HalUARTIsrDMA(void);
      HalUARTIsrDMA();
    }
  }
#if (defined HAL_SPI) && (HAL_SPI == TRUE)
  else
  {
    if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_RX ) )
    {
      HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_RX );
      HalSpiRxIsr();
    }

    if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_TX ) )
    {
      HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_TX );
      HalSpiTxIsr();
    }
  }
#endif // #if (defined HAL_SPI) && (HAL_SPI == TRUE)

  HAL_EXIT_ISR();
}