“RA MCU众测宝典” SysTick专题来啦!在上个的环境搭建专题中,我们已经筑牢了开发基础,而这次,我们要聚焦一个让程序“有节奏”运行的关键角色——SysTick定时器。瑞萨嵌入式小百科将和大家一起,基于【RA-Eco-RA0E1-32PIN-V1.0】开发板,一步步实现用 SysTick定时器点灯,感受时间控制在嵌入式开发中的奇妙作用。
开启宝典
#Systick定时器 就是系统一个简单的24位的倒计数定时器。

点击可查看大图
开发板软件mdk5调试时可显示运行时寄存器的状态:

点击可查看大图
打开RASC,先选好安装目录,以及工程名称选择好芯片。

点击可查看大图
以及编译工具一路next就可以创建,修改pin引脚,时钟和引脚图:

点击可查看大图
工程最后在Summary中,可以看到工程生成选项,点击以后就可以mdk工程打开MDK工程。

点击可查看大图
创建了就完成了MDK工程的创建。

点击可查看大图
打开MDK工程在,在hal_entry.c中 /* TODO: add your own code here */ 加入自己代码。
左右滑动查看完整内容
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, 0);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_12, 0);
Systick1();
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, 1);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_12, 0);
Systick1();
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, 1);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_12, 1);
Systick1();
}
在void hal_entry(void)程序前加入Systick1()
左右滑动查看完整内容
voidSystick1()
{
SysTick ->CTRL = 0;
SysTick-> LOAD =0xFFFFFF; //???? 255~(256 ???)
SysTick -> VAL =0; //??????????
SysTick ->CTRL= 5; //?? SysTick ???????????
while((SysTick->CTRL&0x00010000)==0); //????????
SysTick->CTRL = 0;
}
编译完成。
左右滑动查看完整内容
Program Size: Code=1736 RO-data=232 RW-data=0 ZI-data=1652 FromELF: creating hex file... After Build - User command #1: cmd /c "start "Renesas" /w cmd /c ""E:lst a0e1-20240827154516123FSP_Projectnew asc_launcher.bat""E:lst a0e1-20240827154516123FSP_Projectnew asc_version.txt" -nosplash --launcher.suppressErrors --gensmartbundle --compiler ARMv6 --devicefamily ra "E:lst a0e1-20240827154516123FSP_Projectnewconfiguration.xml""E:lst a0e1-20240827154516123FSP_ProjectnewObjectsFSP_Project.axf"2> "%TEMP% asc_stderr.out""" ".ObjectsFSP_Project.axf" - 0 Error(s), 44 Warning(s). Build Time Elapsed: 00:00:29```
* 烧录达到预期状态。*
以上就是【RA-Eco-RA0E1-32PIN-V1.0】开发板在Systick方面的评测内容。
从工程创建时的引脚与时钟配置,到代码中通过 SysTick精准控制LED的亮灭状态,每一个步骤都展现了定时器在嵌入式开发中的价值。
如果你在实操中对代码逻辑或配置细节有不同见解,欢迎在评论区留言交流。
全部0条评论
快来发表一下你的评论吧 !