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

📄 node07.ns

📁 高分辨率A/D转换器AD7705的单片机控制
💻 NS
📖 第 1 页 / 共 5 页
字号:
; LONNCC32 - Echelon (R) Neuron (R) C Compiler
; Copyright (c) 1989 - 2003  Echelon Corp
; All Rights Reserved.
; Assembly code from LONNCC32 Version 4.01.64
; Code generated from 'NODE07.NC' on Thu Dec 13 13:34:38 2007

	SUBHEAD	Generated from the input file: D:\Source\mk\node07\node07.nc

	RADIX	HEX

	SEG	EECODE_SPCL_1
	ORG	0F000
NBMTS	EQU	000
NFBS	EQU	000
NNVS	EQU	029
NALIAS	EQU	005
PROTECT	EQU	00
RUNUNCNFGED	EQU	00

NEURONID
	RES	8
DIRECTORY	EXPORT
	DATA.B	PTR TEVT-3*NNVS
PROTECTBIT	EXPORT
	DATA.B	PROTECT+RUNUNCNFGED+NNVS,PTR SIDATA
PROGID	EXPORT
	DATA.B	090,000,000,000,000,000,000,003
MODETABLE	EXPORT
	DATA.B	043
	DATA.B	0F0,02F
	DATA.B	088,0AB
BUFCOUNTS	EXPORT
	DATA.B	033,033,033
EENEARBYTES	EXPORT
	DATA.B	000
	DATA.B	000,000
	DATA.B	0BF,019,0BF
	DATA.B	004 | _tx_by_addr            
TX_CTRL	EQU	*-1
	EXPORT	TX_CTRL

	SEG	EECODE_SPCL_2
	ORG
RODS2
	DATA.B	PROTECT+00+NALIAS,000
	DATA.B	7F,000,000       

	SEG	EECODE_SPCL_3
	ORG
LOCATION
	RES	8
COMM
	RES	10
MSG
	RES	1
DOMAIN	EXPORT
	RES	01E
ADDR
	RES	04B
TNVCNFG
	RES	3*NNVS
TNVALIASES
	RES	4*NALIAS
CONFIGCHECKSUM
	RES	1
	PAGE
; Boilerplate file for compiler-generated assembly output
; Copyright (c) 1990 - 2003 Echelon Corporation.
; All Rights Reserved.
; Date last modified: 18-Mar-2003

; List of imported symbols - Library functions
	IMPORT	delay,msec_delay,random,reverse,scaled_delay
; List of imported symbols - Misc builtin function support
	IMPORT	_bcd2bin,_bin2bcd,_fblock_director,_sleep
; List of imported symbols - Compiler helper functions
	IMPORT	_abs8,_abs16,_add16,_add_8_16f,_adds_8_16,_and16,_alloc
	IMPORT	_bitf_sign_ext,_dealloc,_dec16,_div8,_div8s,_div16,_div16s
	IMPORT	_drop_n,_drop_n_preserve_1,_drop_n_preserve_2,_drop_n_return_1
	IMPORT	_drop_n_return_2,_eeprom_write,_eeprom_write_long
	IMPORT	_eeprom_far_write,_eeprom_far_write_long,_equal8,_equal16
	IMPORT	_gequ8,_gequ8s,_gequ16,_gequ16s,_get_sp,_inc16,_ldP0_fetchl
	IMPORT	_less8,_less8s,_less16,_less16s,_log8,_log16,_lognot8,_lognot16
	IMPORT	_l_shift8,_l_shift8s,_l_shift16,_l_shift16s,_l_shift8_3
	IMPORT	_l_shift8_4,_l_shift8_5,_l_shift8_6,_l_shift8_7,_lshift8_add16
	IMPORT	_lshift16_add16,_lshift8by1_add16,_lshift8by2_add16
	IMPORT	_max8,_max8s,_max16,_max16s,_min8,_min8s,_min16,_min16s
	IMPORT	_memcpy,_memcpy8,_memcpy16,_memset,_memset8,_memset16
	IMPORT	_minus16s,_mod8,_mod8s,_mod16,_mod16s,_mul8,_mul16,_mul_8_16
	IMPORT	_muls_8_16,_mul8l,_mul8ls,_not16,_or16
	IMPORT	_pop,_pop1,_popd,_popd1,_push,_push1,_pushd,_pushd1
	IMPORT	_r_shift8,_r_shift8s,_r_shift16,_r_shift16s
	IMPORT	_r_shift8_3,_r_shift8_4,_r_shift8_5,_r_shift8_6,_r_shift8_7
	IMPORT	_register_call,_sign_extend16,_sub16,_xor16
	PAGE
; List of imported symbols - I/O functions
	IMPORT	_bit_input,_bit_output_lo1,_bit_output_lo2,_bit_output_hi
	IMPORT	_bit_input_ext,_bit_output_ext,_bitshift_input
	IMPORT	_bitshift_output,burst_sequence_output,_byte_input,_byte_output
	IMPORT	_dualslope_input,_dualslope_start
	IMPORT	_edgelog_input,edgelog_input_single,edgelog_setup_single
	IMPORT	_frequency_output,_ir_input,_i2c_read,_i2c_write
	IMPORT	_i2c_read0,_i2c_write0,_i2c_read_opt0,_i2c_write_opt0
	IMPORT	_i2c_read8,_i2c_write8,_i2c_read_opt8,_i2c_write_opt8
	IMPORT	_leveldetect_input
	IMPORT	_magcard_input,_magt1_input,_magt2_input,magx_input
	IMPORT	_muxbus_read,_muxbus_reread,_muxbus_write,_muxbus_rewrite
	IMPORT	_neurowire_master,_neurowire_slave,_neurowire_inv_master
	IMPORT	_neurowire_inv_slave,_nibble_input,_nibble_output
	IMPORT	_oneshot_output,_parallel_input,_parallel_input_ready
	IMPORT	_parallel_output,_parallel_output_ready,_parallel_output_request
	IMPORT	_period_input,_pulsecount_output,_pulsewidth_output
	IMPORT	_quadrature_input,_io_sci_baud,_io_sci_init,_io_sci_init2
	IMPORT	_io_sci_get_error,_io_sci_set_buffer_in,_io_sci_set_buffer_out
	IMPORT	_io_scispi_abort,_io_scispi_input_ready,_io_scispi_output_ready
	IMPORT	_io_spi_clock,_io_spi_init,_io_spi_init2,_io_spi_set_buffer
	IMPORT	_serial_input,_serial_output,_totalize_input
	IMPORT	_touch_bit,_touch_byte,_touch_first,_touch_next,_touch_read
	IMPORT	_touch_reset,_touch_write,ext_touch_bit,ext_touch_byte
	IMPORT	ext_touch_first,ext_touch_next,ext_touch_read,ext_touch_reset
	IMPORT	ext_touch_write,_triac_level_output,_triac_pulse_output
	IMPORT	_wiegand_input
; List of imported symbols - I/O control functions
	IMPORT	io_edgelog_preload
	IMPORT	_init_baud,_init_timer_counter1,_init_timer_counter2
	IMPORT	_io_abort_clear,_io_change_init,_io_direction_lo
	IMPORT	_io_direction_hi,io_idis,io_iena,_io_input_value
	IMPORT	_io_set_clock,_io_set_clock_x2,_select_input_fn
; List of imported symbols - Messaging support
	IMPORT	_bound_mt,_msg_alloc,_msg_alloc_priority,_msg_cancel,_msg_free
	IMPORT	_msg_receive,_msg_send,_msg_auth_get,_msg_code_get
	IMPORT	_msg_duplicate_get,_msg_rcvtx_get
	IMPORT	_msg_data_blockget,_msg_data_get,_msg_len_get,_msg_service_get
	IMPORT	_msg_auth_set,_msg_code_set,_msg_data_blockset,_msg_data_set
	IMPORT	_msg_priority_set,_msg_service_set,_msg_tag_set,msg_tag_index
	IMPORT	_resp_alloc,_resp_cancel,_resp_free,_resp_receive,_resp_send
	IMPORT	_resp_code_set,_resp_data_blockset,_resp_data_set
; List of imported symbols - Network Variable support
	IMPORT	_bound_nv,_nv_array_poll,_nv_array_index
	IMPORT	_nv_array_update_request,nv_in_addr,nv_in_index,_nv_poll
	IMPORT	_nv_poll_all,_nv_update,_nv_update_int,_nv_update_int_offset
	IMPORT	_nv_update_long,_nv_update_long_offset
	IMPORT	_nv_update_request,_nv_update_request_all
	PAGE
; List of imported symbols - Timer support
	IMPORT	_timer_get,_timer_off
	IMPORT	_timer_mset,_timer_mset_repeat,_timer_sset,_timer_sset_repeat
; List of imported symbols - Event support
	IMPORT	_io_changes,_io_changes_to,_io_changes_by,_io_update_occurs
	IMPORT	_flush_completes,_msg_arrives,_msg_code_arrives,_msg_completes
	IMPORT	_msg_fails,_msg_succeeds,_nv_array_update_completes
	IMPORT	_nv_array_update_fails,_nv_array_update_occurs
	IMPORT	_nv_array_update_succeeds,_nv_update_completes,_nv_update_fails
	IMPORT	_nv_update_succeeds,_nv_update_occurs,_offline,_online
	IMPORT	_resp_arrives,_timer_expires,_timer_expires_any,_wink
; List of imported symbols - Special symbols support
	IMPORT	_arb_presf,_idem_dup,_new_binding_constraints,_query_stats
	IMPORT	_tx_by_addr,init_phase_detection,get_current_nv_length
; List of imported symbols - Debug kernel entries
	IMPORT	_larva_entry,_larva_entry_exec,_larva_entry_notify
	IMPORT	_larva_entry_min,_larva_reset

