久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機程序 開關打開時LED燈調至最暗時,怎么判定開關為關呢?
[打印本頁]
作者:
adad2
時間:
2022-5-6 15:35
標題:
單片機程序 開關打開時LED燈調至最暗時,怎么判定開關為關呢?
各位大佬,問個問題,51C,當觸摸開關打開了,長按開關,燈的亮度調為最暗時候,我怎么短按燈調為最亮呢
單片機源程序如下:
#ifndef _MAIN_C_
#define _MAIN_C_
/*********************************************************************************************************************/
#include "ca51f5_config.h"
#include "includes\ca51f5sfr.h"
#include "includes\ca51f5xsfr.h"
#include "includes\gpiodef_f5.h"
/*********************************************************************************************************************/
#include "TS_Lib\Includes\ts_configuration.h"
#include "TS_Lib\Includes\ts_def.h"
#include "TS_Lib\Includes\ts_api.h"
#include "TS_Lib\Includes\ts_service.h"
/*********************************************************************************************************************/
#include "includes\system.h"
#include "Library\includes\uart.h"
#include "Library\includes\system_clock.h"
#include "Library\Includes\tmc.h"
#include "Library\includes\pwm.h"
#include "Library\includes\delay.h"
#include "function.h"
#include "Library/includes/flash.h"
u16 check_time;
u16 reset_time;
u16 dim_ct;
bit onff_s;
bit CHOOSE;
/*******************************************************************************************************************************************
說明:
------------------------------------------------------------------------------------------------------------
1.ts_configuration.h是觸摸的配置文件,可在配置文件中設置觸摸通道、靈敏度等。詳見ts_configuration.h中的說明。
------------------------------------------------------------------------------------------------------------
2.如果需要使用UART來調試,可在ca51f5_config.h中打開宏定義UART0_EN
------------------------------------------------------------------------------------------------------------
3.觸摸庫對外的數據接口為KeysFlagSN,用戶可根據KeysFlagSN的值來判斷觸摸鍵是否按下(如果觸摸鍵按下,KeysFlagSN
的對應位一直為1,觸摸鍵松開,對應位變為0),TS_Key是根據KeysFlagSN的值生成的按鍵消息,用戶如不使用可忽略。
------------------------------------------------------------------------------------------------------------
4.使能了觸摸省電模式后,在無按鍵時,在定義的時間后會進入省電模式,進入省電模式前會關閉TMC中斷和觸摸中斷(注意,總
中斷仍是開啟的),在觸摸省電模式下,CPU會進入STOP模式,在被觸摸喚醒后,程序在省電函數(TS_EnterSleepMode)的循環內運行(注意,觸摸省電模式程序不
會在主循環內運行),在觸摸省電模式下如果還要響應其他中斷,用戶需在進入觸摸省電模式前自行開啟其他中斷,
如果需要退出省電模式,用戶只需要在省電函數循環內加入條件判斷,跳出循環即可。
變量TS_SleepEn是控制觸摸省電模式的開關,如果希望程序在某些條件下不進入省電模式,只需在此條件下設置TS_SleepEn = 0;
------------------------------------------------------------------------------------------------------------
5.觸摸外掛電容(即TK_CAP引腳連接電容)范圍:6nF~50nF,建議值:20nF(即203)
------------------------------------------------------------------------------------------------------------
6.觸摸引腳串聯電阻范圍:0~5K,建議值:1K歐姆,如果有抗對講機等電磁干擾要求, 此電阻至少3K以上。
*******************************************************************************************************************************************/
void main(void)
{
Delay_ms(50);
#ifdef LVD_RST_ENABLE
LVDCON = 0xC3; //設置LVD復位電壓為2.0V
#endif
#ifdef UART0_EN
Uart0_Initial(UART0_BAUTRATE);//波特率函數
#endif
PADRD =0x3F;//FLASH和程序存儲空間大小
EA = 1;
LoadAllPar();//flash讀程序
PWM_init();
pwm(3);
TS_init();
onoff=1;//開關關閉
CHOOSE=1;
mode=1;
while(1)
{
TS_Action();//觸摸開關程序
if(!onoff)
{
if(dim<dim_data)
{
dim_ct++ ;
if(dim_ct>1000)
{
dim++;
dim_ct=0;
}
}
pwm(dim);
}
else
{
if(dim>0)
{
dim_ct++ ;
if(dim_ct>500)
{
dim--;
dim_ct=0;
}
}
pwm(dim);
}
#if SUPPORT_WHEEL_SLIDER
if(WheelSliderPosition != -1)
{
//當WheelSliderPosition不等于-1時, 表示滑條或圓環有觸摸事件發生。WheelSliderPosition的值表示滑條或圓環的位置。
}
#endif
#if SUPPORT_KEY
/*************************************************************************************************
變量KeysFlagSN是觸摸庫對外的數據接口,KeysFlagSN的每一位對應一個觸摸鍵的狀態,為1表示觸摸鍵觸發。可多鍵同時觸發。
*************************************************************************************************/
if(CHOOSE)
{/* long_press是長按的位變量,onff_s是判斷開關的位變量,press_f是存儲亮度下次按鍵或者重啟的位變量*/
if(long_press&&(!onoff)&&(!onff_s))//進入長按,觸發亮度調節子程序onff_s用來判斷開關
{
press_f=1;
if(up_flag)//亮度提升
{
if(dim_data<255)
{
dim_ct++ ;
if(dim_ct>1200)
{
dim_data++;
dim=dim_data;
dim_ct=0;
}
}
else
{
dim_data=255;
dim_ct++ ;
if(dim_ct>1200)
{
dim_ct=0;
}
}
}
else//亮度調暗
{
if(dim_data>10)
{
dim_ct++ ;
if(dim_ct>1200)
{
dim_data--;
dim=dim_data;
dim_ct=0;
}
}
else
{
dim_data=10;
dim_ct++ ;
if(dim_ct>1200)
{
dim_ct=0;
}
}
}
}
}
/*短按開關*/
if(KeysFlagSN != 0)//keypress//按鍵有按下
{ reset_time=0;
check_time=0;
switch(KeysFlagSN)
{
case 0x0001:
press_ct++;//(check_c)觸發觸摸按鍵,參數自加
if(press_ct>P_level)//參數大于P_level
{
long_press=1;//進入長按,觸發調光
press_ct=P_level;
}
if(onoff) //如果燈是關著
{
onoff=0;//開關打開
long_press=0;//退出長按
press_ct=0;
//dim=0;
onff_s=1;
}
break;
case 0x0002:
break;
case 0x0004:
break;
//......
default:
break;
}
}
else//release
{
check_time++;//
}
if(check_time>220)//=i>600
{
check_time=0;
// lianfa=0;//
reset_time++;
if(press_ct>10&&press_ct<P_level&&long_press==0)////觸發短按,進行燈具開滅
{
if(!onff_s)
{
onoff=!onoff;//short press
press_f=1;
}
}
onff_s=0;
if(long_press)//(lpress_ct)//長按進行亮度調節翻轉
{
up_flag=!up_flag;
}
long_press=0;
press_ct=0;
if(press_f)//存儲亮度變量,松手或者關機,下次從這個變量觸發
{
press_f=0;
SaveAllPar();
}
}
/**/
if(reset_time>1000)
{
TS_init();
reset_time=0;
//LG=1;
//LB=1;
//Delay_ms(100);
}
#endif
//#endif
}
}
#endif
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
99成人在线视频
|
亚洲一区二区三区桃乃木香奈
|
亚洲欧美一区二区三区在线
|
一区二区三区av夏目彩春
|
91网站在线播放
|
久久逼逼
|
欧美一级片中文字幕
|
久久综合久久自在自线精品自
|
日本一区二区高清不卡
|
国产精品一区二区免费看
|
国产一区二区小视频
|
欧美视频1区
|
在线一区
|
国产成人免费视频网站高清观看视频
|
在线观看国产视频
|
成人做爰www免费看 午夜精品久久久久久久久久久久
|
在线欧美视频
|
男人天堂免费在线
|
亚洲午夜久久久
|
一区二区三区四区视频
|
玖玖国产
|
a在线免费观看
|
精品国产一区一区二区三亚瑟
|
激情av
|
中文字幕av在线一二三区
|
亚洲欧美日本在线
|
成人国产精品免费观看
|
国产成人综合在线
|
www.一区二区三区
|
99影视
|
中文字幕av在线
|
久草在线免费资源
|
国产精品一区二区日韩
|
亚洲人在线播放
|
中文字幕高清av
|
日韩欧美一区二区三区免费观看
|
国产专区在线
|
91偷拍精品一区二区三区
|
亚洲av毛片
|
色www精品视频在线观看
|
日本人和亚洲人zjzjhd
|