Funpack第七期_DM164137_按键_电位器采样
开发板设计了多种供电方式,可以通过电源插头或者直接引入电源供电,也可通过USB接口供电。核心芯片支持5V和3.3V供电。板上包括一组4个指示LED,mTouch触摸按钮、按键开关以及可变电位器。
标签
Funpack
DM164137
胖头鱼
更新2021-04-21
698

Funpack第七期说明文档

一、自我介绍  

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

二、功能及任务介绍

  通过按键扩展功能,分为按键点击(快速点击),短按(大于1秒),长按(大于5秒)用来控制板上LED显示,同时外接串口模块打印信息(包括按键信息,电位计信息).

三、开发板介绍

  下面对本次所使用的评估板及传感器等元件进行介绍.

Fh4yEnjXVvCnXFUej4ByGZU3SHz3

  本期开发板Microchip DM164137支持microchip的8,14,20引脚8位PICMCU.插槽两侧的双排扩展接口提供与PICMCU上所有引脚的连接灵活性.编程/调试是通过PIC板载调试器完成,无需外部编程工具.开发板设计了多种供电方式,可以通过电源插头或者直接引入电源供电,也可通过USB接口供电.核心芯片支持5V和3.3V供电.板上包括一组4个指示LED,mTouch触摸按钮、按键开关以及可变电位器. 此外,它还具有蓝牙模块接口和以及mikroBUS标准接口,可支持上百种基于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();//??????????D4,5,6,7
                //Get the top 4 MSBs and display it on the LEDs
                adcResult = ADCC_GetSingleConversion(ANC0);

 
                printf("POT VAL  %d\n\r", adcResult);
                
                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();//??????????D4,5,6,7
                //Get the top 4 MSBs and display it on the LEDs
                adcResult = ADCC_GetSingleConversion(ANC0);

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

下面是演示图:

Fl0Jv3ReC9GGYo0DBKu9SQn0m--QFpjmvKCTU6c6CBXu57XaNiltxG9-FgFh_bY5dlKYygceUSsTQ7Lq7VUjFumg9S7H5YX0mc3P45JOZqRdHqRKFpHpnuwz9HLWfmSutL_R0bcDsunUFivSE1mA626Fdc-4dDZ0EVyYNf3u

  从演示图可以看到功能符合任务要求.

五、心得体会

  那么以上就是本次活动的全部内容,完成本次项目后,我对DM164137有了更深刻的认识和了解,也熟悉了这个开发板的基本使用方法.感谢funpack让我有机会接触到各种各样的开发板,让我学到了更多学校里学不到的知识.

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