当前位置:首页 > 单片机 > 单片机
[导读]//文件touchbutton.h#ifndef_TOUCHBUTTON_H_#define_TOUCHBUTTON_H_//=========宏定义===========================================#defineDEF_WATCH_TKREFER//查看参考-用于测试//================================

//文件touchbutton.h#ifndef_TOUCHBUTTON_H_#define_TOUCHBUTTON_H_//=========宏定义===========================================#defineDEF_WATCH_TKREFER//查看参考-用于测试//===========================================================#defineV_REFER1//AD值超过此值更新参考值#defineV_PRESS7//AD值-参考大于此值认为按键按下-按键灵敏度#defineVT_KTc30//更新参考值所需要的次数//--------按键位置定义-----------#defineK_TKONSETB0//ON/OFF#defineK_TKBLSETB1//沸腾#defineK_TKPUSETB2//水泵#defineK_TKSTSETB3//恒温设定//#defineV_TKQK1(uint8)5//快速加减时间值typedefstructTCHBUT{uint8KTc1;//更新参考值确认时间uint8KRefer1;//按键1参考电压uint8KTc2;//更新参考值确认时间uint8KRefer2;//按键2参考电压/*uint8KTc3;//更新参考值确认时间uint8KRefer3;//按键2参考电压uint8KTc4;//更新参考值确认时间uint8KRefer4;//按键2参考电压uint8KTc5;//更新参考值确认时间uint8KRefer5;//按键2参考电压uint8KTc6;//更新参考值确认时间uint8KRefer6;//按键2参考电压uint8KTc7;//更新参考值确认时间uint8KRefer7;//按键2参考电压//uint8KTc8;//更新参考值确认时间//uint8KRefer8;//按键2参考电压*/uint8KTVal1;uint8KTVal2;//uint8KTVal3;//uint8KTVal4;}tTCHBut;externxdatatTCHButtCHBut;#defineKTc1tCHBut.KTc1#defineKRefer1tCHBut.KRefer1#defineKTc2tCHBut.KTc2#defineKRefer2tCHBut.KRefer2#defineKTc3tCHBut.KTc3#defineKRefer3tCHBut.KRefer3#defineKTc4tCHBut.KTc4#defineKRefer4tCHBut.KRefer4#defineKTc5tCHBut.KTc5#defineKRefer5tCHBut.KRefer5#defineKTc6tCHBut.KTc6#defineKRefer6tCHBut.KRefer6#defineKTc7tCHBut.KTc7#defineKRefer7tCHBut.KRefer7//#defineKTc8tCHBut.KTc8//#defineKRefer8tCHBut.KRefer8#defineKTVal1tCHBut.KTVal1#defineKTVal2tCHBut.KTVal2#defineKTVal3tCHBut.KTVal3#defineKTVal4tCHBut.KTVal4//=======按键检测==============typedefstructBUTTON2{uint8TKNOW;//当前几次按键的状态uint8TKLST;//uint8TKLST1;//uint8TKLST2;//uint8TKLST3;uint8TKSTB;//去抖后按键状态uint8TKSTBL;//上次去抖后按键状态uint8TKAVL;//下降沿有效值uint8TKAVLP;//上升沿有效值uint8TKeyStatu;//读按键的当前值uint8TKLONG;//长按键计数//uint8TTconQK;//快速调节计数111555101010}tButton2;externtButton2tKey2;#defineTKNOWtKey2.TKNOW#defineTKLSTtKey2.TKLST#defineTKLST1tKey2.TKLST1//#defineKLST2tKey.TKLST2//#defineKLST3tKey.TKLST3#defineTKSTBtKey2.TKSTB#defineTKSTBLtKey2.TKSTBL#defineTKAVLtKey2.TKAVL#defineTKAVLPtKey2.TKAVLP#defineTKeyStatutKey2.TKeyStatu#defineTKLONGtKey2.TKLONG#defineTTconQKtKey2.TTconQK#defineV_TKLOV1200//1S确认为长按#defineV_TKLOV220//15//150MS置一次按键标志//=========================================typedefstructKFlag2//按键处理标志位定义{uint8Flg1:1;uint8Flg2:1;uint8Flg3:1;uint8Flg4:1;uint8Flg5:1;uint8Flg6:1;uint8Flg7:1;uint8Flg8:1;}tKFlg2;externtKFlg2KF2;//#defineF_TRdKeyOKKF2.Flg1//读按键有效#defineF_TKLOKF2.Flg2//长按有效//#defineF_TKQK1KF2.Flg4//#defineF_TKQK2KF2.Flg5#defineF_TKEYOKKF2.Flg6//===========================================//================================externvoidReadTKRefer(uint8CH_AD,uint8*a);externvoidCheckTouch1(void);externvoidCheckTouch2(void);externvoidCheckTKey(void);#endif//文件touchbutton.c#include"global.h"#include"touchbutton.h"//#include"touchbutton.h"/***********************************************触摸PWM 500K当按按键时 电压值抬高 ***********************************************/tButton2 tKey2 ;tKFlg2 KF2 ;xdata tTCHBut tCHBut ;//#defineLKEY_ENB//长按键使能//***************************************// 函数名称:ReadTKRefer// 函数功能:读触摸按键参考// 入口参数:CH_AD 按键AD通道 // 出口参数:*a 对应该按键的AD参考值//***************************************void ReadTKRefer(uint8 CH_AD,uint8 *a){uint8R_Save[3];uint8R_Save2[3];uint16 R_SaveSum = 0 ;    uint8 Tcon = 0 ;    uint8 Tmp1 ;    uint8 i ;    for(i=40;i>0;i--)    {        AdcSwitch(CH_AD) ;   //读按键1电压        Tmp1 = ADDH ;            RMov3Data_Byte(R_Save,Tmp1) ;    Tmp1 = C3MidVal(R_Save); //处理位数最大3位  取中值处理        RMov3Data_Byte(R_Save2,Tmp1) ;    Tmp1 = C3MidVal(R_Save2); //处理位数最大3位  取中值处理                R_SaveSum += Tmp1 ;            Tcon ++ ;        if(Tcon >= (1<<3))        {            *a = R_SaveSum>>3 ;             Tcon = 0 ;            R_SaveSum = 0 ;            }    }}//***************************************// 函数名称:CheckTouch1// 函数功能:检测触摸按键// 入口参数:无// 出口参数:无//***************************************void CheckTouch1(void) {    uint8 a[3];    uint8 Tmp1 ;    uint8 TmpAD ; //临时参考值    AdcSwitch(V_ADCH_tch1) ;   //读按键电压    a[0] = ADDH ;    _nop_();_nop_();_nop_();_nop_();_nop_();    AdcSwitch(V_ADCH_tch1) ;   //读按键电压    a[1] = ADDH ;    _nop_();_nop_();_nop_();_nop_();_nop_();    AdcSwitch(V_ADCH_tch1) ;   //读按键电压    a[2] = ADDH ;   //----以下为三次AD值的取中间值处理-----    TmpAD = C3MidVal(a) ;#ifdefDEF_WATCH_TKREFER    KTVal1 = TmpAD ;  //当前按键AD值 -- 用于测试   ^^^^^^^^^^^^^^^^^^^^#endif    if(!(TKSTB & SETB0)) //此按键此时处于抬起状态 --更改参考值    {        if(TmpAD < KRefer1)        {            Tmp1 = KRefer1 - TmpAD ;        }        else        {            Tmp1 = TmpAD - KRefer1 ;        }                if(Tmp1 >= V_REFER) //更新参考门槛值        {            KTc1 -- ;            if(KTc1 == 0)            {                KTc1 = VT_KTc ;                if(KRefer1 == TmpAD) //KRefer1 = TmpAD ;                 {}                else if(KRefer1 < TmpAD)                {                    KRefer1 ++ ;  //更新参考 每次加减1                     }

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