(Kinetis K60)外部引脚中断
PA12引脚中断初始化。
void Exit_Init(void) { SIM_SCGC5 |= (1<<9); //开启PORTA端口 PORTA_PCR12 |= (1<<8) | (10<<16) | (3); //GPIO 下降沿触发 上拉电阻 GPIOA_PDDR &= ~(1<<12); //输入模式 enable_irq(87); //使能PORT中断 }
SIM_SCGC5 使能PORTA
PORTA_PCR12下降沿触发(1010)
使能上拉输出
PORTA的中断号
重定义中断服务函数
中断服务函数
#include "common.h" #include "isr.h" char str[] = "EXIT "; U8 i; void PORTA_IRQHandler(void) { if(PORTA_ISFR & (1<<12)) //PTA12触发中断 { PORTA_ISFR |= (1<<12); //写1清中断标志位 for(i=0; str[i]!='\0'; i++) Uart4_SendByte(str[i]); } }
PORTA_ISFR寄存器
程序运行……