📄 hal_key.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 08/Mar/2009 09:13:31 #
# 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-1.1.0\Component #
# s\hal\target\CC2430DB\hal_key.c #
# Command line = -f "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Proje #
# cts\zstack\Samples\GenericApp\CC2430DB\..\..\..\T #
# ools\CC2430DB\f8wCoord.cfg" (-DCPU32MHZ #
# -DFORCE_MAC_NEAR -DROOT=__near_func #
# -DMAC_CFG_APP_PENDING_QUEUE=TRUE #
# -DZDO_COORDINATOR -DRTR_NWK -DBLINK_LEDS #
# "-DCONST=const __code" -DGENERIC=__generic) -f #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\Tool #
# s\CC2430DB\f8wConfig.cfg" (-DSECURE=0 #
# -DDEFAULT_CHANLIST=0x00000800 #
# -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 "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\Source\" -I #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\ZMai #
# n\TI2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mt\" -I "C:\Texas Instruments\ZStack-1.4.2-1.1 #
# .0\Projects\zstack\Samples\GenericApp\CC2430DB\.. #
# \..\..\..\..\Components\hal\include\" -I #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\..\. #
# .\Components\hal\target\CC2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\osal\mcu\ccsoc\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\osal\include\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\af\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\nwk\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\sec\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\sys\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\stack\zdo\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\zmac\f8w\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\zmac\" -I "C:\Texas Instruments\ZStack-1.4.2-1 #
# .1.0\Projects\zstack\Samples\GenericApp\CC2430DB\ #
# ..\..\..\..\..\Components\services\saddr\" -I #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\..\..\..\..\. #
# .\Components\services\sdata\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\include\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\high_level\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\low_level\srf03\" -I "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\..\..\..\..\..\Componen #
# ts\mac\low_level\srf03\single_chip\" -D CC2430DB #
# -D COORDINATOR_BINDING -D xZTOOL_P2 -D xMT_TASK #
# -D xMT_ZDO_FUNC -D xLCD_SUPPORTED=DEBUG -lC #
# "C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects #
# \zstack\Samples\GenericApp\CC2430DB\CoordinatorDB #
# \List\" -lA "C:\Texas Instruments\ZStack-1.4.2-1. #
# 1.0\Projects\zstack\Samples\GenericApp\CC2430DB\C #
# oordinatorDB\List\" --diag_suppress Pe001,Pa010 #
# --diag_remark pe550 -o "C:\Texas #
# Instruments\ZStack-1.4.2-1.1.0\Projects\zstack\Sa #
# mples\GenericApp\CC2430DB\CoordinatorDB\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-1.1.0\Componen #
# ts\hal\target\CC2430DB\hal_key.c" #
# List file = C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects\ #
# zstack\Samples\GenericApp\CC2430DB\CoordinatorDB\ #
# List\hal_key.lst #
# Object file = C:\Texas Instruments\ZStack-1.4.2-1.1.0\Projects\ #
# zstack\Samples\GenericApp\CC2430DB\CoordinatorDB\ #
# Obj\hal_key.r51 #
# #
# #
##############################################################################
C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\hal\target\CC2430DB\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 0x8b
\ unsigned char volatile __sfr P2IFG
\ P2IFG:
\ 000000 DS 1
\ In segment SFR_AN, at 0x8c
\ unsigned char volatile __sfr PICTL
\ PICTL:
\ 000000 DS 1
\ In segment SFR_AN, at 0x9a
\ unsigned char volatile __sfr IEN2
\ IEN2:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf3
\ unsigned char volatile __sfr P0SEL
\ P0SEL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf5
\ unsigned char volatile __sfr P2SEL
\ P2SEL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf7
\ unsigned char volatile __sfr P2INP
\ P2INP:
\ 000000 DS 1
\ In segment SFR_AN, at 0xfd
\ unsigned char volatile __sfr P0DIR
\ P0DIR:
\ 000000 DS 1
\ In segment SFR_AN, at 0xff
\ unsigned char volatile __sfr P2DIR
\ P2DIR:
\ 000000 DS 1
61 #include "hal_defs.h"
62 #include "hal_types.h"
63 #include "hal_drivers.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -