一,实现目标:
1.RGB LED灯循环闪烁;
2.使用定时器,在定时器中断中控制RGB的循环;
二,材料:
1.LP-MSPM0L1306开发板;
2.USB线;
三,硬件介绍及原理:
1.原理图;
2.原理;
①控制单色red LED灯,需要连接J2,由PA0控制。当PA0为低电平时,LED灯被点亮;当PA0为高电平时,LED灯熄灭;
②控制RGB LED灯,需要连接J3、J12,J13三个跳线。红色(R)由PA26控制,绿色(G)由PA3控制,蓝色(B)由PA27控制;三个灯都是输出为高电平时,对应LED灯被点亮,输出为低电平时,对应LED灯熄灭;
四,集成环境:
1,CCS12.7.0;
2,TI System Configuration Tool(sysconfig-1.20.0)
五,软件实现:
1,设计思路
2,实现步骤
1)打开一个demo工程,修改自己的工程名;
2)使用Sysconfig配置RGB灯三个GPIO引脚;
3)使用Sysconfig配置定时器功能;
4)添加初始化代码,关闭所有led灯,使能定时器中断,开启定时器功能;
5)实现定时器中断函数功能;
6)编译工程;
7)下载调试工程。
2,RGB LED配置
使用SDk中的一个demo工程导入修改。
3,定时器配置
4,软件功能实现
在main函数中,对硬件外设Sysconfig已经初始化,我们需要初始化时led灯熄灭,即对PA26、PA13、PA27输出低电平。使能定时器中断功能。NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);while主循环中什么也不做,执行一条空指令,方便设置断点调试。
定时器中断函数入口函数TIMER_0_INST_IRQHandler,Sysconfig配置的时候已经帮我们定义好。
所有中断函数的入口函数定义都在startup_mspm0l130x_ticlang.c中,文件在sdk中source\ti\devices\msp\m0p\startup_system_files\ticlang。
我们初始化的500ms进入一次定时器中断,每次进入中断,我们将点亮一个颜色的灯,关闭另外两个灯,我们将按照R、G、B的顺序依次循环点亮。
5,编译、下载、运行效果