137 外部中斷。

#include "bat32g137.h"



int main(void)
{
	// 配置爲下降沿觸發
	INTM->EGN0 = 0x01;
	INTM->EGP0 = 0x00;
	// 配置爲輸入模式
	/* Set INTP0 pin */
	PORT->PM13 |= 0x40U;
	// 內部給P136上拉
	PORT->PU13 |= (1<<6); 
	//清除中斷掛起
	INTC_ClearPendingIRQ(INTP0_IRQn);/* clear INTP0 interrupt flag */
	// 開啓中斷
    INTC_EnableIRQ(INTP0_IRQn);/* enable INTP0 interrupt */
	
	PORT->POM0 &= ~(1<<5); // P05
	PORT->PMC0 &= ~(1<<5);
    PORT->PM0 &=  ~(1<<5);
	
	PORT->POM3 &= 0xFEU; // P30
    PORT->PM3 &= 0xFEU;

	while(1)
	{
		uint32_t t = 0;
		t = 1000000;
		while(t--);
		PORT->P0 |= (1<<5);
		t = 1000000;
		while(t--);
		PORT->P0 &= ~(1<<5);
	}
}

void IRQ01_Handler(void) __attribute__((alias("intc0_intc6_interrupt")));

static void intc0_intc6_interrupt(void)
{
    if (1U == INTC_GetPendingIRQ(INTP0_IRQn))
    {
        PORT->P3 ^= 0x01;
		INTC_ClearPendingIRQ(INTP0_IRQn); 
    }   
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章