📄 clock.h
字号:
/******************************************************************************
Filename: clock.h
This file defines interface for clock related functions for the
CC243x family of RF system-on-chips from Texas Instruments.
******************************************************************************/
#ifndef _CLOCK_H
#define _CLOCK_H
/*******************************************************************************
* INCLUDES
*/
#include "hal_types.h"
// Include chip specific IO definition file
#if (chip == 2430)
#include "ioCC2430.h"
#endif
#if (chip == 2431)
#include "ioCC2431.h"
#endif
/*******************************************************************************
* CONSTANTS
*/
/* SEE DATA SHEET FOR DETAILS ABOUT THE FOLLOWING BIT MASKS */
// Parameters for cc2430ClockSetMainSrc
#define CLOCK_SRC_XOSC 0 // High speed Crystal Oscillator Control
#define CLOCK_SRC_HFRC 1 // Low power RC Oscillator
// Parameters for cc2430ClockSelect32k
#define CLOCK_32K_XTAL 0 // 32.768 Hz crystal oscillator
#define CLOCK_32K_RCOSC 1 // 32 kHz RC oscillator
// Bit masks to check CLKCON register
#define CLKCON_OSC32K_BM 0x80 // bit mask, for the slow 32k clock oscillator
#define CLKCON_OSC_BM 0x40 // bit mask, for the system clock oscillator
#define CLKCON_TICKSPD_BM 0x38 // bit mask, for timer ticks output setting
#define CLKCON_CLKSPD_BM 0x01 // bit maks, for the clock speed
#define TICKSPD_DIV_1 (0x00 << 3)
#define TICKSPD_DIV_2 (0x01 << 3)
#define TICKSPD_DIV_4 (0x02 << 3)
#define TICKSPD_DIV_8 (0x03 << 3)
#define TICKSPD_DIV_16 (0x04 << 3)
#define TICKSPD_DIV_32 (0x05 << 3)
#define TICKSPD_DIV_64 (0x06 << 3)
#define TICKSPD_DIV_128 (0x07 << 3)
// Bit masks to check SLEEP register
#define SLEEP_XOSC_STB_BM 0x40 // bit mask, check the stability of XOSC
#define SLEEP_HFRC_STB_BM 0x20 // bit maks, check the stability of the High-frequency RC oscillator
#define SLEEP_OSC_PD_BM 0x04 // bit mask, power down system clock oscillator(s)
/*******************************************************************************
* MACROS
*/
// Macro for checking status of the high frequency RC oscillator.
#define CC2430_IS_HFRC_STABLE(x) (SLEEP & SLEEP_HFRC_STB_BM)
// Macro for checking status of the crystal oscillator
#define CC2430_IS_XOSC_STABLE(x) (SLEEP & SLEEP_XOSC_STB_BM)
// Macro for getting the clock division factor
#define CC2430_GET_CLKSPD(x) (CLKCON & CLKCON_CLKSPD_BM)
// Macro for getting the timer tick division factor.
#define CC2430_GET_TICKSPD(x) ((CLKCON & CLKCON_TICKSPD_BM) >> 3)
// Macro for setting the clock division factor, x value from 0b000 to 0b111
#define CC2430_SET_TICKSPD(x) st( CLKCON = ((((x) << 3) & 0x38) \
| (CLKCON & 0xC7)); \
)
// Macro for setting the timer tick division factor, x value from 0b000 to 0b111
#define CC2430_SET_CLKSPD(x) st( CLKCON = (((x) & 0x07) \
| (CLKCON & 0xF8)); \
)
/*******************************************************************************
* FUNCTIONS
*/
void clockSetMainSrc(uint8 source);
void clockSelect32k(uint8 source);
#endif
/*------------------------------------------------------------------------------
0ooo
ooo0 ( )
( ) ) /
\ ( (_/
\_) Modify By:cuiqingwei [gary]
------------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -