MSP430F5529入门(四)定时器A——第一节
这节主要贴一些和MSP430定时器A相关的寄存器和库函数,主要参考这位大佬
一、定时器A库函数相关
这些库函数在官方给出的例程库里面可以 open declaration 找到相关结构体。
定时器A配置和控制的函数
Timer_A_startCounter(uint16_t baseAddress, uint16_t timerMode)
//定时器A开始计数
Timer_A_initUpMode(uint16_t baseAddress, Timer_A_initUpModeParam ∗param)
//配置定时器A为增计数模式
Timer_A_initUpDownMode(uint16_t baseAddress, Timer_A_initUpDownModeParam
∗param)
//配置定时器A为增/减计数模式
Timer_A_initContinuousMode(uint16_t baseAddress, Timer_A_initContinuousModeParam ∗param)
//配置定时器A为连续计数模式
Timer_A_initCaptureMode(uint16_t baseAddress, Timer_A_initCaptureModeParam ∗param)
//初始化为捕获模式。
Timer_A_initCompareMode(uint16_t baseAddress, Timer_A_initCompareModeParam ∗param)
//初始化为比较模式
Timer_A_clear(uint16_t baseAddress)
//复位/清除计时器时钟分频器,计数方向,计数值
Timer_A_stop(uint16_t baseAddress)
//停止计时器计时
定时器A输出相关函数
Timer_A_getSynchronizedCaptureCompareInput((uint16_t baseAddress, uint16_t
captureCompareRegister, uint16_t synchronized)
//获取同步的capturecompare输入
Timer_A_getOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t
captureCompareRegister)
//为输出模式获取输出位
Timer_A_setOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t
captureCompareRegister, uint8_t outputModeOutBitValue)
//为输出模式设置输出位
Timer_A_outputPWM(uint16_t baseAddress, Timer_A_outputPWMParam ∗param)
//计时器A运行在增计数模式产生PWM
Timer_A_getCaptureCompareCount(uint16_t baseAddress, uint16_t
captureCompareRegister)
//获取当前capturecompare计数值
Timer_A_setCompareValue(uint16_t baseAddress, uint16_t compareRegister, uint16_t
compareValue)
//设置捕获比较寄存器的值
Timer_A_getCounterValue(uint16_t baseAddress)
//读取当前计时器A计数值
管理定时器A中断
Timer_A_enableInterrupt(uint16_t baseAddress)
//使能定时器中断
Timer_A_disableInterrupt(uint16_t baseAddress)
//禁用定时器中断
Timer_A_getInterruptStatus(uint16_t baseAddress)
//获取定时器中断状态
Timer_A_enableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t
captureCompareRegister)
//启用捕获比较中断
Timer_A_disableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t
captureCompareRegister)
//禁用捕获比较中断
Timer_A_getCaptureCompareInterruptStatus(uint16_t baseAddress, uint16_t
captureCompareRegister, uint16_t mask)
//返回捕获比较中断状态
Timer_A_clearCaptureCompareInterrupt(uint16_t baseAddress, uint16_t
captureCompareRegister)
//清除捕获比较中断标志
Timer_A_clearTimerInterrupt(uint16_t baseAddress)
//清除Timer TAIFG中断标志
二、定时器A寄存器相关
//定时器模式寄存器配置
#define MC_0 (0*0x10u) /* Timer A mode control: 0 - Stop */
#define MC_1 (1*0x10u) /* Timer A mode control: 1 - Up to CCR0 */
#define MC_2 (2*0x10u) /* Timer A mode control: 2 - Continuous up */
#define MC_3 (3*0x10u) /* Timer A mode control: 3 - Up/Down */
//定时器时钟源寄存器配置
#define TASSEL_0 (0*0x100u) /* Timer A clock source select: 0 - TACLK */
#define TASSEL_1 (1*0x100u) /* Timer A clock source select: 1 - ACLK */
#define TASSEL_2 (2*0x100u) /* Timer A clock source select: 2 - SMCLK */
#define TASSEL_3 (3*0x100u) /* Timer A clock source select: 3 - INCLK */
三、自己总结的定时器中断配置
- 定时器工作模式
- 定时器中断源时钟和分频
- 定时器初值设置
- 定时器CCR0中断使能
- 定时器的计数器清0
四、总结
这节主要是一些重要的库函数和寄存器,写得并不是很具体,希望大家谅解,下一节会是一些实例。