STM32F1 EXTI

Started by tha, September 21, 2020, 09:04:51 AM

Previous topic - Next topic

tha

pending bit ที่ Pending Register(EXTI_PR) ที่โมดูล EXTI ก็มี ที่ NVIC ก็มี pending bit เราต้องเคลียร์ pending bit ทั้งสองจุดเลยหรือเปล่า เมื่อเข้าสู่โปรแกรมย่อย ISR แล้ว ในตัวอย่างที่ให้ไปก็มีการเคลียร์ที่จุดเดียว น่าจะเคลีบร์ที่ NVIC ใช่ไหม ก็ยังงงอยู่ ยังไม่ได้ลองบอร์ด ท่านใดลองแล้วช่วยอธิบายมาด้วยนะครับ

tha


tha

ก็บิตเดียวกัน เอาออกด้วย ลองเอาฟังชั่นนี้ไปใส่ดู ใส่ไม่ใส่ก็เหมือนกัน NVIC_ClearIRQChannelPendingBit(EXTI0_IRQChannel);
ลองไล่ดูในไฟล์ stm32f10x_nvic.c
Quote
/*******************************************************************************
* Function Name  : NVIC_ClearIRQChannelPendingBit
* Description    : Clears the NVIC's interrupt pending bit.
* Input          : - NVIC_IRQChannel: specifies the interrupt pending bit to clear.
* Output         : None
* Return         : None
*******************************************************************************/
void NVIC_ClearIRQChannelPendingBit(u8 NVIC_IRQChannel)
{
  /* Check the parameters */
  assert_param(IS_NVIC_IRQ_CHANNEL(NVIC_IRQChannel));
 
  NVIC->ICPR[(NVIC_IRQChannel >> 0x05)] = (u32)0x01 << (NVIC_IRQChannel & (u32)0x1F);
}


tha


tha

ตกลงให้แปลต่อนะครับ ทุกท่าน

tha

เอาเรื่องอะไรก่อนดี General-purpose timers (TIM2 to TIM5) ดีไหม ค่อยเป็นค่อยไป นะครับ