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

[复制链接]
 楼主| 比神乐 发表于 2023-1-25 23:08 | 显示全部楼层 |阅读模式
今天捣鼓了捣鼓EBS003板子上的滑条,顺便把按键也加上了。
原理图:
7.jpg


8.jpg

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

  6. /*************************************.Generated by EasyCodeCube.************************************/
  7. /*****************************************************************************************************
  8. * Function Name: main
  9. * Description  : This function implements main function.
  10. * Arguments    : None
  11. * Return Value : None
  12. ******************************************************************************************************/
  13. void main(void)
  14. {       
  15.     /*** MCU init***/
  16.     SC_Init();
  17.     /*<Generated by EasyCodeCube begin>*/
  18.     /*<UserCodeStart>*//*<SinOne-Tag><9>*/
  19.     TouchKeyInit();
  20.     /*<UserCodeEnd>*//*<SinOne-Tag><9>*/
  21.     /*<UserCodeStart>*//*<SinOne-Tag><10>*/
  22.     while(1)
  23.     {
  24.         /*<UserCodeStart>*//*<SinOne-Tag><51>*/
  25.         if(SOCAPI_TouchKeyStatus & 0x40)
  26.         {
  27.             /*<UserCodeStart>*//*<SinOne-Tag><55>*/
  28.             SOCAPI_TouchKeyStatus &= 0xbf;
  29.             /*<UserCodeEnd>*//*<SinOne-Tag><55>*/
  30.             /*<UserCodeStart>*//*<SinOne-Tag><56>*/
  31.             TouchKeyRestart();
  32.             /*<UserCodeEnd>*//*<SinOne-Tag><56>*/
  33.         }
  34.         /*<UserCodeEnd>*//*<SinOne-Tag><51>*/
  35.         /*<UserCodeStart>*//*<SinOne-Tag><14>*/
  36.         if(SOCAPI_TouchKeyStatus & 0x80)
  37.         {
  38.             /*<UserCodeStart>*//*<SinOne-Tag><22>*/
  39.             SOCAPI_TouchKeyStatus &= 0x7f;
  40.             /*<UserCodeEnd>*//*<SinOne-Tag><22>*/
  41.             /*<UserCodeStart>*//*<SinOne-Tag><18>*/
  42.             exKeyValueFlag = TouchKeyScan();
  43.             /*<UserCodeEnd>*//*<SinOne-Tag><18>*/
  44.             /*<UserCodeStart>*//*<SinOne-Tag><79>*/
  45.             Slider_value  = TKSlideModulePCBArray[0].OutValue;
  46.             Module1_value = TKSlideModulePCBArray[1].OutValue;
  47.             /*<UserCodeEnd>*//*<SinOne-Tag><79>*/
  48.             /*<UserCodeStart>*//*<SinOne-Tag><35>*/
  49.             UserCode();
  50.             /*<UserCodeEnd>*//*<SinOne-Tag><35>*/
  51.             /*<UserCodeStart>*//*<SinOne-Tag><36>*/
  52.             TouchKeyRestart();
  53.             /*<UserCodeEnd>*//*<SinOne-Tag><36>*/
  54.         }
  55.         /*<UserCodeEnd>*//*<SinOne-Tag><14>*/
  56.     }
  57.     /*<UserCodeEnd>*//*<SinOne-Tag><10>*/
  58.     /*<Generated by EasyCodeCube end>*/
  59. }
初始化代码:
  1. void SC_Init(void)
  2. {
  3.         SC_GPIO_Init();
  4.         SC_OPTION_Init();
  5.         /*write initial function here*/       
  6.         EA = 1;       
  7. }

  8. void SC_GPIO_Init(void)
  9. {
  10.         GPIO_Init(GPIO4, GPIO_PIN_2,GPIO_MODE_OUT_PP);
  11.         GPIO_Init(GPIO4, GPIO_PIN_1,GPIO_MODE_OUT_PP);
  12.         GPIO_Init(GPIO4, GPIO_PIN_0,GPIO_MODE_OUT_PP);
  13.         GPIO_Init(GPIO1, GPIO_PIN_4,GPIO_MODE_OUT_PP);
  14.         GPIO_Init(GPIO1, GPIO_PIN_5,GPIO_MODE_OUT_PP);
  15.         GPIO_Init(GPIO1, GPIO_PIN_6,GPIO_MODE_OUT_PP);
  16.         GPIO_Init(GPIO1, GPIO_PIN_7,GPIO_MODE_OUT_PP);
  17.         GPIO_Init(GPIO3, GPIO_PIN_5, GPIO_MODE_OUT_PP);
  18.     GPIO_Init(GPIO3, GPIO_PIN_4, GPIO_MODE_OUT_PP);
  19.     GPIO_Init(GPIO0, GPIO_PIN_6, GPIO_MODE_OUT_PP);
  20.     GPIO_Init(GPIO2, GPIO_PIN_2, GPIO_MODE_OUT_PP);
  21.     GPIO_Init(GPIO0, GPIO_PIN_2, GPIO_MODE_OUT_PP);
  22.     GPIO_Init(GPIO3, GPIO_PIN_7, GPIO_MODE_OUT_PP);
  23.         /*GPIO_Init write here*/               
  24. }
按键处理代码:
  1. void UserCode()
  2. {
  3.     /*<UserCodeStart>*//*<SinOne-Tag><23>*/
  4.                
  5.         if(Slider_value>0&&Slider_value<25)  //挡位值0-7,L1灯亮
  6.         {
  7.             P14=1;
  8.             P15=P16=P17=0;
  9.         }
  10.         if(Slider_value>=25&&Slider_value<50) //挡位值8-14,L1、l2灯亮
  11.         {      
  12.             P14=P15=1;
  13.             P16=P17=0;
  14.         }
  15.         if(Slider_value>=50&&Slider_value<75) //挡位值15-22,L1、l2、l3灯亮
  16.         {
  17.             P14=P15=P16=1;
  18.             P17=0;
  19.         }
  20.         if(Slider_value>=75&&Slider_value<=100) //挡位值23-30,L1、l2、l3、l4灯亮
  21.         {
  22.             P14=P15=P16=P17=1;               
  23.         }
  24.         if(Slider_value==0)   //没有滑条值,灯全灭
  25.         {
  26.             P14=P15=P16=P17=0;
  27.         }
  28.         ///////////////////////////////////////////////
  29.                 if((exKeyValueFlag&0x00000004)==0x00000004)
  30.                 {
  31.                         P42=1;
  32.                         P41=P40=0;
  33.                 }                       
  34.                 if((exKeyValueFlag&0x00000008)==0x00000008)
  35.                 {
  36.                         P41=1;
  37.                         P42=P40=0;
  38.                 }
  39.                 if((exKeyValueFlag&0x0000000C)==0x00000000)
  40.                 {
  41.                         P41=0;
  42.                         P42=P40=0;
  43.                 }
  44.     /*<UserCodeEnd>*//*<SinOne-Tag><23>*/
  45. }
效果图:
0.jpg 1.jpg 3.jpg 4.jpg 5.jpg 6.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3535

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部

470

主题

3535

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部