MSP430程序库十一定时器TA的PWM输出
- 格式:pdf
- 大小:114.88 KB
- 文档页数:4
MSP430程序库之定时器TA的PWM输出定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。
这里完成一个比较通用的PWM波形产生程序。
1.硬件介绍:MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。
它给开发人员提供了较多灵活的选择余地。
当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。
MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA 有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。
定时器的PWM输出有有8种模式:输出模式0 输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。
最终位OUTx直通。
输出模式1 置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。
输出模式2 PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR 的值等于CCR0时复位。
输出模式3 PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR 的值等于CCR0时复位。
输出模式4 翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。
输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。
输出模式6PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。
输出模式7PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。
单片机PWM输出接口设计与应用导言单片机(Microcontroller,简称MCU)作为现代电子科技领域的一个重要组成部分,广泛应用于各个领域,如家电、汽车电子、工业自动化等。
其中,PWM (Pulse Width Modulation,脉冲宽度调制)技术是单片机中重要的功能之一,通过对固定频率的方波的占空比调节,实现对输出信号的精确控制。
本文将介绍单片机PWM输出接口的设计与应用,包括PWM原理、接口设计步骤以及常见应用案例。
一、PWM原理PWM技术是一种将模拟信号转换为数字信号的调制技术,通过调整数字信号的脉冲宽度来控制输出信号的电平。
实现PWM的关键在于控制器对方波的占空比进行调节。
PWM信号的频率是固定的,周期为T,通常单位为微秒。
占空比(Duty Cycle)是指方波中高电平部分所占的时间比例,通常用百分比来表示。
占空比的改变决定了输出信号的高低电平持续时间的变化,从而控制被驱动设备的工作状态。
二、单片机PWM输出接口设计步骤1. 确定单片机型号:选择适合的单片机芯片,具有PWM功能的引脚或专用PWM模块。
2. 确定输出电平及频率:根据实际需求确定输出信号的高低电平以及频率。
不同的应用场景对电平和频率的要求可能不同。
3. 确定占空比调节方式:PWM信号的占空比调节方式有多种,包括软件调节和硬件调节。
软件调节可以通过对PWM寄存器进行编程来实现,而硬件调节一般是通过外部模块或电位器进行调节。
4. 连接外部电路:根据选定的单片机型号和引脚,将单片机的PWM引脚与外部电路(如LED、电机等)进行连接。
5. 编写程序:根据选定的单片机型号和开发环境编写相应的PWM输出程序。
在程序中设置PWM的频率、占空比以及相关参数。
6. 调试与测试:将单片机连接至供电电源,并通过示波器或其他测试工具观察PWM信号的波形,确保输出正常。
三、单片机PWM输出接口的应用1. LED亮度控制:通过PWM技术可以实现对LED灯的亮度控制。
Msp430定时器的介绍及其基本应用Msp430定时器的介绍及其基本应用Msp430单片机一共有5种类型的定时器。
看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bit Timer/Counter)、定时器A(Timer_A)和定时器B(Timer_B)。
但是这些模块不是所有msp430型号都具有的功能。
1、看门狗定时器(WDT)学过电子的人可能都知道,看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。
msp430中它是一个16位的定时器,有看门狗和定时器两种模式。
2、基本定时器(Basic Timer1)基本定时器是msp430x3xx和msp430F4xx系列器件中的模块,通常向其他外围提供低频控制信号。
它可以只两个8位定时器,也可以是一个16位定时器。
3、8位定时器/计数器(8-bit Timer/Counter)如其名字所示,它是8位的定时器,主要应用在支持串行通信或数据交换,脉冲计数或累加以及定时器使用。
4、16位定时器A和B定时器A在所有msp430系列单片机中都有,而定时器B在msp430f13x/14x和msp430f43x/44x等器件中出现,基本的结构和定时器A是相同的,由于本人最先熟悉并应用的是定时器A所以在这里就主要谈一下自己对定时器A的了解和应用。
定时器A是16位定时器,有4种工作模式,时钟源可选,一般都会有3个可配置输入端的比较/捕获寄存器,并且有8种输出模式。
通过8种输出模式很容易实现PWM波。
定时器A的硬件电路大致可分为2类功能模块:一:计数器TAR计数器TAR是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断TAIFG。
二:比较/捕获寄存器CCRX如何实现定时功能呢?这就要靠三个比较/捕获寄存器了(以后用CCRx表示)。
当计数器TAR的计数值等于CCRx时(这就是捕获/比较中的比较的意思:比较TAR是否等于CCRx),CCRx单元会产生一个中断。
单片机指令的PWM输出与模拟信号生成单片机(Microcontroller)是一种集成电路芯片,内部包含有处理器核心、存储器和各种输入输出接口。
它们可以通过编程实现各种功能,包括模拟信号的生成和PWM(Pulse Width Modulation)输出。
PWM是一种调制技术,通过调整方波信号的占空比来控制输出信号的平均功率。
单片机可以通过改变PWM输出的占空比,实现对电机速度、LED亮度等设备进行精确控制。
本文将介绍单片机指令中PWM 输出与模拟信号生成的原理和应用。
一、PWM的原理与工作原理PWM技术通过改变信号的高电平和低电平持续的时间比例来实现对输出信号的控制。
调整占空比可以改变输出信号的功率。
PWM信号由一个恒定频率的方波信号和一个占空比可变的调制信号组成。
单片机通过控制寄存器和定时器,可以产生一定频率和占空比的PWM信号。
具体实现PWM输出的方式根据不同的单片机型号和架构会有所差异。
一般来说,通过设置定时器的初值和重载值,以及改变比较器的阈值,单片机可以按需生成PWM波形。
PWM信号的频率决定了输出信号的周期,而占空比则决定了高电平信号的持续时间比例。
通常,高电平持续时间比例越大,输出信号的平均功率越高。
二、单片机中PWM输出的应用1. 电机控制:PWM可用于控制电机的转速和方向。
通过改变PWM信号的占空比,可以调整电机的运行速度。
同时,通过反馈回路,可以实现闭环控制,使电机保持稳定的转速。
2. LED亮度调节:基于人眼暂时视觉暂留效应,通过快速切换LED 的亮灭状态,可以在人眼的感知上产生不同亮度的效果。
通过改变PWM信号的占空比,可以实现对LED的亮度进行调节。
3. 数字信号转模拟信号:通过PWM技术,单片机可以将数字信号转换为模拟信号。
在数字信号中,通过改变PWM信号的频率和占空比,可以模拟出各种不同的模拟信号形态,如正弦波、方波等。
三、使用单片机指令生成PWM输出与模拟信号在使用单片机进行PWM输出和模拟信号生成时,需要根据具体的单片机型号和开发环境来进行相应的编程。
msp430的PWM输出是什么意思?
输出的是电平还是什么?能直接接到示波器上吗?是对一个信号的调制还是自己能产生出一个信号来?
提问者采纳
PWM就是高低电平不停的变化的信号,通过配置基础器输出,可以用
示波器看到。
关于PWM,我在其他问题中回答过,复制给你看看。
简单的说,比如你有5V电源,要控制一台灯的亮度,有一个传统办法,
就是串联一个可调电阻,改变电阻,灯的亮度就会改变。
还有一个办法,就是PWM调节。
不用串联电阻,而是串联一个开关。
假设在1秒内,有0.5秒的时间开关是打开的,0.5秒关闭,那么灯就
亮0.5秒,灭0.5秒。
这样持续下去,灯就会闪烁。
如果把频率调高一
点,比如是1毫秒,0.5毫秒开,0.5毫秒灭,那么灯的闪烁频率就很高。
我们知道,闪烁频率超过一定值,人眼就会感觉不到。
所以,这时你看
不到灯的闪烁,只看到灯的亮度只有原来的一半。
同理,如果1毫秒内,0.1毫秒开,0.9毫秒灭,那么,灯的亮度就只有
原来的10分之一。
这个还能用于电机速度控制,用于电源电压控制,等等,具体涉及的知
识比LED控制复杂一些,这里就不说了。
一、概述PLCPWM (Pulse Width Modulation) 脉冲输出程序是一种用于数字信号与脉冲信号转换的程序。
它在工业控制领域得到广泛应用,可以控制各种电磁阀、电机、灯光等设备,实现精密的调节和控制。
本文将对PLCPWM脉冲输出程序的设计进行详细介绍。
二、PLCPWM脉冲输出程序设计原理PLCPWM脉冲输出程序的设计原理是通过控制器对数字信号进行模拟处理,将其转换为一系列脉冲信号输出。
在PLC(可编程逻辑控制器)系统中,通常采用定时器或计数器实现脉冲输出程序的设计。
三、PLCPWM脉冲输出程序设计步骤1. 确定输出控制对象:首先需要确定要控制的对象,例如电机、阀门等设备。
2. 确定输出脉冲频率和占空比:根据控制对象的特性和控制需求,确定脉冲信号的频率和占空比。
频率和占空比的选择对于控制对象的运行效果有重要影响。
3. 编写PLCPWM脉冲输出程序:根据确定的频率和占空比,编写PLCPWM脉冲输出程序,并将其加载到PLC系统中。
4. 联调和调试:完成程序加载后,需要对输出效果进行联调和调试,确保输出脉冲信号符合设计要求。
四、PLCPWM脉冲输出程序设计实例以控制一个电机为例,进行PLCPWM脉冲输出程序的设计实例说明:1. 确定输出控制对象:电机2. 确定输出脉冲频率和占空比:假设电机的控制需求为100Hz的频率和50的占空比。
3. 编写PLCPWM脉冲输出程序:根据选定的频率和占空比,编写PLCPWM脉冲输出程序。
4. 联调和调试:加载程序到PLC系统中,进行联调和调试,观察电机的运行效果。
五、PLCPWM脉冲输出程序设计注意事项1. 频率和占空比的选择需根据控制对象的特性和控制需求来确定,需充分考虑控制对象的响应速度和稳定性。
2. 在编写PLCPWM脉冲输出程序时,需注意程序的逻辑正确性和稳定性,确保输出信号的准确性和稳定性。
3. 在联调和调试过程中,需要详细记录调试过程和结果,及时发现问题并进行调整。
对于那么多的TAx输出口,那么多的模式,真是不知所措,那么今天让我们来详细的讨论一下msp430单片机TAx哪些管脚可以输出,以及其输出模式又是怎样的,又该怎样写程序.不着急一步一步来首先让我们来了解下关于输出模式:(1)模式0(电平输出):在输出模式0下,TAx管脚与普通的输出IO口一样,可以由软件操作OUT控制位来控制TAx管脚的高低电平。
(2)模式1与模式5(单脉冲输出):利用比较模块的模式1和模式5,可以替代单稳态电路,产生单脉冲波形。
在输出模式1下,当主计数器计至TACCRx值时,TAx管脚置1。
如果通过OUT控制位事先将TAx的输出设为低,经过TACCRx个周期后,TAx将自动变高。
这样做可以输出一个低电平脉冲。
通过改变TACCRx 的值,可以改变低电平脉冲的周期,且脉冲过程无需CPU的干预。
在输出模式5下,当主计数器计至TACCRx值时,TAx管脚置0.如果通过OUT 控制位事先将TAx输出设置为高,经过TACCRx个周期后,TAx将自动变低。
这样做可以输出一个高电平脉冲。
通过改变TACCRx的值可以改变该点评脉冲的周期,且脉冲过程无需CPU的干预。
(3)模式3和模式7(PWM输出):脉宽调制是最常用的功率调整手段之一。
所谓脉宽调制,顾名思义,是指在脉冲方波周期一定的情况之下,通过调整脉冲的宽度,改变负载通断时间的比例,以达到功率调节的目的。
PWM波形中,负载接通时间与一个周期总时间之比叫做占空比。
占空比越大,负载功率就越大。
如果PWM频率足够高以至于不足以表现表现出负载断续,从宏观上看,负载实际功率将是连续的。
在PWM调整负载功率的过程中,负载断开时晶体管无电流通过,不发热。
负载接通时晶体管饱和,虽然通过有较大电流,但压降很小,发热功率也很低。
所以使用PWM控制负载时,开关器件的总发热量很小。
相比于串联耗散式的调整方法,效率会高很多,适合大功率,高效率的负载调整应用。
但PWM的缺点是负载功率高频波动很大,不适合要求输出平稳无纹波要求的场合。
msp430简介MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化, MSP430系列将会得到越来越多人的喜爱.一、IO口(一)、P口端口寄存器:1、PxDIR 输入/输出方向寄存器(0:输入模式 1:输出模式)2、PxIN 输入寄存器输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。
3、PxOUT 输出寄存器寄存器内的内容不会受引脚方向改变的影响。
4、PxIFG 中断标志寄存器(0:没有中断请求 1:有中断请求)该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受;5、PxIES 中断触发沿选择寄存器(0:上升沿中断 1:下降沿中断)6、PxSEL 功能选择寄存器(0:选择引脚为I/O端口 1:选择引脚为外围模块功能)7、PxREN 上拉/下拉电阻使能寄存器(0:禁止 1:使能)(二)、常用特殊P口:1、P1和P2口可作为外部中断口。
msp430简介MSP430是德州公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐.它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器.具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟.由于为FLASH型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且,可以在超低功耗模式下工作对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好,加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备.我们相信MSP430单片机将会在工程技术应用中得以广泛应用,而且,它是通向DSP系列的桥梁,随着自动控制的高速化和低功耗化, MSP430系列将会得到越来越多人的喜爱.一、IO口(一)、P口端口寄存器:1、PxDIR 输入/输出方向寄存器(0:输入模式 1:输出模式)2、PxIN 输入寄存器输入寄存器是只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容知道I/O口的输入信号。
3、PxOUT 输出寄存器寄存器内的内容不会受引脚方向改变的影响。
4、PxIFG 中断标志寄存器(0:没有中断请求 1:有中断请求)该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求;这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位;外部中断事件的时间必须>=1.5倍的MCLK的时间,以保证中断请求被接受;5、PxIES 中断触发沿选择寄存器(0:上升沿中断 1:下降沿中断)6、PxSEL 功能选择寄存器(0:选择引脚为I/O端口 1:选择引脚为外围模块功能)7、PxREN 上拉/下拉电阻使能寄存器(0:禁止 1:使能)(二)、常用特殊P口:1、P1和P2口可作为外部中断口。
MSP430程序库<十一>定时器TA 的PWM 输出定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM 波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。
这里完成一个比较通用的PWM 波形产生程序。
• 硬件介绍硬件介绍::MSP430系列单片机的TimerA 结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。
它给开发人员提供了较多灵活的选择余地。
当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM ,而不需利用中断维持PWM 输出。
MSP430F16x 和MSP430F14x 单片机内部均含有两个定时器,TA 和TB ;TA 有三个模块,CCR0-CCR2;TB 含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM 波形(只有三种输出模式可用);TA 可以输出完整的2路PWM 波形;TB 可以输出6路完整的P WM 波形。
定时器的PWM 输出有有8种模式:输出模式0 输出模式:输出信号OUTx 由每个捕获/比较模块的控制寄存器CCTLx 中的OUTx 位定义,并在写入该寄存器后立即更新。
最终位OUTx 直通。
输出模式1 置位模式:输出信号在TAR 等于CCRx 时置位,并保持置位到定时器复位或选择另一种输出模式为止。
输出模式2 PWM 翻转/复位模式:输出在TAR 的值等于CCRx 时翻转,当TAR 的值等于CCR0时复位。
输出模式3 PWM 置位/复位模式:输出在TAR 的值等于CCRx 时置位,当TAR 的值等于CCR0时复位。
输出模式4 翻转模式:输出电平在TAR 的值等于CCRx 时翻转,输出周期是定时器周期的2倍。
输出模式5复位模式:输出在TAR 的值等于CCRx 时复位,并保持低电平直到选择另一种输出模式。
输出模式6PWM 翻转/置位模式:输出电平在TAR 的值等于CCRx 时翻转,当TAR 值等于CCR0时置位。
输出模式7PWM 复位/置位模式:输出电平在TAR 的值等于CCRx 时复位,当TAR 的值等于CCR0时置位。
下图是增计数模式下的输出波形(本程序使用的是增模式3和7):计数模式计数模式::增计数模式捕获/比较寄存器CCR0用作Timer_A 增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65 536的连续计数情况。
计数器TAR 可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。
连续计数模式在需要65 536个时钟周期的定时应用场合常用连续计数模式。
定时器从当前值计数到0FFFFH 后,又从0开始重新计数增/减计数模式需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。
计数周期仍由CCR0定义,它是CCR0计数器数值的2倍。
TA定时器有比较、捕获两种工作方式;比较可以产生PWM波形等,捕获可以精确的测量时间;这里用的是比较输出。
硬件介绍就这么多了,其他的可以参考msp430x1xx_family_users_guide(用户指南)。
程序实现::•程序实现本程序是直接从msp430f42x移植的,只改动了端口就能正常使用了。
由此,430的模块在不同的系列中是通用的,有关寄存器是一样的;只是也许外部端口不太一样。
程序初始化部分:完成TA相关寄存器的初始化。
char TAPwmInit(char Clk,char Div,char Mode1,char Mode2){TACTL = 0; //清除以前设置TACTL |= MC_1; //定时器TA设为增计数模式switch(Clk) //选择时钟源{case 'A': case 'a': TACTL|=TASSEL_1; break; //ACLKcase 'S': case 's': TACTL|=TASSEL_2; break; //SMCLKcase 'E': TACTL|=TASSEL_0; break; //外部输入(TACLK)case 'e': TACTL|=TASSEL_3; break; //外部输入(TACLK取反)default : return(0); //参数有误}switch(Div) //选择分频系数{case 1: TACTL|=ID_0; break; //1case 2: TACTL|=ID_1; break; //2case 4: TACTL|=ID_2; break; //4case 8: TACTL|=ID_3; break; //8default : return(0); //参数有误}switch(Mode1) //设置PWM通道1的输出模式。
{case 'P':case 'p': //如果设置为高电平模式TACCTL1 = OUTMOD_7; //高电平PWM输出P1SEL |= BIT2; //从P1.2输出(不同型号单片机可能不一样)P1DIR |= BIT2; //从P1.2输出(不同型号单片机可能不一样)break;case 'N':case 'n': //如果设置为低电平模式TACCTL1 = OUTMOD_3; //低电平PWM输出P1SEL |= BIT2; //从P1.2输出(不同型号单片机可能不一样)P1DIR |= BIT2; //从P1.2输出(不同型号单片机可能不一样)break;case '0':case 0: //如果设置为禁用P1SEL &= ~BIT2; //P1.2恢复为普通IO口break;default : return(0); //参数有误}switch(Mode2) //设置PWM通道1的输出模式。
{case 'P':case 'p': //如果设置为高电平模式TACCTL2 =OUTMOD_7; //高电平PWM输出P1SEL |= BIT3; //从P1.3输出(不同型号单片机可能不一样)P1DIR |= BIT3; //从P1.3输出(不同型号单片机可能不一样)break;case 'N':case 'n': //如果设置为低电平模式TACCTL2 =OUTMOD_3; //低电平PWM输出P1SEL |= BIT3; //从P1.3输出(不同型号单片机可能不一样)P1DIR |= BIT3; //从P1.3输出(不同型号单片机可能不一样)break;case '0':case 0: //如果设置为禁用P1SEL &= ~BIT3; //P1.3恢复为普通IO口break;default : return(0); //参数有误}return(1);}主要是设置TACTL寄存器,让TA工作于增模式,设置时钟源和分频;CCTLx设置对应的输出模式;并且打开相应端口的第二功能。
设置周期函数:设置PWM波形的周期,单位是多少个TACLK周期。
void TAPwmSetPeriod(unsigned int Period){TACCR0 = Period;}工作于增模式时,TA计数到TACCR0,设CCR0就完成了周期的设置。
设置占空比:设置TA的PWM输出的有效电平的时间。
void TAPwmSetDuty(char Channel,unsigned int Duty){switch(Channel){case 1: TACCR1=Duty; break;case 2: TACCR2=Duty; break;}}根据参数分别设置每一路的参数。
设置占空比,用千分比设置:* 入口参数:Channel: 当前设置的通道号1/2Percent: PWM有效时间的千分比(0~1000)* 出口参数:无* 说明: 1000=100.0% 500=50.0% ,依次类推* 范例: TAPwmSetPermill(1,300)设置PWM通道1方波的占空比为30.0%TAPwmSetPermill(2,825)设置PWM通道2方波的占空比为82.5%*/void TAPwmSetPermill(char Channel,unsigned int Percent){unsigned long int Period;unsigned int Duty;Period = TACCR0;Duty = Period * Percent / 1000;TAPwmSetDuty(Channel,Duty);}这个函数用千分比来设置PWM输出的有效时间。
方便程序的使用。
有关定时器,TI提供的大量的例程,这些历程都很简洁、清晰。
需要其他功能可以自己根据例程编写对应的程序。
程序实现就这么多了,下面说下本程序的使用方法。
使用示例::•使用示例使用方式:依然是在工程中加入c文件;文件包含h头文件;然后就可以正常使用本函数了。
详细参考示例工程和main.c。
main主要程序如下:#include "msp430x16x.h" //430寄存器头文件#include "TAPwm.h" //TA PWM输出程序库头文件void main(){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;ClkInit();TAPwmInit('A',1,'P','P'); //将定时器TA初始化成为PWM发生器//时钟源=ACLK ; 无分频; 通道1和通道2均设为高电平模式。
TAPwmSetPeriod(500); //通道1/2的PWM方波周期均设为500个时钟周期TAPwmSetDuty(1,200); //1通道有效200个时钟周期TAPwmSetPermill(2,200); //2通道20.0%LPM0;}本程序调用程序库,产生两路PWM波形。
TA的PWM输出就到这儿了,如果需要更多路的PWM波,可以使用TB,他可以产生6路完整的PWM波形;可以参考本程序编写TB的波形输出程序。
有什么不足之处,欢迎评论,讨论。