MSP430 G2553 计时/计数器 Timer_A】的更多相关文章

MSP430G2553包含了两个16-bit Timer_A计时/计数器.本文简单介绍了Timer_A的功能和寄存器使用,本文及后续的随笔部分参考了"Scientific Instrument Using the TI MSP430"博客.该博客的MSP430教程文章非常好,建议对MSP430感兴趣的人FQ阅读. 一.介绍 Timer_A可实现的功能有 - multiple compare:判断计时器时间是否到达设定条件,触发事件 - multiple capture:捕获某个事件发生…
一.基本原理 对于Source-Free RC电路,其电容放电的特性可以描述为: 其中V0是电容的初始电压,t是放电时间,R是串接的电阻阻值,C是电容值,v(t)是t时刻电容上的电压.因此,若已知V0.R.以及t1时刻的电压Vt1,便可求得C: 二.如何控制和测量 如上图所示,大致步骤为:1)由GPIO通过电阻R给电容C充电至Vcc:2)该GPIO输出0,电容C通过R进行放电,同时Timer开始计时.CA+开启:3)当电容电压放电至参考电压(此处是0.25Vcc)时,比较器CA+输出端出现电平变…
一.时钟源 MSP430的Basic Clock Module+支持的时钟源有: DCOCLK:内部数字控制振荡器,Internal digitally contrlled oscillator.所有MSP430芯片都有.MSP430G2553的DCO支持的最大频率一般为16MHz,且保存了1MHz.8MHz.12MHz.16MHz四个频率的校正信息. VLOCLK:内部超低功耗.低频振荡器,Internal very low power, low frequency oscillator,典型…
MSP430除了正常运行时的active模式外,还支持五种低功耗模式(Low-power mode),分别为LPM0.LPM1.LPM2.LPM3.LPM4,由状态寄存器中的CPUOFF.OSCOFF.SCG0.SCG1比特位设置. 六种模式对应的时钟状态为: 其中,LPM3.LPM4比较常用,对低功耗的贡献也最大.LPM3模式关闭了DCO.CPU,从而MCLK.SMCLK无法工作,ACLK(来源为LFXT1或VLO)可以正常工作并用于系统的定时唤醒.LPM4模式下所有内部时钟信号都关闭,系统只…
目前总共用到了四个中断向量,我觉得已经把G2553的所有定时器中断都用到了. 定时器有两个,TA0与TA1,每个定时器又有两个中断向量 1,CCR0到达时的中断,在计数模式时候很有用,平时定时器的基本功能. 2,CCR1,CCR2,以及 overflow时候的中断向量,这里面又有三个中断标志. #define TIMER0_A1_VECTOR (8 * 2u) /* 0xFFF0 Timer0)A CC1, TA0 */ #define TIMER0_A0_VECTOR (9 * 2u) /*…
一.CA+构造 MSP430G2553带有一个比较器Comparator_A+(CA+),其构造框图如下图所示. 二.输入 & 输出 如上图所示,比较器有一个同向输入端(V+)和一个反向输入端(V-).通过软件设置,V+端可以连接到CA0~CA2三个外部管脚之一,或者三个内部电压基准之一:V-端可以连接到CA1~CA7七个外部管脚之一,或者三个内部电压基准之一.内部电压基准可以是0.5*Vcc.0.25*Vcc,或者内部一个二极管的导通电压(约0.55V). 输出信号可以连接至Timer的外部时…
P1.P2端口上的每个管脚都支持外部中断.P1端口的所有管脚都对应同一个中断向量(Interrupt Vector),类似的,P2端口的所有管脚都对应另一个中断向量:通过PxIFG寄存器来判断中断来源于具体哪个管脚. 相关的寄存器如下表所示.   Register                           Short Form       Register Type       Initial State             Interrupt Flag   PxIFG   Rea…
一. 背景知识:逻辑运算符的使用 当程序初始化时,对于复位状态有不确定性的寄存器(如PxOUT),建议采用直接赋值:其他情况下最好使用逻辑运算符修改寄存器. 直接赋值 REGISTER = 0b11110000; REGISTER = 0xF0; “开启”某位(置1),保持其他位不变 REGISTER |= BITx; //turn bit x on REGISTER |= BITx + BITy; //both on “关闭”某位(置0),保持其他位不变 REGISTER &= ~BITx;…
USCI_B0 USCI_B0 发送缓冲器UCB0TXBUF 06Fh USCI_B0 接收缓冲器UCB0RXBUF 06Eh USCI_B0 状态UCB0STAT 06Dh USCI B0 I2C 中断启用UCB0CIE 06Ch USCI_B0 位速率控制1 UCB0BR1 06Bh USCI_B0 位速率控制0 UCB0BR0 06Ah USCI_B0 控制1 UCB0CTL1 069h USCI_B0 控制l 0 UCB0CTL0 068h USCI_B0 I2C 从地址UCB0SA 0…
源:一个基于ATMEGA128的直流电机抱死程序 先说一下我的硬件情况:一块ATMEGA128实验板:一个带编码器的80:1的变速电机,编码器的输出端连接到单片机的PD4和PD5引脚:一块电机驱动电路,该电路的输入为:24v电源.两路pwm信号输入,输出即为电机的正负极,要用该电路来驱动电机,则必须让两路pwm输入信号的一路占空比为0,另一路不为0,相当于让电机的一极接地,另一极接pwm,通过控制两路pwm的占空比来控制电机的转速和转动方向.pwm信号的输入端连接到单片机的PD6和PD7引脚.…