PWM无极调光LED台灯
第一次写博客,记录一下小项目的开发过程.
项目功能:三个触摸按键: 左按键->调暗 中间按键->开关 右按键->调亮
介绍主要IC:
5056充放IC,控制板有3.7V锂电池充放功能.PDF资料有典型的电路图,需要怎么样的功能,大家仔细看就知道了.
CA51F551S1(主控芯片)主要使用其触摸引脚,实现调光效果.
有需要拿来练手的话,需要原理图文件还请联系QQ邮箱1479719154@qq.com
废话不多说,直接上代码,刚刚接触,多有粗糙地方还请见谅了!
只是附上主函数,底层文件需要的话再留言咯.
#ifndef _MAIN_C_
#define _MAIN_C_
/*********************************************************************************************************************/
#include "ca51f5_config.h"
#include "includes\ca51f5sfr.h"
#include "includes\ca51f5xsfr.h"
#include "includes\gpiodef_f5.h"
#include "Library\includes\uart.h"
#include "Library\includes\system_clock.h"
#include "Library\Includes\tmc.h"
#include "includes\system.h"
#include "Library\Includes\pwm.h"
#include "Library\Includes\Delay.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"
unsigned int PWM_DivDat; //无字符 int型 16位
unsigned int PWM_DutyDat;
unsigned char PWM_2=0;
unsigned char PWM_3=0;
//unsigned char num;
bit on_flag = 0;
//void init_timer();
//void T0_tiemr();
/*********************************************************************************************************************/
/*******************************************************************************************************************************************
说明:
------------------------------------------------------------------------------------------------------------
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)的循环内运行(注意,触摸省电模式程序不
会在主循环内运行),在触摸省电模式下如果还要响应其他中断,用户需在进入触摸省电模式前自行开启其他中断,
如果需要退出省电模式,用户只需要在省电函数循环内