打印
[活动专区]

基于赛元LB101X 触控评估板开发心得(二)按键控制PWM

[复制链接]
797|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
      第一次接触触控按键,本次实验基于赛元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测试的基础上又进行了一次简单实验,目的是增加认知,为后期的相关实验做个准备。

使用特权

评论回复

相关帖子

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

本版积分规则

99

主题

14992

帖子

17

粉丝