hal_key.lst
来自「TI的基于ZIGBEE2006的协议栈」· LST 代码 · 共 1,175 行 · 第 1/5 页
LST
1,175 行
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 04/Dec/2008 16:09:09 #
# Copyright 2004-2006 IAR Systems. All rights reserved. #
# #
# Core = plain #
# Code model = banked #
# Data model = large #
# Calling convention = xdata reentrant #
# Constant location = data #
# Dptr setup = 1,16 #
# Source file = C:\Texas Instruments\ZStack-1.4.2\Components\hal\ #
# target\CC2430EB\hal_key.c #
# Command line = -f "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\Tools\CC2430DB\f8wCoo #
# rd.cfg" (-DCPU32MHZ -DFORCE_MAC_NEAR #
# -DROOT=__near_func -DMAC_CFG_APP_PENDING_QUEUE=TR #
# UE -DZDO_COORDINATOR -DRTR_NWK -DBLINK_LEDS #
# "-DCONST=const __code" -DGENERIC=__generic) -f #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\Tools\CC2430DB\f8wCon #
# fig.cfg" (-DSECURE=0 -DDEFAULT_CHANLIST=0x0000080 #
# 0 -DZDAPP_CONFIG_PAN_ID=0xFFFF #
# -DNWK_START_DELAY=100 -DEXTENDED_JOINING_RANDOM_M #
# ASK=0x007F -DBEACON_REQUEST_DELAY=100 #
# -DBEACON_REQ_DELAY_MASK=0x00FF #
# -DROUTE_EXPIRY_TIME=30 -DAPSC_ACK_WAIT_DURATION_P #
# OLLED=3000 -DNWK_INDIRECT_MSG_TIMEOUT=7 #
# -DMAX_RREQ_ENTRIES=10 -DAPSC_MAX_FRAME_RETRIES=3 #
# -DNWK_MAX_DATA_RETRIES=2 #
# -DMAX_POLL_FAILURE_RETRIES=2 -DMAX_BCAST=9 #
# -DAPS_MAX_GROUPS=16 -DMAX_RTG_ENTRIES=20 #
# -DNWK_MAX_BINDING_ENTRIES=10 #
# -DMAX_BINDING_CLUSTER_IDS=5 #
# "-DDEFAULT_KEY={0x01, 0x03, 0x05, 0x07, 0x09, #
# 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, #
# 0x0A, 0x0C, 0x0D}" -DRFD_RCVC_ALWAYS_ON=FALSE #
# -DPOLL_RATE=1000 -DQUEUED_POLL_RATE=100 #
# -DRESPONSE_POLL_RATE=100 -DREJOIN_POLL_RATE=440 #
# -DTOP_BOOT_PAGES=0) -I "C:\Program Files\IAR #
# Systems\Embedded Workbench 4.05 Evaluation #
# version\8051\inc\" -I "C:\Program Files\IAR #
# Systems\Embedded Workbench 4.05 Evaluation #
# version\8051\inc\clib\" -I #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\" -I #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\Source\" -I #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\ZMain\TI2430DB\" -I #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mt\" #
# -I "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\hal\ #
# include\" -I "D:\#ZIGBEE开发之路\20081030101956Te #
# xas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\hal\ #
# target\CC2430EB\" -I "D:\#ZIGBEE开发之路\20081030 #
# 101956Texas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\osal #
# \mcu\ccsoc\" -I "D:\#ZIGBEE开发之路\2008103010195 #
# 6Texas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\osal #
# \include\" -I "D:\#ZIGBEE开发之路\20081030101956T #
# exas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\af\" -I "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\nwk\" -I "D:\#ZIGBEE开发之路\20081030101956Texa #
# s Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\sec\" -I "D:\#ZIGBEE开发之路\20081030101956Texa #
# s Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\sys\" -I "D:\#ZIGBEE开发之路\20081030101956Texa #
# s Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\zdo\" -I "D:\#ZIGBEE开发之路\20081030101956Texa #
# s Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\zmac #
# \f8w\" -I "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\zmac #
# \" -I "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\serv #
# ices\saddr\" -I "D:\#ZIGBEE开发之路\2008103010195 #
# 6Texas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\serv #
# ices\sdata\" -I "D:\#ZIGBEE开发之路\2008103010195 #
# 6Texas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# include\" -I "D:\#ZIGBEE开发之路\20081030101956Te #
# xas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# high_level\" -I "D:\#ZIGBEE开发之路\2008103010195 #
# 6Texas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# low_level\srf03\" -I "D:\#ZIGBEE开发之路\20081030 #
# 101956Texas Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# low_level\srf03\single_chip\" -D CC2430EB -D #
# ZTOOL_P1 -D MT_TASK -lC #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\CoordinatorEB\List\" -lA #
# "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\CoordinatorEB\List\" #
# --diag_suppress Pe001,Pa010 --diag_remark pe550 #
# -o "D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\CoordinatorEB\Obj\" -e #
# --require_prototypes -z9 --no_code_motion #
# --debug --core=plain --dptr=16,1 #
# --data_model=large --code_model=banked #
# --calling_convention=xdata_reentrant #
# --place_constants=data --nr_virtual_regs 8 #
# "C:\Texas Instruments\ZStack-1.4.2\Components\hal #
# \target\CC2430EB\hal_key.c" #
# List file = D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\CoordinatorEB\List\hal_key.lst #
# Object file = D:\#ZIGBEE开发之路\20081030101956Texas #
# Instruments\Texas Instruments\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\CoordinatorEB\Obj\hal_key.r51 #
# #
# #
##############################################################################
C:\Texas Instruments\ZStack-1.4.2\Components\hal\target\CC2430EB\hal_key.c
1 /**************************************************************************************************
2 Filename: hal_key.c
3 Revised: $Date: 2007-03-29 16:44:28 -0700 (Thu, 29 Mar 2007) $
4 Revision: $Revision: 13896 $
5
6 Description:
7
8 This file contains the interface to the HAL KEY Service.
9
10 Copyright (c) 2006 by Texas Instruments, Inc.
11 All Rights Reserved. Permission to use, reproduce, copy, prepare
12 derivative works, modify, distribute, perform, display or sell this
13 software and/or its documentation for any purpose is prohibited
14 without the express written consent of Texas Instruments, Inc.
15 **************************************************************************************************/
16 /*********************************************************************
17 NOTE: If polling is used, the hal_driver task schedules the KeyRead()
18 to occur every 100ms. This should be long enough to naturally
19 debounce the keys. The KeyRead() function remembers the key
20 state of the previous poll and will only return a non-zero
21 value if the key state changes.
22
23 NOTE: If interrupts are used, the KeyRead() function is scheduled
24 25ms after the interrupt occurs by the ISR. This delay is used
25 for key debouncing. The ISR disables any further Key interrupt
26 until KeyRead() is executed. KeyRead() will re-enable Key
27 interrupts after executing. Unlike polling, when interrupts
28 are enabled, the previous key state is not remembered. This
29 means that KeyRead() will return the current state of the keys
30 (not a change in state of the keys).
31
32 NOTE: If interrupts are used, the KeyRead() fucntion is scheduled by
33 the ISR. Therefore, the joystick movements will only be detected
34 during a pushbutton interrupt caused by S1 or the center joystick
35 pushbutton.
36
37 NOTE: When a switch like S1 is pushed, the S1 signal goes from a normally
38 high state to a low state. This transition is typically clean. The
39 duration of the low state is around 200ms. When the signal returns
40 to the high state, there is a high likelihood of signal bounce, which
41 causes a unwanted interrupts. Normally, we would set the interrupt
42 edge to falling edge to generate an interrupt when S1 is pushed, but
43 because of the signal bounce, it is better to set the edge to rising
44 edge to generate an interrupt when S1 is released. The debounce logic
45 can then filter out the signal bounce. The result is that we typically
46 get only 1 interrupt per button push. This mechanism is not totally
47 foolproof because occasionally, signal bound occurs during the falling
48 edge as well. A similar mechanism is used to handle the joystick
49 pushbutton on the DB. For the EB, we do not have independent control
50 of the interrupt edge for the S1 and center joystick pushbutton. As
51 a result, only one or the other pushbuttons work reasonably well with
52 interrupts. The default is the make the S1 switch on the EB work more
53 reliably.
54
55 *********************************************************************/
56
57 /**************************************************************************************************
58 * INCLUDES
59 **************************************************************************************************/
60 #include "hal_mcu.h"
\ In segment SFR_AN, at 0x89
\ unsigned char volatile __sfr P0IFG
\ P0IFG:
\ 000000 DS 1
\ In segment SFR_AN, at 0x8c
\ unsigned char volatile __sfr PICTL
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?