第一次接触触控按键,本次实验基于赛元LB1011-隔空3MM触控评估板,利用三个触控按键控制P27(PWM5)PWM不同占空比的输出,实验比较简单,其目的主要是进一步熟悉LB101X系列评估学习板。
一、实验资源
1、LB1011隔空3MM评估学习板;
2、SC_LINK调试器;
3、赛元微电子提供的例程及相关文档资料;
4、逻辑分析仪;
二、实验过程
1、资源简介。LB1011隔空3MM评估学习板核心微控制器芯片为SC92F8462B,内建高频24MHz振荡器,作为系统时钟源时,fSYS 可通过编程器选择设定为 12/6/2MHz,且频率误差不超过 ±1% ;片上资源还包括6路共用周期、单独可调占空比的10位PWM,可同时输出三组互补带死区的 PWM波形 ,从原理图中可以看到扩展IO端口中包含了6路PWM输出中的三路,即PWM3(P25)、PWM4(P26)、PWM5(P27)。本次实验使用了其中的PWM5(P27)。
2、软件实现。直接在例程的基础上进行简单的代码添加,主要就是增加了PWM5的初始化函数,并在void UpdateLcdBufFunc(void)更新显示数据函数中添加利用按键改变“PWMDTY5”寄存器数据,用于改变PWM5输出占空比。
void PWM_Init(void)
{
PWMCFG = 0x60; //设置PWM系统时钟为fOSC/2,PWM5输出反向
PWMCON = 0x20; //控制PWM5输出到P27
PWMDTYA = 0xC0; //周期低2位,要先行写入
PWMPRD = 0xF9; //周期高8位
PWMDTYB = 0X00; //PWM5 周期与占空比的低2位,要先行写入
PWMDTY5 = 0X00; //PWM5 占空比高8位设置
PWMCON |= 0x80; //使能PWM
}
void UpdateLcdBufFunc(void)
{
if(exKeyValue != 0xff)
{
if(gTkIsValid == 0) //松手前只出一次键
{
gTkIsValid = 1;
KeyValue=exKeyValue;
switch(KeyValue)
{
//不同间距不同大小的按键
case 1: {
LED1= ~LED1;
PWMDTY5=0X10;
}break;
case 2: {
LED2= ~LED2;
PWMDTY5=0X20;
}break;
case 3: {
LED3= ~LED3;
PWMDTY5=0X40;
}break;
default:exKeyValue = 0xff;break;
}
}
}
else
{
gTkIsValid = 0;
}
}
3、实验结果
三、实验总结
在上午对LB1011-隔空3MM测试的基础上又进行了一次简单实验,目的是增加认知,为后期的相关实验做个准备。
|