Funpack第七期_DM164137_按键_adc采样
本次通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印电位计信息信息
标签
Funpack
DM164137
陈团团
更新2021-04-21
634

Funpack第七期说明文档

  我是来自安徽师范大学18级通信工程的一名学生,本次参加的是funpack的第七期活动,下面就开始我所完成的任务进行展示.

本期活动我所完成的是任务一的内容,即通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示。同时外接串口模块打印信息(包括按键信息,电位计信息)下面对本次所使用的评估板及传感器等元件进行介绍.

Fh4yEnjXVvCnXFUej4ByGZU3SHz3

本期开发板Microchip DM164137支持microchip的8,14,20引脚8位PICMCU.插槽两侧的双排扩展接口提供与PICMCU上所有引脚的连接灵活性.编程/调试是通过PIC板载调试器完成,无需外部编程工具.核心芯片支持5V和3.3V供电。板上包括一组4个指示LED,mTouch触摸按钮、按键开关以及可变电位器。 此外,它还具有蓝牙模块接口和以及mikroBUS标准接口.

主要代码为通过判断按键按下时间来亮起相对应的led,以及adc采样后的串口打印:

BTN_STATE button_check(uint8_t button)//enum mtouch_button_names button)
{
    switch(Button0_state[button])
    {
        case BTN_RELEASE:
        {
            if(Button0Touch)
            {
                Button0_state[button] = BTN_TOUCH;
            }
            break;
        }
        case BTN_TOUCH:
        {
            if(Button0Touch)
            {
                if(Button0_cnt>SHORT_PUSH_CNT)
                {
                    Button0_state[button] = SHORT_PUSH;

                    Button0_cnt = 0;
                }
                Button0_cnt++;
            }
            else
            {
                Button0_state[button] = CLICK;
                Button0_cnt = 0;
            }
            break;
        }
        case CLICK:
        {
            if(!Button0Touch)
            {
                LED_D6_Toggle();
                Button0_state[button] = WAIT_DOUBLE;
                Button0_cnt = 0;
            }
            break;
        }
        case DOUBLE_CLICK:
        {
            if(!Button0Touch)
            {
                Button0_state[button] = BTN_RELEASE;
                Button0_cnt = 0;
            }
            break;
        }
        case SHORT_PUSH:
        {
            if(Button0Touch)
            {
                if(Button0_cnt>LONG_PUSH_CNT)
                {
                    Button0_state[button] = LONG_PUSH;
                    LED_D5_Toggle();
                }
                Button0_cnt++;
            }
            if(!Button0Touch)
            {
                LED_D7_Toggle();
                Button0_state[button] = BTN_RELEASE;
                Button0_cnt = 0;
            }
            break;
        }
        case LONG_PUSH:
        {
            if(!Button0Touch)
            {
                Button0_state[button] = BTN_RELEASE;
                Button0_cnt = 0;
            }
            break;
        }
        case WAIT_DOUBLE:
        {
            if(Button0Touch)
            {
                LED_D4_Toggle();
                Button0_state[button] = DOUBLE_CLICK;
            }
            else
            {
                if(Button0_cnt>WAIT_DOUBLE_CNT)
                {
                    Button0_state[button] = BTN_RELEASE;
                    Button0_cnt = 0;
                }
                Button0_cnt++;
            }
            break;
        }
        default:break;
    }
}
            if(!Button0Touch)
            {
                LED_D6_Toggle();

                adcResult = ADCC_GetSingleConversion(ANC0);

                printf("voltage: %d\n\r", adcResult); 
                
                Button0_state[button] = WAIT_DOUBLE;
                Button0_cnt = 0;
            }

代码演示图如下,前四张为按键状态通过led显示,后两张为串口打印:

FnHgu1k1mFqGqJOd1dYWOW_xv8YgFvfm9Iqwc60zdxCJmlagO5LPoqYXFvl6kkU9ehnsLXX-c29D_Ov9eJvSFopaAeVjYWVikT9n1GbzcnBqp2e-Fj7OeqWIIViIcjHpINsA8btIEO6cFsQtOfzPXSppoxVJYI5EILux9Lss

以上就是本次活动的全部内容再次感谢funpack让我有机会接触到不一样的东西,让我学到了更多.

附件下载
ctt.X.rar
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号