嵌入式实验---实验三 定时器实验

一、实验目的

1、掌握STM32F103定时器程序设计流程;

2、熟悉STM32固件库的基本使用。

二、实验原理

1、使用SysTick定时方式控制LED闪烁;

2、使用通用定时器产生PWM脉冲,通过调整占空比实现两个目标:

(1)连接到STM32F103上的LED亮度从暗到亮、再从亮到暗,一次循环,实现呼吸灯效果;

(2)使用数字示波器查看PWM的波形图。

三、实验设备和器材

电脑、Keil uVision5软件、Proteus 8 Professional软件

四、实验内容和步骤

4.1 代码开发

按照书本中实验流程在Keil中完成LED闪烁和呼吸灯实验的代码开发;

4.2 原理图设计

在Proteus中完成原理图的设计,如图3所示为LED闪烁实验原理图;图4所示为呼吸灯实验原理图。

图3 LED闪烁实验原理图

图4 呼吸灯实验原理图

五、实验记录和实验结果

5.1 实验效果记录(附照片即可)

5.2 实验效果说明

LED闪烁实验效果说明:

  1. LED以固定的频率或模式(如1秒闪烁一次)交替亮灭。

  1. 可以通过修改代码中的延时时间或使用定时器来调整LED的闪烁频率。

呼吸灯实验效果说明:

  1. LED的亮度呈现出由低到高再由高到低的变化,类似于呼吸的效果。

  1. 从数字显示器中可以看出,PA7输出的PWM脉冲,PWM的占空比在发生渐变,LED灯的亮度也会发生变化。

  1. 可以通过调整PWM的占空比和周期来改变LED的呼吸速度和范围。

六、实验预习要求

  1. 实验前认真阅读本实验指导;
  2. 熟悉书本中相关操作及相关器件。
  3. 完成5.1和5.2内容。

七、思考题

1. 定时器常用的功能有哪些

  1. 计时功能:用于简单的时间测量和计算,例如厨房用计时、运动比赛计时等。

  1. 闹钟功能:定时器可以设置在特定时间响铃或震动,用作闹钟提醒。

  1. 倒计时功能:设置一个特定的时间段,倒计时器会逆向计算时间,直到时间结束发出提醒。

  1. 重复功能:一些定时器允许设置重复功能,比如每天同一时间提醒。

  1. 多个计时器:有些高级定时器可以同时运行多个计时器,方便管理多个任务或事件。

  1. 定时开关功能:例如定时开关灯、电视等电子设备,节省能源。

  1. 自动关机功能:设定电脑或手机等设备在特定时间自动关机,省电和定时任务。

  1. 计时器历史记录:记录过去的计时或倒计时,以便回顾和分析。

2、使用定时器功能的配置流程

  1. 选择定时器和时钟配置:首先确定使用的定时器(如TIM1、TIM2等)以及其时钟源,通常是外部晶振或内部时钟源。

  1. 定时器时钟初始化:配置定时器的时钟,确定其工作频率。这一步骤确保定时器能够以正确的时钟频率运行。

  1. 定时器初始化:配置定时器的基本参数,如计数模式(向上、向下或双边),计数器的预分频因子(用于调整定时器时钟的频率),自动重装载寄存器(ARR)的值(决定定时器的溢出周期)等。

  1. 配置定时器中断:如果需要使用定时器的中断功能,配置中断优先级、使能定时器中断等。
  2. 启动定时器:最后,启动定时器开始计数。在STM32中,通过设置定时器的使能位(CR1寄存器的CEN位)来启动定时器。
  • 30
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
S3C2410是一款嵌入式系统芯片,它内置了多个定时器,可以用来实现各种定时器应用。下面介绍一下S3C2410定时器实验的步骤: 1. 配置定时器控制寄存器(TCON)。 首先需要设置定时器TCON寄存器,包括定时器工作模式、定时器时钟源、定时器计数模式等等。例如,设置TCON寄存器,使定时器0以内部时钟为时钟源、自动重载模式计数、定时时间为1秒: ```c TCON &= ~(0xF << 0); // 清除TCON寄存器的低4位,即清除定时器0的控制位 TCON |= (1 << 3) | (1 << 0); // 定时器0以内部时钟为时钟源,自动重载模式计数 ``` 2. 配置定时器初值寄存器(TCNT)。 设置定时器初值寄存器TCNT,即设置定时器的初始计数值。例如,设置定时器0的初始计数值为0: ```c TCNT0 = 0; ``` 3. 等待定时器中断信号。 定时器工作时,会不断计数,当计数值达到定时时间时,会产生定时器中断信号,此时需要等待定时器中断信号的到来。可以使用中断服务程序来处理定时器中断信号,例如: ```c void __irq Timer0_ISR(void) { // 处理定时器0中断 // ... // 清除定时器0中断标志 SRCPND |= (1 << 10); INTPND |= (1 << 10); } ``` 4. 启动定时器。 启动定时器,开始计数。例如,启动定时器0: ```c TCON |= (1 << 1); // 启动定时器0 ``` 5. 停止定时器定时器计数结束后,需要停止定时器,否则会一直计数下去。例如,停止定时器0: ```c TCON &= ~(1 << 1); // 停止定时器0 ``` 以上就是S3C2410定时器实验的基本步骤,可以根据具体需求进行相应的配置和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值