MSP430-Timer(三)

发布者:梦幻之光最新更新时间:2022-08-10 来源: csdn关键字:MSP430  Timer  定时器 手机看文章 扫描二维码
随时随地手机看文章

查询数据手册可知,有四个定时器,分别是TimerA0,A1,A2,B0,接下来主要针对TimerA进行主要探究.


Timer_A介绍

Timer_A是一个16位的计时器/计数器,有多达7个捕获/比较寄存器

Timer_A可以支持多个捕获/比较,PWM输出,间隔计时。

Timer_A还具有广泛的中断功能。在溢出条件下,可以从计数器和每个捕获/比较寄存器中生成中断。

Timer_A功能包括:异步16位定时器/计数器,四种操作模式可选择和可配置的时钟源最多可配置7个捕获/比较寄存器具有脉宽调制(PWM)能力的可配置输出异步输入和输出闭锁

中断向量寄存器用于快速解码

单脉冲的PWM输出

1.设置IO口为输出模式


//P2.0 as PWM output

    GPIO_setAsPeripheralModuleFunctionOutputPin(

        GPIO_PORT_P2,

        GPIO_PIN0

        );


2.设置Timer模式


        Timer_A_outputPWMParam param = {0};

        param.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;

        param.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;

        param.timerPeriod = TIMER_PERIOD;

        param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;

        param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;

        param.dutyCycle = DUTY_CYCLE;

        Timer_A_outputPWM(TIMER_A1_BASE, ¶m);


效果

在这里插入图片描述

实测中ACLK仅有32.8HZ,SMCLK时钟有1.054Mhz.


在电机控制中,内部PWM频率设置非常有讲究,查阅的资料一般都是说在10-20Khz较好,不过具体还得看自身电机的参数。对于主频只有1MHZ的MSP430如何产生那么高的PWM呢?

两个方法:

第一个是利用UCS时钟管理系统升频

第二个是配置好TIMER_PERIOD和DUTY_CYCLE两个参数。


具体捕获比较寄存器的选择就根据原理图中对应IO口的定时器所用的设置即可。

关键字:MSP430  Timer  定时器 引用地址:MSP430-Timer(三)

上一篇:MSP430——UART(四)
下一篇:MSP432-SPI主从通信

推荐阅读最新更新时间:2024-11-19 23:06

单片机C语言程序设计:TIMER0与TIMER1控制条形LED
/* 名称:TIMER0 与 TIMER1 控制条形 LED 说明:定时器 T0 定时控制上一组条形 LED,滚动速度较快 定时器 T1 定时控制下一组条形 LED,滚动速度较慢 */ #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar tc0=0,tc1=0; //主程序 void main() { P0=0xfe; P2=0xfe; TMOD=0x11; //定时器 0、定时器1 均工作于方式 1 TH0=(65536-15000)/256; //
[单片机]
单片机C语言程序设计:<font color='red'>TIMER</font>0与<font color='red'>TIMER</font>1控制条形LED
基于SVPWM以及实际MCU定时器输出脉冲的中心对齐模式
一、扇区矢量切换点确定 模型按七段式的三相桥臂切换时间搭建,如I扇区内,确定逆变臂的开关顺序为七段000-100-110-111-111-110-100-000; (第I扇区) 由于其为三角波调制,其定时 中心 对称、每个合成矢量的作用周期固定为Tpwm,则可定义: (三相切换点) 同理在第Ⅱ扇区内,逆变桥臂的开关顺序为000-010-110-111-111-110-010-000: (第2扇区) 在第Ⅲ扇区内,逆变桥臂的开关顺序为000-010-011-111-111-011-010-000: (第3扇区) 在第Ⅳ扇区内,逆变桥臂的开关顺序为000-001-011-111-111-011-001-000:
[嵌入式]
基于SVPWM以及实际MCU<font color='red'>定时器</font>输出脉冲的中心对齐模式
MSP430 G2553 Lauchpad+SG90 伺服电机
接线啥的网上都有,直接上代码, IAR , 0~180度 摆动 #include io430.h int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT DCOCTL = 0; // Select lowest DCOx and MODx settings BCSCTL1 = CALBC1_1MHZ; // Set range DCOCTL = CALDCO_1MHZ; P2DIR |= BIT2; // P1.2 output P2SEL |= BIT2;
[单片机]
STC89C52单片机定时器0的中断实验
////////////////////////////////////////////////////////////////////////// 实现功能: 配置定时器0的相关寄存器,使其实现定时器中断功能,然后通过发光 二极管的闪烁展现出中断的进行 实验板型号:BS-XYD-C52 实验名称: 定时器0的中断实验 编写人: 谢应东 编写日期: 2012-4-26 ////////////////////////////////////////////////////////////////////////// #include reg52.h #define uc
[单片机]
STM8定时器实现精准延时(阻塞)
定时器选择: stm8定时器与stm32定时器略有不同,stm32定时器是24位--16,777,216,按照72M时钟8分频计算,周期达到1.86s左右,而stm8定时器是16/8--位65535/255,自身时钟为16M,即使16分频周期也远小于1s。 当前选择TIM2定时器,1分频,最大周期65536/16 约等于 4096us。 初始化 void TIM_Delay_Init() { /* 自动重装载值范围TIM4为0~255,TIM2为0~65535*/ TIM2_TimeBaseInit(TIM2_PRESCALER_1,65535); //65535*(1/16)≈4095us TIM2_Cmd(
[单片机]
PIC16F877A单片机 (外部中断与定时器Timer0的综合使用)
1 实现原理 见前面的定时器0和外部中断的内容 2 实现电路图 3 源代码 /*----------------函数功能: 定时器0+外部中断的运用 功能1:LED0灯一直闪烁; 功能2:没有按键按下时,LED1灯灭。有按键按下时,LED1灯亮。 --------------------------*/ #include pic.h // 调用PIC16f87XA单片机的头文件 //#include delay.h //调用延时子函数 __CONFIG(0xFF32);//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关 //__CONFIG(HS&WDTDIS&LVPDIS);
[单片机]
PIC16F877A单片机 (外部中断与<font color='red'>定时器</font><font color='red'>Timer</font>0的综合使用)
MSP430 IIC总线程序
#ifndef _I2C_H #define _I2C_H #define SDA_1 P4OUT|=0x02 //SDA = 1 #define SDA_0 P4OUT&=~0x02 //SDA = 0 #define SCL_1 P4OUT|=0x01 //SCL = 1 #define SCL_0 P4OUT&=~0x01 //SCL = 0 #define SDA_IN P4DIR&=~0x02; //I/O口为输入 #define SDA_OUT P4DIR|=0x02 //I/0口为输出 #define J
[单片机]
GD32F303固件库开发(13)----定时器TIM捕获PWM测量频率与占空比
概述 本章配置GD32F303输出PWM,同时使用TIM测量PWM频率和正占空比。 查阅手册可以得知,PB11为定时器1的通道3,让其输出PWM,PA6为定时器2的通道0,让作为TIM定时器输入。 需要GD样片的可以加群申请:615061293 。 生成例程 这里准备了自己绘制的开发板进行验证。 管脚图如下所示。 keil配置 microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。 使能串口 /* 使能GPI0A,用PA9、PA10为串口 */ rcu_periph_clock
[单片机]
GD32F303固件库开发(13)----<font color='red'>定时器</font>TIM捕获PWM测量频率与占空比
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved