📄 sampleapphw.c
字号:
/**************************************************************************************************
文 件 名:SampleAppHw.c
修改日期:2007-03-08
描 述:本文件包含使用DemoDB或DemoEB工程配置时需要用到的设置和函数。
**************************************************************************************************/
/*********************************************************************
* INCLUDES
*/
#include "ZComDef.h"
#include "hal_mcu.h"
#include "hal_defs.h"
#include "SampleAppHw.h"
/*********************************************************************
* MACROS
*/
/*********************************************************************
* CONSTANTS
*/
#if defined( CC2430DB )
/* 注意:在ARMSKY-CC2430DB开发板上的J1-8和J1-16
* J1-8 -> CC2430 P1.3
* J1-16 -> CC2430 P0.4
* 在ARMSKY-CC2430/CC2431EM模块上的P2-8和P2-13
* P2-8 -> CC2430 P1.3
* P2-13 -> CC2430 P0.4
*/
#define JUMPERIN_BIT 0x08
#define JUMPERIN_SEL P1SEL
#define JUMPERIN_DIR P1DIR
#define JUMPERIN_INP P1INP
#define JUMPERIN P1
#define JUMPEROUT_BIT 0x10
#define JUMPEROUT_SEL P0SEL
#define JUMPEROUT_DIR P0DIR
#define JUMPEROUT_INP P0INP
#define JUMPEROUT P0
#elif defined( CC2430EB )
/* 注意:在ARMSKY-CC2430EB评估板上的J3-21和J3-23
* J3-21 -> CC2430 P0.2
* J3-23 -> CC2430 P0.3
*/
#define JUMPERIN_BIT 0x04
#define JUMPERIN_SEL P0SEL
#define JUMPERIN_DIR P0DIR
#define JUMPERIN_INP P0INP
#define JUMPERIN P0
#define JUMPEROUT_BIT 0x08
#define JUMPEROUT_SEL P0SEL
#define JUMPEROUT_DIR P0DIR
#define JUMPEROUT_INP P0INP
#define JUMPEROUT P0
#if defined (HAL_UART) && (HAL_UART==TRUE)
#error The UART will not work with this configuration. The RX & TX pins are used.
#endif
#else
#error Unsupported board
#endif
/*********************************************************************
* TYPEDEFS
*/
/*********************************************************************
* GLOBAL VARIABLES
*/
/*********************************************************************
* EXTERNAL VARIABLES
*/
/*********************************************************************
* EXTERNAL FUNCTIONS
*/
/*********************************************************************
* LOCAL VARIABLES
*/
/*********************************************************************
* LOCAL FUNCTIONS
*/
/*********************************************************************
* 函数名称:readCoordinatorJumper
*
* 功 能:通过跳线选择设备作为协调器还是路由器
*
* 注 意:在ARMSKY-CC2430DB开发板上的J1-8和J1-16
* J1-8 -> CC2430 P1.3
* J1-16 -> CC2430 P0.4
* 在ARMSKY-CC2430/CC2431EM模块上的P2-8和P2-13
* P2-8 -> CC2430 P1.3
* P2-13 -> CC2430 P0.4
* 在ARMSKY-CC2430EB评估板上的J3-21和J3-23
* J3-21 -> CC2430 P0.2
* J3-23 -> CC2430 P0.3
*
*
* @return TRUE if the jumper is there, FALSE if not
*/
uint8 readCoordinatorJumper( void )
{
uint8 jumpered;
uint8 x, y;
uint8 result;
uint8 saveJumpInSEL;
uint8 saveJumpInDIR;
uint8 saveJumpInINP;
uint8 saveJumpOutSEL;
uint8 saveJumpOutDIR;
uint8 saveJumpOutINP;
jumpered = TRUE;
// Setup PORTs
saveJumpInSEL = JUMPERIN_SEL;
saveJumpInDIR = JUMPERIN_DIR;
saveJumpInINP = JUMPERIN_INP;
saveJumpOutSEL = P0SEL;
saveJumpOutDIR = P0DIR;
saveJumpOutINP = P0INP;
JUMPERIN_SEL &= ~(JUMPERIN_BIT);
JUMPERIN_DIR &= ~(JUMPERIN_BIT);
JUMPERIN_INP &= ~(JUMPERIN_BIT);
JUMPEROUT_SEL &= ~(JUMPEROUT_BIT);
JUMPEROUT_DIR |= JUMPEROUT_BIT;
JUMPEROUT_INP &= ~(JUMPERIN_BIT);
for ( x = 0; x < 8; x++ )
{
if ( x & 0x01 )
{
JUMPEROUT |= JUMPEROUT_BIT;
for ( y = 0; y < 8; y++ );
result = JUMPERIN & JUMPERIN_BIT;
if ( result != JUMPERIN_BIT )
jumpered = FALSE;
}
else
{
JUMPEROUT &= ~(JUMPEROUT_BIT);
for ( y = 0; y < 8; y++ );
result = JUMPERIN & JUMPERIN_BIT;
if ( result != 0x00 )
jumpered = FALSE;
}
}
// Restore directions
JUMPERIN_SEL = saveJumpInSEL;
JUMPERIN_DIR = saveJumpInDIR;
JUMPERIN_INP = saveJumpInINP;
JUMPEROUT_SEL = saveJumpOutSEL;
JUMPEROUT_DIR = saveJumpOutDIR;
JUMPEROUT_INP = saveJumpOutINP;
return ( jumpered );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -