北京邮电大学嵌入式Timer走马灯实验报告与实现

需积分: 0 1 下载量 167 浏览量 更新于2024-08-04 收藏 468KB DOCX 举报
本篇实验报告是关于北京邮电大学软件学院2020-2021学年第1学期嵌入式系统开发课程中的一个实践项目——Timer走马灯实验。实验目的是利用嵌入式系统的定时器功能,控制四个LED灯实现走马灯效果,并通过按键控制走马灯的流向和流动速度。 在实验过程中,参与者首先基于Demo12工程为基础,对之前的基础实验进行扩展。核心知识点包括了以下几个方面: 1. **变量管理**: - **direction** 变量用来指示走马灯的流向,当其值为真(true)时,LED从左向右逐个点亮;反之,从右向左点亮。 - **count** 变量用于控制LED的顺序显示,通过取模运算(%4),它决定了当前应该点亮的LED位置(1、2、3或4)。 - **key1~4_value** 变量监测按键的状态,如key1_value检测到KEY1按键按下,通过与KEYSWITCH(1)比较,判断按键状态。 2. **函数设计**: - **Turn_On_LED(LED_NUM)** 函数是关键,它接受LED编号作为参数,依据该参数来控制特定LED的点亮。 - **led_light** 函数是核心逻辑处理部分,首先关闭所有LED,然后根据count的值点亮相应LED,接着检查KEY1到KEY4的按键状态。若KEY1至KEY3有按键按下,会调整走马灯的流动频率(频率递减)。如果KEY4被按下,则改变direction的值,进而更新count以改变LED的移动方向。 3. **定时器与事件处理**: - 在User_App_Initial(void)函数中,创建了一个定时器,设置回调函数为led_light。这意味着每当定时器触发时,就会执行led_light函数,从而实现LED走马灯的动态更新。这展示了如何在嵌入式系统中利用定时器来实现周期性的任务调度。 整个实验涉及嵌入式编程的基本概念,如定时器控制、中断管理、数据结构的使用以及C语言的函数设计。学生通过这个项目可以巩固嵌入式系统编程技能,理解硬件和软件交互,以及如何通过软件控制实时硬件行为。同时,实验还锻炼了解决实际问题的能力,如按键输入处理和LED灯的顺序控制。