u8 KEY_DATA; u8 time_s_code=0; void TIM3_IRQHandler(void) //TIM3ÖÐ¶Ï { extern u8 key; static u8 flag = 1; //wechat finger¼Èë³É¹¦±ê־λ if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //¼ì²éTIM3¸üÐÂÖжϷ¢ÉúÓë·ñ { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //Çå³ýTIMx¸üÐÂÖжϱêÖ¾ IWDG_Feed(); key = TM1638_ReadKey(); KeyHandle(); KEY_DATA=KEY_Scan(1); //wechat¼Èë³É¹¦/finger 2019.10.19 if(KEY_DATA==4&&flag) { HMISends("page ok"); HMISendb(0xff); HMISends("ok.g0.txt="); HMISends("\""); HMISends("΢ÐÅÑéÖ¤³É¹¦");//ÏÔʾÆÁÏÔʾ HMISends("\""); HMISendb(0xff); } if(KEY_DATA==5&&flag) { HMISends("page ok"); HMISendb(0xff); HMISends("g0.txt="); HMISends("\""); HMISends("Ö¸ÎÆÑéÖ¤³É¹¦"); HMISends("\""); HMISendb(0xff); } if(code_y_n==0) { time_s_code++; if(time_s_code>=50) { code_y_n=1; time_s_code=1; } } if(KEY_DATA==4||KEY_DATA==5||code_y_n==0) { LED1=0; flag = 0; } else { LED1=1; flag = 1; } }
时间: 2024-04-19 09:24:22 浏览: 99
ucos_II+ucGUI+s3c2410+LCD+触摸屏整合
这段代码是一个定时器中断处理函数,用于处理定时器3的中断事件。在中断处理函数中,首先清除了TIM3的中断标志位,然后调用了TM1638_ReadKey函数读取键盘按键值,并将读取到的按键值传递给KeyHandle函数进行处理。接着使用KEY_Scan函数扫描键盘,将扫描结果保存在KEY_DATA变量中。
代码中还有一段判断语句,根据KEY_DATA的值来进行一些操作。如果KEY_DATA等于4且flag为真,就发送一些指令给HMI显示屏,显示一些信息。如果KEY_DATA等于5且flag为真,也发送一些指令给HMI显示屏,显示另外一些信息。最后根据条件判断LED1的状态。
另外,代码中还有一段和code_y_n、time_s_code有关的逻辑,根据条件判断time_s_code的值,并根据code_y_n的值进行一些操作。
总的来说,这段代码是一个用于处理定时器3中断事件的函数,其中包含了对键盘按键值的处理、HMI显示屏指令的发送以及LED状态的控制等功能。
阅读全文