#include <stdarg.h> #include "yc11xx.h" #include "ycdef.h" #include "yc11xx_gpio.h" #define KEY_ON 0 #define KEY_OFF 1 #define KEY_SCAN_GPIO 23 #define LED_GPIO 28 #define Led_Run(x) GPIO_CONFIG(x) = (GPIO_CONFIG(x)==GPCFG_OUTPUT_HIGH)? GPCFG_OUTPUT_LOW: GPCFG_OUTPUT_HIGH; /** *@brief Configure led gpio output. *@param Gpio: gpio number. *@param St false low, true high. *@return None. */ void Led_Gpio_Config(uint8_t Gpio,bool St) { GPIO_SetOutput(Gpio,St); } /** *@brief check key scan gpio status KEY_ON:input low; KEY_OFF: high. *@param Gpio: gpio number. *@return KEY_ON *@return KEY_ OFF */ uint8_t Key_Scan(uint8_t Gpio) { if(GPIO_GetInputStatus(Gpio) == KEY_ON) { while(GPIO_GetInputStatus(Gpio) == KEY_ON) return KEY_ON; } else return KEY_OFF; } void delay_ems(uint32_t time) { unsigned int cnt,j; for(cnt=0;cnt<time;cnt++) { for(j=0;j<4000;j++); } } void delay_eus(uint32_t time) { while(time--) { for(int i=0;i<250000;i++); } } /** *@brief Configure key scan gpio input. *@param Gpio: gpio number. *@param St false pullup, true pulldown. *@return None. */ void Key_Gpio_Config(uint8_t Gpio,bool St) { GPIO_SetInput(Gpio,St); } int main(void) { Key_Gpio_Config(KEY_SCAN_GPIO,false); Led_Gpio_Config(LED_GPIO,true); delay_eus(10000); Led_Gpio_Config(LED_GPIO,false); delay_eus(10); Led_Gpio_Config(LED_GPIO,true); while(1) { if(Key_Scan(KEY_SCAN_GPIO) == KEY_ON) { Led_Gpio_Config(LED_GPIO,false); Led_Gpio_Config(LED_GPIO,true); } } }