/*FUNCTION*------------------------------------------------------------------- * * Function Name : _bsp_usb_otg_max3353_pin_int_clear * Returned Value : none * Comments : * This function clears the pin interrupt flag associated with the max3353 interrupt pin * *END*----------------------------------------------------------------------*/ void _bsp_usb_otg_max3353_clear_pin_int_flag() { #if (OS_ADAPTER_ACTIVE_OS == OS_ADAPTER_MQX) if (PORT_ISFR_REG(MAX_3353_INT_PORT) & (1<<MAX3353_INT_PIN)) { PORT_ISFR_REG(MAX_3353_INT_PORT) |= 1<<MAX3353_INT_PIN; } #else if (HW_PORT_ISFR_RD(MAX_3353_INT_PORT) & (1<<MAX3353_INT_PIN)) { HW_PORT_ISFR_SET(MAX_3353_INT_PORT,1<<MAX3353_INT_PIN); } #endif }
/*! * @brief PORT初始化 * @param PTxn 端口 * @param cfg 端口属性配置,如触发选项和上拉下拉选项 * @since v5.0 * @note 与port_init_NoALT不同的是,此函数需要配置 MUX 复用功能, 否则 MUX = ALT0 * Sample usage: port_init (PTA8, IRQ_RISING | PF | ALT1 | PULLUP ); //初始化 PTA8 管脚,上升沿触发中断,带无源滤波器,复用功能为GPIO ,上拉电阻 */ void port_init(PTXn_e ptxn, uint32 cfg ) { SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK << PTX(ptxn)); //开启PORTx端口 PORT_ISFR_REG(PORTX_BASE(ptxn)) = (1<<PTn(ptxn)); // 清空标志位 PORT_PCR_REG(PORTX_BASE(ptxn), PTn(ptxn)) = cfg; // 复用功能 , 确定触发模式 ,开启上拉或下拉电阻 }
/*! * @brief PORT初始化 * @param PTxn 端口 * @param cfg 端口属性配置,如触发选项和上拉下拉选项 * @since v5.0 * @note 与port_init不同的是,此函数不需要配置 MUX 复用功能(即使配置了也不生效), MUX 保留 为原先寄存器配置的值 * Sample usage: port_init_NoALT (PTA8, IRQ_RISING | PF | PULLUP ); //初始化 PTA8 管脚,上升沿触发中断,带无源滤波器,保留原先复用功能,上拉电阻 */ void port_init_NoALT(PTXn_e ptxn, uint32 cfg) { SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK << PTX(ptxn)); //开启PORTx端口 PORT_ISFR_REG(PORTX_BASE(ptxn)) = (1<<PTn(ptxn)); // 清空标志位 //清空cfg里的MUX,加载寄存器里的MUX cfg &= ~PORT_PCR_MUX_MASK; //清了MUX 字段(即不需要配置ALT,保持原来的ALT) cfg |= (PORT_PCR_REG(PORTX_BASE(ptxn), PTn(ptxn)) & PORT_PCR_MUX_MASK); //读取寄存器里配置的 MUX PORT_PCR_REG(PORTX_BASE(ptxn), PTn(ptxn)) = cfg; // 复用功能 , 确定触发模式 ,开启上拉或下拉电阻 }