打印
[开发工具]

【新定义MCU开发板测评】NBK-RD8x3x 核心板+EBS003 IOT扩展板滑条

[复制链接]
538|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
今天捣鼓了捣鼓EBS003板子上的滑条,顺便把按键也加上了。
原理图:





代码:主程序:
#include "SC_Init.h"        //MCU Init header,Include all IC resource headers
#include "SC_it.h"
#include "..\Drivers\SCDriver_list.h"
#include "HeadFiles\SysFunVarDefine.h"
/**************************************Generated by EasyCodeCube*************************************/

/*************************************.Generated by EasyCodeCube.************************************/
/*****************************************************************************************************
* Function Name: main
* Description  : This function implements main function.
* Arguments    : None
* Return Value : None
******************************************************************************************************/
void main(void)
{       
    /*** MCU init***/
    SC_Init();
    /*<Generated by EasyCodeCube begin>*/
    /*<UserCodeStart>*//*<SinOne-Tag><9>*/
    TouchKeyInit();
    /*<UserCodeEnd>*//*<SinOne-Tag><9>*/
    /*<UserCodeStart>*//*<SinOne-Tag><10>*/
    while(1)
    {
        /*<UserCodeStart>*//*<SinOne-Tag><51>*/
        if(SOCAPI_TouchKeyStatus & 0x40)
        {
            /*<UserCodeStart>*//*<SinOne-Tag><55>*/
            SOCAPI_TouchKeyStatus &= 0xbf;
            /*<UserCodeEnd>*//*<SinOne-Tag><55>*/
            /*<UserCodeStart>*//*<SinOne-Tag><56>*/
            TouchKeyRestart();
            /*<UserCodeEnd>*//*<SinOne-Tag><56>*/
        }
        /*<UserCodeEnd>*//*<SinOne-Tag><51>*/
        /*<UserCodeStart>*//*<SinOne-Tag><14>*/
        if(SOCAPI_TouchKeyStatus & 0x80)
        {
            /*<UserCodeStart>*//*<SinOne-Tag><22>*/
            SOCAPI_TouchKeyStatus &= 0x7f;
            /*<UserCodeEnd>*//*<SinOne-Tag><22>*/
            /*<UserCodeStart>*//*<SinOne-Tag><18>*/
            exKeyValueFlag = TouchKeyScan();
            /*<UserCodeEnd>*//*<SinOne-Tag><18>*/
            /*<UserCodeStart>*//*<SinOne-Tag><79>*/
            Slider_value  = TKSlideModulePCBArray[0].OutValue;
            Module1_value = TKSlideModulePCBArray[1].OutValue;
            /*<UserCodeEnd>*//*<SinOne-Tag><79>*/
            /*<UserCodeStart>*//*<SinOne-Tag><35>*/
            UserCode();
            /*<UserCodeEnd>*//*<SinOne-Tag><35>*/
            /*<UserCodeStart>*//*<SinOne-Tag><36>*/
            TouchKeyRestart();
            /*<UserCodeEnd>*//*<SinOne-Tag><36>*/
        }
        /*<UserCodeEnd>*//*<SinOne-Tag><14>*/
    }
    /*<UserCodeEnd>*//*<SinOne-Tag><10>*/
    /*<Generated by EasyCodeCube end>*/
}
初始化代码:
void SC_Init(void)
{
        SC_GPIO_Init();
        SC_OPTION_Init();
        /*write initial function here*/       
        EA = 1;       
}

void SC_GPIO_Init(void)
{
        GPIO_Init(GPIO4, GPIO_PIN_2,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO4, GPIO_PIN_1,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO4, GPIO_PIN_0,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO1, GPIO_PIN_4,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO1, GPIO_PIN_5,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO1, GPIO_PIN_6,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO1, GPIO_PIN_7,GPIO_MODE_OUT_PP);
        GPIO_Init(GPIO3, GPIO_PIN_5, GPIO_MODE_OUT_PP);
    GPIO_Init(GPIO3, GPIO_PIN_4, GPIO_MODE_OUT_PP);
    GPIO_Init(GPIO0, GPIO_PIN_6, GPIO_MODE_OUT_PP);
    GPIO_Init(GPIO2, GPIO_PIN_2, GPIO_MODE_OUT_PP);
    GPIO_Init(GPIO0, GPIO_PIN_2, GPIO_MODE_OUT_PP);
    GPIO_Init(GPIO3, GPIO_PIN_7, GPIO_MODE_OUT_PP);
        /*GPIO_Init write here*/               
}
按键处理代码:
void UserCode()
{
    /*<UserCodeStart>*//*<SinOne-Tag><23>*/
               
        if(Slider_value>0&&Slider_value<25)  //挡位值0-7,L1灯亮
        {
            P14=1;
            P15=P16=P17=0;
        }
        if(Slider_value>=25&&Slider_value<50) //挡位值8-14,L1、l2灯亮
        {      
            P14=P15=1;
            P16=P17=0;
        }
        if(Slider_value>=50&&Slider_value<75) //挡位值15-22,L1、l2、l3灯亮
        {
            P14=P15=P16=1;
            P17=0;
        }
        if(Slider_value>=75&&Slider_value<=100) //挡位值23-30,L1、l2、l3、l4灯亮
        {
            P14=P15=P16=P17=1;               
        }
        if(Slider_value==0)   //没有滑条值,灯全灭
        {
            P14=P15=P16=P17=0;
        }
        ///////////////////////////////////////////////
                if((exKeyValueFlag&0x00000004)==0x00000004)
                {
                        P42=1;
                        P41=P40=0;
                }                       
                if((exKeyValueFlag&0x00000008)==0x00000008)
                {
                        P41=1;
                        P42=P40=0;
                }
                if((exKeyValueFlag&0x0000000C)==0x00000000)
                {
                        P41=0;
                        P42=P40=0;
                }
    /*<UserCodeEnd>*//*<SinOne-Tag><23>*/
}
效果图:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

467

主题

3517

帖子

7

粉丝