浙江工业大学单片机实验.docxVIP

  • 586
  • 0
  • 约1.57万字
  • 约 21页
  • 2019-11-26 发布于广东
  • 举报
Cortex-M4原理与实践实验报告 姓 名 学 号 指导老师 专业班级 学 院 信息工程学院 实验三:PWM呼吸灯实验 一、 实验目的 1 ?了解PWM基本概念。 2?学习TM4C129x Series Cortex_M4的PWM的基本工作原理和方式。 3?学习PWM相关库函数的使用。 4?学习对PWM模块输出周期和占空比的设置。 二、 实验过程(包括流程图) 2.1 PWM工作原理与方式: 包含一个PWM模块,提供了 4个PWM发生器模块和一个控制模块,一共有8路PWM信号 输岀。每个PWM发生器模块输出2路PWM信号,可以共享时钟和频率,也可以通过编程控制 为独立工作,或者为一堆带死区的互补信号。PWM发生模块的输出信号,pwmA,和pwmB,,在 被传送到控制器引脚前由输出控制模块管理,输出为MnP忖M0, MnPUIMl或者为 MnPWM2jMnPWM3 等等。 每个PWM发牛器模块的主要特性: 4个故障状态出力输入,能迅速提供低延时关断,防止损坏控制的电机; 一个16位计数器,两个PWM比较器; 死区发生器: 丰富的终端机制和ADC触发; 灵活可控的输出控制模块,多种输出方式; 安全可靠的错误检测保护功能。 2.2实验用到的主要库函数简介: void PWMClockSet(uint32_t uiPBase,uint32_t ui32Config)函数川于配置 PWM 时钟,实现分频。ui32Base为PWM模块的基地址;ui32Config,为配置PWM时钟的参数。 void PWMGenConfigure(uint32_t ui32Base, uint32_t ui32Gen,uint32_t ui32Config)函数用于配置PWM发牛器。ui32Base为PWM模块的棊地址;ui32Gen为需要 配置的PWM发牛器;ui32Config为配置PWM发牛器工作方式的参数。 void PWMGenPeriodSet (uint32_t ui32Base^ uint32_t ui32Get32_t ui32Period)函数用于配置PWM发生器的周期。ui32Base为PWM模块的基地址;ui32Gen 为需要配置的PWM发牛器;ui32Period为配置PWM发牛器的周期参数。 void PWMPulseWidthSet(uint32_t ui32Base^ uint32_t ui32PWM0ut? uint32_t ui32Width)函数用于配置指定PWM发生模块的脉冲宽度。ui32Base为PUIM模块 的基地址;ui32PWM0ut为PWM输出引脚;ui32Width为脉冲的正频部分。 void PWM0utputState(uint32_t ui32Base, uint32_t ui32PWMOutBits,bool bEnable)函数用于使能或者禁止相应的PWM输出。ui32Base为PWM模块的基地址; ui32PWM0utBits通过逻辑与选择对应的PWM引脚;bEnable为true,则使能对应PWM引 脚,否则,禁止相应引脚。 void PWMGenEnable(uint32_t ui32Base_ uint32_t ui32Gen)函数用于使能相应 PWM发牛器模块。ui32Base为PWM模块的基地址;ui32Gen为需要使能的PWM发生器模块。 上述函数及暂未用到的其他PWM相关函数详细使用方法请参阅driverlib库函数介绍 SW-TM4C-DRL-UG-2.1.0.12573.pdfo PWM呼吸灯实验通过适当控制PWM的频率、占空比,延时与适当的占空比步进值flip来 调节LED灯的亮度,明暗变化,产生呼吸效果。 2.3 PWM频率与占空比计算: PWMValue=PWMDividedClk/PWMFrequency-l 这里PWMValue为填入PWM0LOAD寄存器的值;PWMDividedClk为分频后的PWM模块的 时钟频率;PWMFrequency为所需要的PWM频率。在减计数模式下,将两频率之比减一后的值 填入PWM0LOAD寄存器。 2.4简化的PWM模块配置步骤: 三、实验代码、注释图1简化 三、实验代码、注释 图1简化PWV初始化流程图 (最好每条注释)及现象 #include stdbool?h #include 〈stdint?h #include Hinc/hw_memmap.hH #include driverlib/gpio.h” #include driverlib/pin_map.h #indude driverlib/pwm?h“ #include driverlib/sysctl?h #include Hdriverlib/uar

文档评论(0)

1亿VIP精品文档

相关文档