📄 hal_lcd.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 18/Sep/2008 17:36:49 #
# 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\CC2430DB\hal_lcd.c #
# Command line = -f "C:\Texas Instruments\ZStack-1.4.2\Projects\zs #
# tack\Samples\SampleApp\CC2430DB\..\..\..\Tools\CC #
# 2430DB\f8wRouter.cfg" (-DCPU32MHZ #
# -DFORCE_MAC_NEAR -DROOT=__near_func #
# -DMAC_CFG_APP_PENDING_QUEUE=TRUE -DRTR_NWK #
# -DBLINK_LEDS "-DCONST=const __code" #
# -DGENERIC=__generic) -f "C:\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 "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\Source\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\ZMain\TI2430DB\" -I #
# "C:\Texas Instruments\ZStack-1.4.2\Projects\zstac #
# k\Samples\SampleApp\CC2430DB\..\..\..\..\..\Compo #
# nents\mt\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\hal\ #
# include\" -I "C:\Texas Instruments\ZStack-1.4.2\P #
# rojects\zstack\Samples\SampleApp\CC2430DB\..\..\. #
# .\..\..\Components\hal\target\CC2430DB\" -I #
# "C:\Texas Instruments\ZStack-1.4.2\Projects\zstac #
# k\Samples\SampleApp\CC2430DB\..\..\..\..\..\Compo #
# nents\osal\mcu\ccsoc\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\osal #
# \include\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\af\" -I "C:\Texas Instruments\ZStack-1.4.2\Proj #
# ects\zstack\Samples\SampleApp\CC2430DB\..\..\..\. #
# .\..\Components\stack\nwk\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\sec\" -I "C:\Texas Instruments\ZStack-1.4.2\Pro #
# jects\zstack\Samples\SampleApp\CC2430DB\..\..\..\ #
# ..\..\Components\stack\sys\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\stac #
# k\zdo\" -I "C:\Texas Instruments\ZStack-1.4.2\Pro #
# jects\zstack\Samples\SampleApp\CC2430DB\..\..\..\ #
# ..\..\Components\zmac\f8w\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\zmac #
# \" -I "C:\Texas Instruments\ZStack-1.4.2\Projects #
# \zstack\Samples\SampleApp\CC2430DB\..\..\..\..\.. #
# \Components\services\saddr\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\serv #
# ices\sdata\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# include\" -I "C:\Texas Instruments\ZStack-1.4.2\P #
# rojects\zstack\Samples\SampleApp\CC2430DB\..\..\. #
# .\..\..\Components\mac\high_level\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# low_level\srf03\" -I "C:\Texas #
# Instruments\ZStack-1.4.2\Projects\zstack\Samples\ #
# SampleApp\CC2430DB\..\..\..\..\..\Components\mac\ #
# low_level\srf03\single_chip\" -D CC2430DB -D #
# SOFT_START -D ZAPP_P1 -D HOLD_AUTO_START -lC #
# "C:\Texas Instruments\ZStack-1.4.2\Projects\zstac #
# k\Samples\SampleApp\CC2430DB\RouterDB\List\" -lA #
# "C:\Texas Instruments\ZStack-1.4.2\Projects\zstac #
# k\Samples\SampleApp\CC2430DB\RouterDB\List\" #
# --diag_suppress Pe001,Pa010 --diag_remark pe550 #
# -o "C:\Texas Instruments\ZStack-1.4.2\Projects\zs #
# tack\Samples\SampleApp\CC2430DB\RouterDB\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\CC2430DB\hal_lcd.c" #
# List file = C:\Texas Instruments\ZStack-1.4.2\Projects\zstack #
# \Samples\SampleApp\CC2430DB\RouterDB\List\hal_lcd #
# .lst #
# Object file = C:\Texas Instruments\ZStack-1.4.2\Projects\zstack #
# \Samples\SampleApp\CC2430DB\RouterDB\Obj\hal_lcd. #
# r51 #
# #
# #
##############################################################################
C:\Texas Instruments\ZStack-1.4.2\Components\hal\target\CC2430DB\hal_lcd.c
1 /**************************************************************************************************
2 Filename: hal_lcd.c
3 Revised: $Date: 2007-05-29 22:13:37 -0700 (Tue, 29 May 2007) $
4 Revision: $Revision: 14456 $
5
6 Description:
7
8 This file contains the interface to the HAL LCD Service. - CC2430
9
10 Notes:
11
12 Copyright (c) 2006 by Texas Instruments, Inc.
13 All Rights Reserved. Permission to use, reproduce, copy, prepare
14 derivative works, modify, distribute, perform, display or sell this
15 software and/or its documentation for any purpose is prohibited
16 without the express written consent of Texas Instruments, Inc.
17 **************************************************************************************************/
18
19
20 /**************************************************************************************************
21 * INCLUDES
22 **************************************************************************************************/
23 #include "hal_types.h"
24 #include "hal_lcd.h"
25 #include "OSAL.h"
26 #include "OnBoard.h"
27
28 #ifdef ZTOOL_PORT
29 #include "DebugTrace.h"
30 #endif
31
32 /**************************************************************************************************
33 * CONSTANTS
34 **************************************************************************************************/
35 #define LCD_MAX_BUF 25
36
37 // General I/O definitions
38 #define IO_GIO 0 // General purpose I/O
39 #define IO_PER 1 // Peripheral function
40 #define IO_IN 0 // Input pin
41 #define IO_OUT 1 // Output pin
42 #define IO_PUD 0 // Pullup/pulldn input
43 #define IO_TRI 1 // Tri-state input
44 #define IO_PUP 0 // Pull-up input pin
45 #define IO_PDN 1 // Pull-down input pin
46
47 // LCD port/bit definitions
48 #define LCD_CLK_PORT 2
49 #define LCD_CLK_PIN 0 // P2_0
50 #define LCD_DATA_PORT 1
51 #define LCD_DATA_PIN 2 // P1_2
52
53 /* LCD Line Address */
54 #define LCD_LINE1_ADDR 0x80
55 #define LCD_LINE2_ADDR 0xC0
56
57 // LCD device definitions
58 #define LCD_ADDR 0x76 // SM-Bus address of the LCD controller
59 #define CH1_ADDR 0x08
60 #define LCD_RS_0 0x00 // RS = 0 => selects instruction register for write/busy flag
61 #define LCD_RS_1 0x40 // RS = 1 => selects the data register for both read and write
62
63 /**************************************************************************************************
64 * MACROS
65 **************************************************************************************************/
66
67 // Removed to allow PNAME macro to expand -
68 // Problem: in ioCC2430.h, #define P PSW_bit.P
69 #undef P
70
71 /* I/O PORT CONFIGURATION */
72 #define CAT1(x,y) x##y // Concatenates 2 strings
73 #define CAT2(x,y) CAT1(x,y) // Forces evaluation of CAT1
74
75 // LCD port I/O defintions
76 // Builds I/O port name: PNAME(1,INP) ==> P1INP
77 #define PNAME(y,z) CAT2(P,CAT2(y,z))
78 // Builds I/O bit name: BNAME(1,2) ==> P1_2
79 #define BNAME(port,pin) CAT2(CAT2(P,port),CAT2(_,pin))
80
81 #define LCD_SCL BNAME(LCD_CLK_PORT, LCD_CLK_PIN)
82 #define LCD_SDA BNAME(LCD_DATA_PORT, LCD_DATA_PIN)
83
84 // LCD port I/O defintions
85 #define LCD_SCL BNAME(LCD_CLK_PORT, LCD_CLK_PIN)
86 #define LCD_SDA BNAME(LCD_DATA_PORT, LCD_DATA_PIN)
87
88 #define IO_DIR_PORT_PIN(port, pin, dir) \
89 {\
90 if ( dir == IO_OUT ) \
91 PNAME(port,DIR) |= (1<<(pin)); \
92 else \
93 PNAME(port,DIR) &= ~(1<<(pin)); \
94 }
95
96 #define LCD_DATA_HIGH()\
97 { \
98 IO_DIR_PORT_PIN(LCD_DATA_PORT, LCD_DATA_PIN, IO_IN); \
99 }
100
101 #define LCD_DATA_LOW() \
102 { \
103 IO_DIR_PORT_PIN(LCD_DATA_PORT, LCD_DATA_PIN, IO_OUT); \
104 LCD_SDA = 0;\
105 }
106
107 #define IO_FUNC_PORT_PIN(port, pin, func) \
108 { \
109 if( port < 2 ) \
110 { \
111 if ( func == IO_PER ) \
112 PNAME(port,SEL) |= (1<<(pin)); \
113 else \
114 PNAME(port,SEL) &= ~(1<<(pin)); \
115 } \
116 else \
117 { \
118 if ( func == IO_PER ) \
119 P2SEL |= (1<<(pin>>1)); \
120 else \
121 P2SEL &= ~(1<<(pin>>1)); \
122 } \
123 }
124
125 #define IO_IMODE_PORT_PIN(port, pin, mode) \
126 { \
127 if ( mode == IO_TRI ) \
128 PNAME(port,INP) |= (1<<(pin)); \
129 else \
130 PNAME(port,INP) &= ~(1<<(pin)); \
131 }
132
133 #define IO_PUD_PORT(port, dir) \
134 { \
135 if ( dir == IO_PDN ) \
136 P2INP |= (1<<(port+5)); \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -