⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampleapphw.c

📁 zigbee 开发板示例程序。模拟灯的遥控开关。
💻 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 + -