首页 DSP实验二、TMS320F28335 按键输入 控制LED亮灭(1)

DSP实验二、TMS320F28335 按键输入 控制LED亮灭(1)

举报
开通vip

DSP实验二、TMS320F28335 按键输入 控制LED亮灭(1)继续我的第二个实验;实现按键控制LED亮灭:功能描述:上电默认LD3亮;触动一次按键SW12,LD3灭再按一次按键SW12,LD3亮再触动一次按键SW12,LD3灭再按一次按键SW12,LD3亮。。。。。。实现每触动一次按键,LED执行一次由亮到灭,或者由灭到亮,也就是实现一次状态反转。电路连接说明:LD3  设置为通用GPIO上拉输出初始化后默认为输出LD3亮状态;LD3控制LED灯的负极,如下图;SW12   设置为通用GPIO上拉输入该引脚应用滤波功能,且仅在按键抬起时控制LD3状态发生变化。按键电路如上图,...

DSP实验二、TMS320F28335 按键输入 控制LED亮灭(1)
继续我的第二个实验;实现按键控制LED亮灭:功能描述:上电默认LD3亮;触动一次按键SW12,LD3灭再按一次按键SW12,LD3亮再触动一次按键SW12,LD3灭再按一次按键SW12,LD3亮。。。。。。实现每触动一次按键,LED执行一次由亮到灭,或者由灭到亮,也就是实现一次状态反转。电路连接说明:LD3  设置为通用GPIO上拉输出初始化后默认为输出LD3亮状态;LD3控制LED灯的负极,如下图;SW12   设置为通用GPIO上拉输入该引脚应用滤波功能,且仅在按键抬起时控制LD3状态发生变化。按键电路如上图,GPIO53须输出0,当按键按下时,读取GPIO50端口值,为0,当按键未按下时,GPIO50因为上上拉作用,其端口值为1。程序设计说明:按键的读取采用实时扫描的方式(非中断方式),功能要求在按键抬起后发生LED状态翻转;所以要记录上一次按键值,并且将当前值==0&&上一次值==1时,做为按键抬起有效,控制LED发生状态翻转。主要程序如下:while(1){EALLOW;last_Key_SW12=new_Key_SW12;//保存旧值new_Key_SW12 =Key_SW12();//读取新值if(last_Key_SW12==0&&new_Key_SW12==1)LD3_TOGGLE();EDIS;}经实际测试,上述程序可以实现LD3的翻转,基本达到设计要求。但是在测试过程中,时好时坏,有时能够看见LED快速翻转,说明按键有抖动的情况,这里可以考虑IO口滤波,即在初始化时,设置IO采样周期以及量化串口,设置如下:采样周期设置为200时,不再出现抖动现象,按键稳定操作。源程序如下:#include"DSP2833x_Device.h"  //DSP2833xHeaderfileIncludeFile#include"DSP2833x_Examples.h" //DSP2833xExamplesIncludeFile#defineLD3_ON()    GpioDataRegs.GPACLEAR.bit.GPIO0  =1#defineLD3_OFF()    GpioDataRegs.GPASET.bit.GPIO0     =1#defineLD3_TOGGLE()  GpioDataRegs.GPATOGGLE.bit.GPIO0  =1#defineLD4_ON()    GpioDataRegs.GPBCLEAR.bit.GPIO34  =1#defineLD4_OFF()    GpioDataRegs.GPBSET.bit.GPIO34    =1#defineKey_SW12()    GpioDataRegs.GPBDAT.bit.GPIO50/**main.c*/intmain(void){unsignedcharlast_Key_SW12=1;//保留上一次扫描结果,上电默认为未按下状态unsignedchar new_Key_SW12=1;//保留当前扫描结果,上电默认为未按下状态InitSysCtrl();DINT;IER=0x0000;IFR=0x0000;InitPieCtrl();InitPieVectTable();InitGpio();EALLOW;//GPIO0LD3 控制LED负极GpioCtrlRegs.GPAMUX1.bit.GPIO0 =0;//0gpiomodeGpioCtrlRegs.GPADIR.bit.GPIO0 =1;//1output  0inputGpioCtrlRegs.GPAPUD.bit.GPIO0 =0;//1enablepullup 0disablepullup//GPIO34LD4 控制LED负极GpioCtrlRegs.GPBMUX1.bit.GPIO34=0;//0gpiomodeGpioCtrlRegs.GPBDIR.bit.GPIO34 =1;//1output  0inputGpioCtrlRegs.GPBPUD.bit.GPIO34 =0;//1enablepullup 0disablepullup//GPIO50 按键矩阵SW12输入端GpioCtrlRegs.GPBMUX2.bit.GPIO50 =0;//0gpiomodeGpioCtrlRegs.GPBDIR.bit.GPIO50 =0;//1output  0inputGpioCtrlRegs.GPBPUD.bit.GPIO50 =0;//1enablepullup 0disablepullupGpioCtrlRegs.GPBCTRL.bit.QUALPRD2=200;//采样周期=2*Tsysclkout*200GpioCtrlRegs.GPBQSEL2.bit.GPIO50=2;//采样窗内3次采样结构相同//GPIO53 按键矩阵负极输出0GpioCtrlRegs.GPBMUX2.bit.GPIO53 =0;//0gpiomodeGpioCtrlRegs.GPBDIR.bit.GPIO53 =1;//1output  0inputGpioCtrlRegs.GPBPUD.bit.GPIO53 =0;//1enablepullup 0disablepullupGpioDataRegs.GPBCLEAR.bit.GPIO53=1;LD3_ON();//默认输出亮状态LD4_OFF();EDIS;while(1){EALLOW;last_Key_SW12=new_Key_SW12;//保存旧值new_Key_SW12 =Key_SW12();//读取新值if(last_Key_SW12==0&&new_Key_SW12==1)LD3_TOGGLE();EDIS;}}
本文档为【DSP实验二、TMS320F28335 按键输入 控制LED亮灭(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_477730
暂无简介~
格式:doc
大小:19KB
软件:Word
页数:9
分类:
上传时间:2022-08-09
浏览量:8