📄 hal_adc_sample_single.lst
字号:
##############################################################################
# #
# IAR 8051 C/C++ Compiler V7.20H/W32 16/Jan/2007 15:30:23 #
# 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 = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\lib\hal\CC2430\hal_adc_sample_single.c #
# Command line = -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\SRC\LIB\" -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.05 Evaluation version\8051\INC\CLIB\" -I #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\..\..\..\include\ -I #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\ #
# -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
# ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
# 0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
# C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D #
# CC2430EB -D USE_LED -lCN #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\ -lA #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\ -o #
# E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\ -e -s9 --debug #
# --core=plain --dptr=16,1 --data_model=large #
# --code_model=banked --calling_convention=xdata_re #
# entrant --place_constants=data --nr_virtual_regs #
# 8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
# gine\lib\hal\CC2430\hal_adc_sample_single.c #
# List file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\List\hal_adc_sample_ #
# single.lst #
# Object file = E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
# ne\Test\mac\mac_loc\CC2430EB\Obj\hal_adc_sample_s #
# ingle.r51 #
# #
# #
##############################################################################
E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\hal\CC2430\hal_adc_sample_single.c
1 #include "mac_headers.h"
\ In segment SFR_AN, at 0xb4
\ unsigned char volatile __sfr ADCCON1
\ ADCCON1:
\ 000000 DS 1
\ In segment SFR_AN, at 0xb6
\ unsigned char volatile __sfr ADCCON3
\ ADCCON3:
\ 000000 DS 1
\ In segment SFR_AN, at 0xba
\ unsigned char volatile __sfr ADCL
\ ADCL:
\ 000000 DS 1
\ In segment SFR_AN, at 0xbb
\ unsigned char volatile __sfr ADCH
\ ADCH:
\ 000000 DS 1
\ In segment SFR_AN, at 0xf2
\ unsigned char volatile __sfr ADCCFG
\ ADCCFG:
\ 000000 DS 1
2
\ In segment BANKED_CODE, align 1, keep-with-next
3 INT16 halAdcSampleSingle(BYTE reference, BYTE resolution, UINT8 input) {
\ halAdcSampleSingle:
\ 000000 74F4 MOV A,#-0xc
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 12
\ 000005 ; Auto size: 1
\ 000005 74FF MOV A,#-0x1
\ 000007 12.... LCALL ?ALLOC_XSTACK8
4 BYTE volatile temp;
5 INT16 value;
6
7 // reading out any old conversion value
8 temp = ADCH;
\ 00000A E5BB MOV A,0xbb
\ 00000C 85..82 MOV DPL,?XSP + 0
\ 00000F 85..83 MOV DPH,?XSP + 1
\ 000012 F0 MOVX @DPTR,A
9 temp = ADCL;
\ 000013 E5BA MOV A,0xba
\ 000015 F0 MOVX @DPTR,A
\ 000016 75..01 MOV ?V0 + 0,#0x1
\ 000019 75..00 MOV ?V0 + 1,#0x0
\ 00001C EB MOV A,R3
\ 00001D 78.. MOV R0,#?V0 + 0
\ 00001F 12.... LCALL ?S_SHL
\ 000022 AC.. MOV R4,?V0 + 0
\ 000024 EC MOV A,R4
\ 000025 45F2 ORL A,0xf2
\ 000027 F5F2 MOV 0xf2,A
10
11
12 ADC_ENABLE_CHANNEL(input);
13 ADC_STOP();
\ 000029 43B430 ORL 0xb4,#0x30
\ 00002C E5B4 MOV A,0xb4
14
15 ADC_SINGLE_CONVERSION(reference | resolution | input);
\ 00002E EA MOV A,R2
\ 00002F 49 ORL A,R1
\ 000030 4B ORL A,R3
\ 000031 F5B6 MOV 0xb6,A
16
17 while (!ADC_SAMPLE_READY());
\ ??halAdcSampleSingle_0:
\ 000033 E5B4 MOV A,0xb4
\ 000035 A2E7 MOV C,0xE0 /* A */.7
\ 000037 50FA JNC ??halAdcSampleSingle_0
18
19 ADC_DISABLE_CHANNEL(input);
\ 000039 EC MOV A,R4
\ 00003A F4 CPL A
\ 00003B 55F2 ANL A,0xf2
\ 00003D F5F2 MOV 0xf2,A
20
21 value = (((INT16)ADCH) << 8);
\ 00003F E5BB MOV A,0xbb
\ 000041 F5.. MOV ?V0 + 1,A
22 value |= ADCL;
\ 000043 E5BA MOV A,0xba
\ 000045 F5.. MOV ?V0 + 0,A
23
24 resolution >>= 3;
25 return value >> (8 - resolution);
\ 000047 EA MOV A,R2
\ 000048 13 RRC A
\ 000049 13 RRC A
\ 00004A 13 RRC A
\ 00004B 541F ANL A,#0x1f
\ 00004D FA MOV R2,A
\ 00004E 7408 MOV A,#0x8
\ 000050 C3 CLR C
\ 000051 9A SUBB A,R2
\ 000052 78.. MOV R0,#?V0 + 0
\ 000054 12.... LCALL ?SS_SHR
\ 000057 AA.. MOV R2,?V0 + 0
\ 000059 AB.. MOV R3,?V0 + 1
\ 00005B 7401 MOV A,#0x1
\ 00005D 12.... LCALL ?DEALLOC_XSTACK8
\ 000060 7F04 MOV R7,#0x4
\ 000062 02.... LJMP ?BANKED_LEAVE_XDATA
26 }
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
halAdcSampleSingle 1 0 13
Segment part sizes:
Function/Label Bytes
-------------- -----
ADCCON1 1
ADCCON3 1
ADCL 1
ADCH 1
ADCCFG 1
halAdcSampleSingle 101
101 bytes in segment BANKED_CODE
5 bytes in segment SFR_AN
101 bytes of CODE memory
0 bytes of DATA memory (+ 5 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -