123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- #include "hal_gpio.h"
- #include "string.h"
- //PE12无效
- /***********************GPIO IN**********************************************/
- //PD8 MCU开机信号 低电平触发
- //PD9 低输入1 下降沿触发
- //PD10 低输入2 下降沿触发
- //PC12 低输入3 下降沿触发
- //PE1 RTC中断 下降沿触发
- //PD11 高输入1 上升沿触发
- //PE0 高输入2 上升沿触发
- //PE12 WAKEUP1 上升沿触发
- //PE13 WAKEUP2 上升沿触发
- //PE14 WAKEUP3 上升沿触发
- void batt_power_on(void)
- {
- GPIO_SetPins(GPIO_PORT_C,GPIO_PIN_13);
- }
- void batt_power_off(void)
- {
- GPIO_ResetPins(GPIO_PORT_C,GPIO_PIN_13);
- }
- uint8_t batt_power_status(void)
- {
- return GPIO_ReadOutputPins(GPIO_PORT_D,GPIO_PIN_08);
- }
-
- void gpio_interrupt_init(void)
- {
- stc_extint_init_t stcExtIntInit;
- stc_gpio_init_t stcGpioInit;
-
-
- /* GPIO config 下降沿触发*/
- (void)GPIO_StructInit(&stcGpioInit);
- stcGpioInit.u16ExtInt = PIN_EXTINT_ON;
- stcGpioInit.u16PullUp = PIN_PU_ON;
- //(void)GPIO_Init(GPIO_PORT_C, GPIO_PIN_12, &stcGpioInit);
- (void)GPIO_Init(GPIO_PORT_D, GPIO_PIN_08|GPIO_PIN_09|GPIO_PIN_10, &stcGpioInit);
- //(void)GPIO_Init(GPIO_PORT_E, GPIO_PIN_01, &stcGpioInit);
- /* ExtInt config */
- (void)EXTINT_StructInit(&stcExtIntInit);
- stcExtIntInit.u32Filter = EXTINT_FILTER_ON;
- stcExtIntInit.u32FilterClock = EXTINT_FCLK_DIV8;
- stcExtIntInit.u32Edge = EXTINT_TRIG_FALLING;
- (void)EXTINT_Init(EXTINT_CH01, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH08, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH09, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH10, &stcExtIntInit);
- //(void)EXTINT_Init(EXTINT_CH12, &stcExtIntInit);
- memset(&stcGpioInit,0,sizeof(stcGpioInit));
- /* GPIO config 上升沿触发*/
- (void)GPIO_StructInit(&stcGpioInit);
- stcGpioInit.u16ExtInt = PIN_EXTINT_ON;
- stcGpioInit.u16PullUp = PIN_PU_OFF;
- (void)GPIO_Init(GPIO_PORT_D, GPIO_PIN_11, &stcGpioInit);
- (void)GPIO_Init(GPIO_PORT_E, GPIO_PIN_00|GPIO_PIN_01|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14, &stcGpioInit);
- /* ExtInt config */
- (void)EXTINT_StructInit(&stcExtIntInit);
- stcExtIntInit.u32Filter = EXTINT_FILTER_ON;
- stcExtIntInit.u32FilterClock = EXTINT_FCLK_DIV8;
- stcExtIntInit.u32Edge = EXTINT_TRIG_RISING;
- (void)EXTINT_Init(EXTINT_CH00, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH11, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH12, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH13, &stcExtIntInit);
- (void)EXTINT_Init(EXTINT_CH14, &stcExtIntInit);
-
- /* NVIC config */
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ0_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ0_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ0_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ1_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ1_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ1_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ8_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ8_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ8_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ9_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ9_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ9_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ10_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ10_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ10_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ11_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ11_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ11_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ12_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ12_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ12_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ13_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ13_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ13_IRQn);
-
- NVIC_ClearPendingIRQ(EXTINT_PORT_EIRQ14_IRQn);
- NVIC_SetPriority(EXTINT_PORT_EIRQ14_IRQn, DDL_IRQ_PRIO_DEFAULT);
- NVIC_EnableIRQ(EXTINT_PORT_EIRQ14_IRQn);
- }
- void EXTINT00_SWINT16_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH00))
- {
- //printf("EXTINT_CH00 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH00);
- }
- }
- void EXTINT01_SWINT17_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH01))
- {
- printf("EXTINT_CH01 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH01);
- }
- }
- void EXTINT08_SWINT24_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH08))
- {
- //printf("EXTINT_CH08 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH08);
- }
- }
- void EXTINT09_SWINT25_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH09))
- {
- //printf("EXTINT_CH09 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH09);
- }
- }
- void EXTINT10_SWINT26_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH10))
- {
- //printf("EXTINT_CH10 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH10);
- }
- }
- void EXTINT11_SWINT27_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH11))
- {
- //printf("EXTINT_CH11 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH11);
- }
- }
- void EXTINT12_SWINT28_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH12))
- {
- if(PIN_SET == GPIO_ReadInputPins(GPIO_PORT_E, GPIO_PIN_12))
- {
- //printf("EXTINT_CH12--:PE12 interruput\n");
- }
- if(PIN_RESET == GPIO_ReadInputPins(GPIO_PORT_C, GPIO_PIN_12))
- {
- //printf("EXTINT_CH12--:PC12 interruput\n");
- }
- EXTINT_ClearExtIntStatus(EXTINT_CH12);
- }
- }
- void EXTINT13_SWINT29_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH13))
- {
- //printf("EXTINT_CH13 interruput\n");
- EXTINT_ClearExtIntStatus(EXTINT_CH13);
- }
- }
-
- void EXTINT14_SWINT30_Handler(void)
- {
- if(SET == EXTINT_GetExtIntStatus(EXTINT_CH14))
- {
- //printf("EXTINT_CH14 interruput\n");
-
- EXTINT_ClearExtIntStatus(EXTINT_CH14);
- }
- }
-
|