目录

  • 硬知识
    • Timer_B特点及结构
    • Timer_B寄存器
  • 定时器B API
    • 处理计时器配置和控制的函数
      • 参数
    • 处理计时器输出的函数
      • 参数
    • 管理定时器B中断的函数
      • 参数

平台:Code Composer Studio 10.3.1
MSP430F5529 LaunchPad™ Development Kit
(MSP‑EXP430F5529LP)


硬知识

16位定时器B(Timer_B)和Timer_A一样,是MSP430单片机的重要资源。Timer_B往往比Timer_A功能更强大一些,MSP430F5529单片机的Timer_B定时器具有7个捕获/比较寄存器。

Timer_B特点及结构

Timer_B定时器具有以下特点:
 具有4种工作模式和4种可选计数长度的异步16位定时/计数器;
 参考时钟源可配置;
 高达7个可配置的捕获/比较寄存器;
 具有PWM输出能力;
 具有同步加载能力的双缓冲区比较锁存;
 具有可对Timer_B中断快速响应的中断向量寄存器。

Timer_B和Timer_A的不同之处列举如下:
① Timer_B计数长度为8位、10位、12位和16位可编程,而Timer_A的计数长度固定为16位。
② Timer_B没有实现Timer_A中的SCCI寄存器位的功能。
③ Timer_B在比较模式下的捕获/比较寄存器功能与Timer_A的不同,增加了比较锁存器。
④ 有些型号芯片中的Timer_B输出实现了高阻抗输出。
⑤ 比较模式的原理有所不同。在Timer_A中,CCRx寄存器中保存与TAR相比较的数据,而在Timer_B中,CCRx寄存器中保存的是要比较的数据,但并不直接与定时计数器TBR相比较,而是将CCRx送到与之相对应的锁存器之后,由锁存器与定时计数器TBR相比较。从捕获/比较寄存器向比较锁存器传输数据的时机也是可以编程的,可以是在写入捕获/比较寄存器后立即传输,也可以由一个定时事件来触发。
⑥ Timer_B支持多种、同步的定时功能,多重的捕获/比较功能和多重的波形输出功能。而且通过对比较数据的两级缓冲,可以实现多个PWM信号周期的同步更新。

Timer_B寄存器

Timer_B寄存器列表如表所示,基址为03C0h。

定时器B API

TIMER_B API被分成三组函数:
处理计时器配置和控制的函数、
处理计时器输出的函数
处理中断处理的函数

处理计时器配置和控制的函数

Timer_B_startCounter(uint16_t baseAddress, uint16_t timerMode)
//开启定时器
Timer_B_initUpMode(uint16_t baseAddress, Timer_B_initUpModeParam ∗param)
//配置Timer_B为增计数模式
Timer_B_initUpDownMode(uint16_t baseAddress, Timer_B_initUpDownModeParam ∗param)
//配置Timer_B为增/减计数模式
Timer_B_initContinuousMode(uint16_t baseAddress, Timer_B_initContinuousModeParam ∗param)
//配置Timer_B为连续计数模式
Timer_B_initCaptureMode(uint16_t baseAddress, Timer_B_initCaptureModeParam ∗param)
//初始化捕获模式
Timer_B_initCompareMode(uint16_t baseAddress, Timer_B_initCompareModeParam ∗param)
//初始化比较模式
Timer_B_clear(uint16_t baseAddress)
//重置/清除计时器、时钟分频器,计数方向,计数。
Timer_B_stop()
//停止Timer_B
Timer_B_initCompareLatchLoadEvent(uint16_t baseAddress, uint16_t compareRegister, uint16_t compareLatchLoadEvent)
//Selects Compare Latch Load Event.
Timer_B_selectLatchingGroup(uint16_t baseAddress, uint16_t groupLatch)
//Selects Timer_B Latching Group.
Timer_B_selectCounterLength(uint16_t baseAddress, uint16_t counterLength)
//选择Timer_B计数器长度(位数)

参数

baseAddress

TIMER_B0_BASE

timerMode

TIMER_B_STOP_MODE
TIMER_B_UP_MODE
TIMER_B_CONTINUOUS_MODE     //[Default]
TIMER_B_UPDOWN_MODE

Timer_B_initUpModeParam

//*****************************************************************************
//
//! \brief Used in the Timer_B_initUpMode() function as the param parameter.
//
//*****************************************************************************
typedef struct Timer_B_initUpModeParam {//! Selects the clock source//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_EXTERNAL_TXCLK [Default]//! - \b TIMER_B_CLOCKSOURCE_ACLK//! - \b TIMER_B_CLOCKSOURCE_SMCLK//! - \b TIMER_B_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLKuint16_t clockSource;//! Is the divider for Clock source.//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_DIVIDER_1 [Default]//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_2//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_3//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_4//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_5//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_6//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_7//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_8//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_10//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_12//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_14//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_16//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_20//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_24//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_28//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_32//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_40//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_48//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_56//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_64uint16_t clockSourceDivider;//! Is the specified Timer_B period. This is the value that gets written//! into the CCR0. Limited to 16 bits[uint16_t]uint16_t timerPeriod;//! Is to enable or disable Timer_B interrupt//! \n Valid values are://! - \b TIMER_B_TBIE_INTERRUPT_ENABLE//! - \b TIMER_B_TBIE_INTERRUPT_DISABLE [Default]uint16_t timerInterruptEnable_TBIE;//! Is to enable or disable Timer_B CCR0 capture compare interrupt.//! \n Valid values are://! - \b TIMER_B_CCIE_CCR0_INTERRUPT_ENABLE//! - \b TIMER_B_CCIE_CCR0_INTERRUPT_DISABLE [Default]uint16_t captureCompareInterruptEnable_CCR0_CCIE;//! Decides if Timer_B clock divider, count direction, count need to be//! reset.//! \n Valid values are://! - \b TIMER_B_DO_CLEAR//! - \b TIMER_B_SKIP_CLEAR [Default]uint16_t timerClear;//! Whether to start the timer immediatelybool startTimer;
} Timer_B_initUpModeParam;

Timer_B_initUpDownModeParam

//*****************************************************************************
//
//! \brief Used in the Timer_B_initUpDownMode() function as the param
//! parameter.
//
//*****************************************************************************
typedef struct Timer_B_initUpDownModeParam {//! Selects the clock source//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_EXTERNAL_TXCLK [Default]//! - \b TIMER_B_CLOCKSOURCE_ACLK//! - \b TIMER_B_CLOCKSOURCE_SMCLK//! - \b TIMER_B_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLKuint16_t clockSource;//! Is the divider for Clock source.//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_DIVIDER_1 [Default]//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_2//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_3//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_4//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_5//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_6//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_7//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_8//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_10//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_12//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_14//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_16//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_20//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_24//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_28//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_32//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_40//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_48//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_56//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_64uint16_t clockSourceDivider;//! Is the specified Timer_B perioduint16_t timerPeriod;//! Is to enable or disable Timer_B interrupt//! \n Valid values are://! - \b TIMER_B_TBIE_INTERRUPT_ENABLE//! - \b TIMER_B_TBIE_INTERRUPT_DISABLE [Default]uint16_t timerInterruptEnable_TBIE;//! Is to enable or disable Timer_B CCR0 capture compare interrupt.//! \n Valid values are://! - \b TIMER_B_CCIE_CCR0_INTERRUPT_ENABLE//! - \b TIMER_B_CCIE_CCR0_INTERRUPT_DISABLE [Default]uint16_t captureCompareInterruptEnable_CCR0_CCIE;//! Decides if Timer_B clock divider, count direction, count need to be//! reset.//! \n Valid values are://! - \b TIMER_B_DO_CLEAR//! - \b TIMER_B_SKIP_CLEAR [Default]uint16_t timerClear;//! Whether to start the timer immediatelybool startTimer;
} Timer_B_initUpDownModeParam;

Timer_B_initContinuousModeParam

//*****************************************************************************
//
//! \brief Used in the Timer_B_initContinuousMode() function as the param
//! parameter.
//
//*****************************************************************************
typedef struct Timer_B_initContinuousModeParam {//! Selects the clock source//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_EXTERNAL_TXCLK [Default]//! - \b TIMER_B_CLOCKSOURCE_ACLK//! - \b TIMER_B_CLOCKSOURCE_SMCLK//! - \b TIMER_B_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLKuint16_t clockSource;//! Is the divider for Clock source.//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_DIVIDER_1 [Default]//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_2//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_3//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_4//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_5//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_6//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_7//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_8//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_10//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_12//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_14//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_16//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_20//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_24//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_28//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_32//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_40//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_48//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_56//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_64uint16_t clockSourceDivider;//! Is to enable or disable Timer_B interrupt//! \n Valid values are://! - \b TIMER_B_TBIE_INTERRUPT_ENABLE//! - \b TIMER_B_TBIE_INTERRUPT_DISABLE [Default]uint16_t timerInterruptEnable_TBIE;//! Decides if Timer_B clock divider, count direction, count need to be//! reset.//! \n Valid values are://! - \b TIMER_B_DO_CLEAR//! - \b TIMER_B_SKIP_CLEAR [Default]uint16_t timerClear;//! Whether to start the timer immediatelybool startTimer;
} Timer_B_initContinuousModeParam;

Timer_B_initCaptureModeParam

//*****************************************************************************
//
//! \brief Used in the Timer_B_initCaptureMode() function as the param
//! parameter.
//
//*****************************************************************************
typedef struct Timer_B_initCaptureModeParam {//! Selects the capture register being used. Refer to datasheet to ensure//! the device has the capture register being used.//! \n Valid values are://! - \b TIMER_B_CAPTURECOMPARE_REGISTER_0//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_1//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_2//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_3//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_4//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_5//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_6uint16_t captureRegister;//! Is the capture mode selected.//! \n Valid values are://! - \b TIMER_B_CAPTUREMODE_NO_CAPTURE [Default]//! - \b TIMER_B_CAPTUREMODE_RISING_EDGE//! - \b TIMER_B_CAPTUREMODE_FALLING_EDGE//! - \b TIMER_B_CAPTUREMODE_RISING_AND_FALLING_EDGEuint16_t captureMode;//! Decides the Input Select//! \n Valid values are://! - \b TIMER_B_CAPTURE_INPUTSELECT_CCIxA [Default]//! - \b TIMER_B_CAPTURE_INPUTSELECT_CCIxB//! - \b TIMER_B_CAPTURE_INPUTSELECT_GND//! - \b TIMER_B_CAPTURE_INPUTSELECT_Vccuint16_t captureInputSelect;//! Decides if capture source should be synchronized with Timer_B clock//! \n Valid values are://! - \b TIMER_B_CAPTURE_ASYNCHRONOUS [Default]//! - \b TIMER_B_CAPTURE_SYNCHRONOUSuint16_t synchronizeCaptureSource;//! Is to enable or disable Timer_B capture compare interrupt.//! \n Valid values are://! - \b TIMER_B_CAPTURECOMPARE_INTERRUPT_DISABLE [Default]//! - \b TIMER_B_CAPTURECOMPARE_INTERRUPT_ENABLEuint16_t captureInterruptEnable;//! Specifies the output mode.//! \n Valid values are://! - \b TIMER_B_OUTPUTMODE_OUTBITVALUE [Default]//! - \b TIMER_B_OUTPUTMODE_SET//! - \b TIMER_B_OUTPUTMODE_TOGGLE_RESET//! - \b TIMER_B_OUTPUTMODE_SET_RESET//! - \b TIMER_B_OUTPUTMODE_TOGGLE//! - \b TIMER_B_OUTPUTMODE_RESET//! - \b TIMER_B_OUTPUTMODE_TOGGLE_SET//! - \b TIMER_B_OUTPUTMODE_RESET_SETuint16_t captureOutputMode;
} Timer_B_initCaptureModeParam;

Timer_B_initCompareModeParam

//*****************************************************************************
//
//! \brief Used in the Timer_B_initCompareMode() function as the param
//! parameter.
//
//*****************************************************************************
typedef struct Timer_B_initCompareModeParam {//! Selects the compare register being used. Refer to datasheet to ensure//! the device has the compare register being used.//! \n Valid values are://! - \b TIMER_B_CAPTURECOMPARE_REGISTER_0//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_1//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_2//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_3//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_4//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_5//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_6uint16_t compareRegister;//! Is to enable or disable Timer_B capture compare interrupt.//! \n Valid values are://! - \b TIMER_B_CAPTURECOMPARE_INTERRUPT_DISABLE [Default]//! - \b TIMER_B_CAPTURECOMPARE_INTERRUPT_ENABLEuint16_t compareInterruptEnable;//! Specifies the output mode.//! \n Valid values are://! - \b TIMER_B_OUTPUTMODE_OUTBITVALUE [Default]//! - \b TIMER_B_OUTPUTMODE_SET//! - \b TIMER_B_OUTPUTMODE_TOGGLE_RESET//! - \b TIMER_B_OUTPUTMODE_SET_RESET//! - \b TIMER_B_OUTPUTMODE_TOGGLE//! - \b TIMER_B_OUTPUTMODE_RESET//! - \b TIMER_B_OUTPUTMODE_TOGGLE_SET//! - \b TIMER_B_OUTPUTMODE_RESET_SETuint16_t compareOutputMode;//! Is the count to be compared with in compare modeuint16_t compareValue;
} Timer_B_initCompareModeParam;

compareRegister

/*
selects the compare register being used. Refer to datasheet to
ensure the device has the compare register being used. Valid
values are:
*/
TIMER_B_CAPTURECOMPARE_REGISTER_0
TIMER_B_CAPTURECOMPARE_REGISTER_1
TIMER_B_CAPTURECOMPARE_REGISTER_2
TIMER_B_CAPTURECOMPARE_REGISTER_3
TIMER_B_CAPTURECOMPARE_REGISTER_4
TIMER_B_CAPTURECOMPARE_REGISTER_5
TIMER_B_CAPTURECOMPARE_REGISTER_6

compareLatchLoadEvent

/*
selects the latch load event Valid values are:
*/
TIMER_B_LATCH_ON_WRITE_TO_TBxCCRn_COMPARE_REGISTER      //[Default]
TIMER_B_LATCH_WHEN_COUNTER_COUNTS_TO_0_IN_UP_OR_CONT_MODE
TIMER_B_LATCH_WHEN_COUNTER_COUNTS_TO_0_IN_UPDOWN_MODE
TIMER_B_LATCH_WHEN_COUNTER_COUNTS_TO_CURRENT_COMPARE_LATCH_VALUE

groupLatch

//selects the latching group. Valid values are:
TIMER_B_GROUP_NONE      //[Default]
TIMER_B_GROUP_CL12_CL23_CL56
TIMER_B_GROUP_CL123_CL456
TIMER_B_GROUP_ALL

counterLength

//selects the value of counter length. Valid values are:
TIMER_B_COUNTER_16BIT   //[Default]
TIMER_B_COUNTER_12BIT
TIMER_B_COUNTER_10BIT
TIMER_B_COUNTER_8BIT

处理计时器输出的函数

Timer_B_getSynchronizedCaptureCompareInput(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t synchronized)
//获取同步的capturecompare输入
Timer_B_getOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t captureCompareRegister)
//为输出模式获取输出位
Timer_B_setOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t outputModeOutBitValue)
//为输出模式设置输出位
Timer_B_outputPWM(uint16_t baseAddress, Timer_B_outputPWMParam ∗param)
//通过增计数模式产生PWM信号
Timer_B_getCaptureCompareCount(uint16_t baseAddress, uint16_t captureCompareRegister)
//获取当前capturecompare计数
Timer_B_setCompareValue(uint16_t baseAddress, uint16_t compareRegister, uint16_t compareValue)
//设置捕获比较寄存器的值
Timer_B_getCounterValue(uint16_t baseAddress)
//读取当前计时器计数值

参数

baseAddress

TIMER_B0_BASE

captureCompareRegister

/*
selects the capture compare register being used. Refer to
datasheet to ensure the device has the capture compare register
being used. Valid values are:
*/
TIMER_B_CAPTURECOMPARE_REGISTER_0
TIMER_B_CAPTURECOMPARE_REGISTER_1
TIMER_B_CAPTURECOMPARE_REGISTER_2
TIMER_B_CAPTURECOMPARE_REGISTER_3
TIMER_B_CAPTURECOMPARE_REGISTER_4
TIMER_B_CAPTURECOMPARE_REGISTER_5
TIMER_B_CAPTURECOMPARE_REGISTER_6

synchronized

//selects the type of capture compare input Valid values are:
TIMER_B_READ_SYNCHRONIZED_CAPTURECOMPAREINPUT
TIMER_B_READ_CAPTURE_COMPARE_INPUT

outputModeOutBitValue

//the value to be set for out bit Valid values are:
TIMER_B_OUTPUTMODE_OUTBITVALUE_HIGH
TIMER_B_OUTPUTMODE_OUTBITVALUE_LOW

Timer_B_outputPWMParam

//*****************************************************************************
//
//! \brief Used in the Timer_B_outputPWM() function as the param parameter.
//
//*****************************************************************************
typedef struct Timer_B_outputPWMParam {//! Selects the clock source//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_EXTERNAL_TXCLK [Default]//! - \b TIMER_B_CLOCKSOURCE_ACLK//! - \b TIMER_B_CLOCKSOURCE_SMCLK//! - \b TIMER_B_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLKuint16_t clockSource;//! Is the divider for Clock source.//! \n Valid values are://! - \b TIMER_B_CLOCKSOURCE_DIVIDER_1 [Default]//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_2//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_3//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_4//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_5//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_6//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_7//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_8//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_10//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_12//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_14//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_16//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_20//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_24//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_28//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_32//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_40//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_48//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_56//! - \b TIMER_B_CLOCKSOURCE_DIVIDER_64uint16_t clockSourceDivider;//! Selects the desired Timer_B perioduint16_t timerPeriod;//! Selects the compare register being used. Refer to datasheet to ensure//! the device has the compare register being used.//! \n Valid values are://! - \b TIMER_B_CAPTURECOMPARE_REGISTER_0//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_1//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_2//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_3//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_4//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_5//! - \b TIMER_B_CAPTURECOMPARE_REGISTER_6uint16_t compareRegister;//! Specifies the output mode.//! \n Valid values are://! - \b TIMER_B_OUTPUTMODE_OUTBITVALUE [Default]//! - \b TIMER_B_OUTPUTMODE_SET//! - \b TIMER_B_OUTPUTMODE_TOGGLE_RESET//! - \b TIMER_B_OUTPUTMODE_SET_RESET//! - \b TIMER_B_OUTPUTMODE_TOGGLE//! - \b TIMER_B_OUTPUTMODE_RESET//! - \b TIMER_B_OUTPUTMODE_TOGGLE_SET//! - \b TIMER_B_OUTPUTMODE_RESET_SETuint16_t compareOutputMode;//! Specifies the dutycycle for the generated waveformuint16_t dutyCycle;
} Timer_B_outputPWMParam;

compareRegister

//selects the compare register being used. Refer to datasheet to ensure the device has the compare register being used. Valid values are:
TIMER_B_CAPTURECOMPARE_REGISTER_0
TIMER_B_CAPTURECOMPARE_REGISTER_1
TIMER_B_CAPTURECOMPARE_REGISTER_2
TIMER_B_CAPTURECOMPARE_REGISTER_3
TIMER_B_CAPTURECOMPARE_REGISTER_4
TIMER_B_CAPTURECOMPARE_REGISTER_5
TIMER_B_CAPTURECOMPARE_REGISTER_6

compareValue
比较模式下需要比较的计数值

管理定时器B中断的函数

Timer_B_enableInterrupt(uint16_t baseAddress)
//使能定时器B中断
Timer_B_disableInterrupt(uint16_t baseAddress)
//禁用定时器B中断
Timer_B_getInterruptStatus(uint16_t baseAddress)
//获取定时器B中断状态
Timer_B_enableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
//启用捕获比较中断
Timer_B_disableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
//禁用捕获比较中断
Timer_B_getCaptureCompareInterruptStatus(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t mask)
//清除捕获比较中断标志
Timer_B_clearCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
//清除捕获比较中断标志
Timer_B_clearTimerInterrupt(uint16_t baseAddress)
//清除Timer_ B TBIFG中断标志。

参数

baseAddress

TIMER_B0_BASE

captureCompareRegister

/*
selects the capture compare register being used. Refer to
datasheet to ensure the device has the capture compare register
being used. Valid values are:
*/
TIMER_B_CAPTURECOMPARE_REGISTER_0
TIMER_B_CAPTURECOMPARE_REGISTER_1
TIMER_B_CAPTURECOMPARE_REGISTER_2
TIMER_B_CAPTURECOMPARE_REGISTER_3
TIMER_B_CAPTURECOMPARE_REGISTER_4
TIMER_B_CAPTURECOMPARE_REGISTER_5
TIMER_B_CAPTURECOMPARE_REGISTER_6

mask

/*
is the mask for the interrupt status Mask value is the logical OR of
any of the following:
*/
TIMER_B_CAPTURE_OVERFLOW
TIMER_B_CAPTURECOMPARE_INTERRUPT_FLAG

MSP430F5529 DriverLib 库函数学习笔记(七)定时器B相关推荐

  1. MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)

    目录 硬知识 看门狗定时计数器 (WDTCNT) 看门狗模式 定时计数模式 看门狗定时器中断 时钟故障保护功能 低功耗模式下的看门狗操作 看门狗定时器控制寄存器 WDT_A API (机翻) 参数 上 ...

  2. MSP430F5529 DriverLib 库函数学习笔记(六)定时器A产生PWM波

    目录 1.通过Timer_A_outputPWM配置产生PWM波 初始化函数 计算 修改占空比的函数 整体程序 效果 2.单定时器产生多路PWM信号 初始化函数 实验结果 3.对称PWM信号的产生 初 ...

  3. MSP430F5529 DriverLib 库函数学习笔记(五)定时器A

    目录 硬知识 定时器A 16位定时器原理 (1)时钟源选择和分频器 (2)Timer_A工作模式 (3)捕获/比较模块 (4)Timer_A中断(重要) 定时器A API (机翻) 定时器A配置和控制 ...

  4. MSP430F5529 DriverLib 库函数学习笔记(十六)比较器B Comp_B

    目录 硬知识 比较器B介绍 比较器 B 的特点 比较器 B 的结构 模拟输入部分 比较部分 基准电压部分 低通滤波部分 比较器和普通运放的区别 比较器B测量电阻原理 利用比较器B实现电容触摸按键原理 ...

  5. MSP430F5529 DriverLib 库函数学习笔记(八)模数转换模块(ADC12)

    目录 硬知识 模数转换概述 MSP430单片机ADC12模块介绍 MSP430单片机ADC12模块操作 ADC12的转换模式 采样和转换 转换存储器 使用片内集成温度传感器 ADC12模块寄存器 AD ...

  6. MSP430F5529 DriverLib 库函数学习笔记(十二)I2C实战

    目录 上机实战 I2C给 DAC 芯片 DAC7571 写入数字量 DAC7571 介绍 程序分析 引脚复用 I2C 初始化 发送一个字节 发送一个字 读取一个字节 读取多个字节 中断服务函数 整体代 ...

  7. MSP430F5529 DriverLib 库函数学习笔记(十)SPI驱动墨水屏

    目录 上机实战 SPI 驱动 墨水屏 墨水屏介绍 电子纸的分类 电泳型电子纸技术详解 原理 结构 优势与不足 实验电路介绍 程序分析 引脚初始化 SPI模块初始化 发送和接收 全部源代码 main.c ...

  8. MSP430F5529 DriverLib 库函数学习笔记(四点五)printf打印输出

    目录 代码实现 使相应工程支持打印浮点数 实验结果 平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP ...

  9. MSP430F5529 DriverLib 库函数学习笔记(四)UART通信

    目录 硬知识 USCI通信模块 USCI的UART模式 1. USCI初始化和复位 2. 异步通信字符格式 3. 异步多机通信模式 4. 自动波特率检测 5. IrDA编码和解码 6. 自动错误检测 ...

最新文章

  1. gradlew wrapper使用下载到本地的gradle.zip文件装配--转
  2. 使用Drools跟踪输出
  3. mongodb上一篇下一篇_如何使用Microsoft office word—上一篇
  4. CentOS7 使用 firewalld 打开关闭防火墙与端口
  5. glPushMatrix()和glPopMatrix()以及glLoadIdentity()的理解
  6. Spring源码入门——AnnotationBeanNameGenerator解析
  7. 简单的Spring配置文件
  8. Auto layout 的使用
  9. 排序算法之二 插入排序(C++版本)
  10. python从键盘输入一个数、计算出大于n的最小素数_请问,可以帮忙做下这个题吗?--从键盘输入一个数,求大于该数的最小素数....
  11. Css3:选择器、字体和颜色样式
  12. java中BOM是什么_Java处理带BOM的文本情况是什么?
  13. 百度云语音合成 Python SDK
  14. 苹果切换输入法_最新破解朋友圈折叠的多种方法!安卓和苹果通用!亲测有效!...
  15. 针对儿子买的将近一万的笔记本电脑
  16. 数据结构(0719-林雪阵)
  17. 淘宝购物券,淘宝网的购物券怎么用
  18. 电赛专题 | E题-互联网的信号传输
  19. MySQL 常用命令速查表:日常开发、求职面试必备良方!
  20. PS制作复古彩色画人像照片、创意分割照片

热门文章

  1. TCP 协议的三次握手、四次分手
  2. Silverlight 5 新特性
  3. RHEL5+Postfix+MySql+IMAP+MailDrop+ExtMail(5)
  4. python数据建模数据集_Python中的数据集
  5. 线性回归非线性回归_了解线性回归
  6. 在Java里如何给一个日期增加一天
  7. mac 没有所有开发者_为什么开发人员应该像产品所有者那样思考
  8. pytorch深度学习_深度学习和PyTorch的推荐系统实施
  9. v$asm_diskgroup中state的说明
  10. 工厂模式-依赖倒置原则