; End of boilerplate file
	PAGE


	IMPORT	%cp_template_file

	IMPORT	%cp_modifiable_value_file

	IMPORT	%cp_readonly_value_file

	IMPORT	%cp_template_file_len_fake

	IMPORT	%cp_modifiable_value_file_len_fake

	IMPORT	%cp_readonly_value_file_len_fake

	IMPORT	%fblock_index_map
	IMPORT	set_nv_length
	IMPORT	get_nv_length
	IMPORT	get_nv_type
	IMPORT	%get_nv_length_override

	IMPORT	activate_service_led
	IMPORT	application_restart
	IMPORT	error_log
	IMPORT	flush
	IMPORT	flush_cancel
	IMPORT	flush_wait
	IMPORT	go_offline
	IMPORT	go_unconfigured
	IMPORT	go_configured
	IMPORT	node_reset
	IMPORT	offline_confirm
	IMPORT	post_events
	IMPORT	refresh_memory
	IMPORT	service_pin_msg_send
	IMPORT	service_pin_state
	IMPORT	set_eeprom_lock
	IMPORT	timers_off
	IMPORT	watchdog_update
	IMPORT	watchdog_update_old
	IMPORT	_msg_out_addr_ptr
	IMPORT	_msg_in_addr_ptr
	IMPORT	_resp_in_addr_ptr

	IMPORT	config_data

	IMPORT	read_only_data

	IMPORT	read_only_data_2
	IMPORT	access_address
	IMPORT	access_domain
	IMPORT	access_nv
	IMPORT	access_alias
	IMPORT	update_address
	IMPORT	update_domain
	IMPORT	update_clone_domain
	IMPORT	update_nv
	IMPORT	update_alias
	IMPORT	update_config_data
	IMPORT	update_program_id

	SEG	RAMNEAR
	ORG
%SDI	APEXP
	RES	1

	SEG	RAMNEAR
	ORG
%dq	APEXP
	RES	6

	SEG	RAMNEAR
	ORG
%nviTime	APEXP
	RES	6

	SEG	RAMNEAR
	ORG
%TEMP1	APEXP
	RES	1

	SEG	CODE
	ORG
%START	APEXP ; Function body
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#0
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%SDI)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	RET

	SEG	CODE
	ORG
%WACK	APEXP ; Function body
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#0
	POP	[1][@NEAR(%SDI)]
	PUSH	[1][@NEAR(%SDI)]
	ADD	#0CE
	DROP	TOS
	BRC	%WACK+1F
	PUSHS	#4
	CALL	_bit_input
	SBRZ	%WACK+1F
	CALL	watchdog_update
	PUSH	[1][@NEAR(%SDI)]
	INC
	POP	[1][@NEAR(%SDI)]
	BR	%WACK+0B
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	RET

	SEG	CODE
	ORG
%ACK	APEXP ; Function body
	PUSHS	#0
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	RET

	SEG	CODE
	ORG
%NACK	APEXP ; Function body
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	RET

	SEG	CODE
	ORG
%STOP	APEXP ; Function body
	PUSHS	#0
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	RET

	SEG	CODE
	ORG
%x12init	APEXP ; Function body
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	RET

	SEG	CODE
	ORG
%OUTBYT_	APEXP ; Function body
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#80
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	CALL	watchdog_update
	RET

	SEG	RAMNEAR
	ORG
%rDA	APEXP
	RES	1

	SEG	CODE
	ORG
%INBYT	APEXP ; Function body
	PUSHS	#1
	PUSHS	#2
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+1B
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+36
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+51
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+6C
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+87
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+0A2
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+0BD
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSH	[1][@NEAR(%TEMP1)]
	SHL
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#1
	PUSHS	#4
	CALL	_bit_output_lo2
	PUSHS	#4
	CALL	_bit_input
	POP	[1][@NEAR(%rDA)]
	PUSH	[1][@NEAR(%rDA)]
	DEC
	SBRNZ	%INBYT+0D8
	PUSH	[1][@NEAR(%TEMP1)]
	INC
	POP	[1][@NEAR(%TEMP1)]
	PUSHS	#0
	PUSHS	#4
	CALL	_bit_output_lo2
	CALL	watchdog_update
	RET

	SEG	CODE
	ORG
%gettime	APEXP ; Function body
	CALLF	%START
	PUSH	#0A2
	POP	[1][@NEAR(%TEMP1)]
	CALLF	%OUTBYT_
	CALLF	%WACK
	PUSHS	#2
	POP	[1][@NEAR(%TEMP1)]
	CALLF	%OUTBYT_
	CALLF	%WACK
	CALLF	%START
	PUSH	#0A3
	POP	[1][@NEAR(%TEMP1)]
	CALLF	%OUTBYT_
	CALLF	%WACK
	CALLF	%INBYT
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#7F
	POP	[1][@NEAR(%dq)+5]
	CALLF	%ACK
	CALLF	%INBYT
	PUSH	[1][@NEAR(%TEMP1)]
	AND	#7F

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -