MSP430F5529 DriverLib 库函数学习笔记(七)定时器B
目录
- 硬知识
- 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相关推荐
- MSP430F5529 DriverLib 库函数学习笔记(十四)看门狗定时器 (WDT)
目录 硬知识 看门狗定时计数器 (WDTCNT) 看门狗模式 定时计数模式 看门狗定时器中断 时钟故障保护功能 低功耗模式下的看门狗操作 看门狗定时器控制寄存器 WDT_A API (机翻) 参数 上 ...
- MSP430F5529 DriverLib 库函数学习笔记(六)定时器A产生PWM波
目录 1.通过Timer_A_outputPWM配置产生PWM波 初始化函数 计算 修改占空比的函数 整体程序 效果 2.单定时器产生多路PWM信号 初始化函数 实验结果 3.对称PWM信号的产生 初 ...
- MSP430F5529 DriverLib 库函数学习笔记(五)定时器A
目录 硬知识 定时器A 16位定时器原理 (1)时钟源选择和分频器 (2)Timer_A工作模式 (3)捕获/比较模块 (4)Timer_A中断(重要) 定时器A API (机翻) 定时器A配置和控制 ...
- MSP430F5529 DriverLib 库函数学习笔记(十六)比较器B Comp_B
目录 硬知识 比较器B介绍 比较器 B 的特点 比较器 B 的结构 模拟输入部分 比较部分 基准电压部分 低通滤波部分 比较器和普通运放的区别 比较器B测量电阻原理 利用比较器B实现电容触摸按键原理 ...
- MSP430F5529 DriverLib 库函数学习笔记(八)模数转换模块(ADC12)
目录 硬知识 模数转换概述 MSP430单片机ADC12模块介绍 MSP430单片机ADC12模块操作 ADC12的转换模式 采样和转换 转换存储器 使用片内集成温度传感器 ADC12模块寄存器 AD ...
- MSP430F5529 DriverLib 库函数学习笔记(十二)I2C实战
目录 上机实战 I2C给 DAC 芯片 DAC7571 写入数字量 DAC7571 介绍 程序分析 引脚复用 I2C 初始化 发送一个字节 发送一个字 读取一个字节 读取多个字节 中断服务函数 整体代 ...
- MSP430F5529 DriverLib 库函数学习笔记(十)SPI驱动墨水屏
目录 上机实战 SPI 驱动 墨水屏 墨水屏介绍 电子纸的分类 电泳型电子纸技术详解 原理 结构 优势与不足 实验电路介绍 程序分析 引脚初始化 SPI模块初始化 发送和接收 全部源代码 main.c ...
- MSP430F5529 DriverLib 库函数学习笔记(四点五)printf打印输出
目录 代码实现 使相应工程支持打印浮点数 实验结果 平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP ...
- MSP430F5529 DriverLib 库函数学习笔记(四)UART通信
目录 硬知识 USCI通信模块 USCI的UART模式 1. USCI初始化和复位 2. 异步通信字符格式 3. 异步多机通信模式 4. 自动波特率检测 5. IrDA编码和解码 6. 自动错误检测 ...
最新文章
- gradlew wrapper使用下载到本地的gradle.zip文件装配--转
- 使用Drools跟踪输出
- mongodb上一篇下一篇_如何使用Microsoft office word—上一篇
- CentOS7 使用 firewalld 打开关闭防火墙与端口
- glPushMatrix()和glPopMatrix()以及glLoadIdentity()的理解
- Spring源码入门——AnnotationBeanNameGenerator解析
- 简单的Spring配置文件
- Auto layout 的使用
- 排序算法之二 插入排序(C++版本)
- python从键盘输入一个数、计算出大于n的最小素数_请问,可以帮忙做下这个题吗?--从键盘输入一个数,求大于该数的最小素数....
- Css3:选择器、字体和颜色样式
- java中BOM是什么_Java处理带BOM的文本情况是什么?
- 百度云语音合成 Python SDK
- 苹果切换输入法_最新破解朋友圈折叠的多种方法!安卓和苹果通用!亲测有效!...
- 针对儿子买的将近一万的笔记本电脑
- 数据结构(0719-林雪阵)
- 淘宝购物券,淘宝网的购物券怎么用
- 电赛专题 | E题-互联网的信号传输
- MySQL 常用命令速查表:日常开发、求职面试必备良方!
- PS制作复古彩色画人像照片、创意分割照片
热门文章
- TCP 协议的三次握手、四次分手
- Silverlight 5 新特性
- RHEL5+Postfix+MySql+IMAP+MailDrop+ExtMail(5)
- python数据建模数据集_Python中的数据集
- 线性回归非线性回归_了解线性回归
- 在Java里如何给一个日期增加一天
- mac 没有所有开发者_为什么开发人员应该像产品所有者那样思考
- pytorch深度学习_深度学习和PyTorch的推荐系统实施
- v$asm_diskgroup中state的说明
- 工厂模式-依赖倒置原则