📄 hidtherm.lst
字号:
0031= button_machine: equ 31h ; buttons/optics state machine
0033= temp: equ 33h ; temporary register
0034= event_machine: equ 34h
0035= pending_data: equ 35h
0036= last_button_state: equ 36h
003B= int_temp: equ 3Bh
003C= led_brightness: equ 3Ch ; LED brightness value
003D= led_count: equ 3Dh ; LED PWM counter
003E= eeprom_flag: equ 3Eh
003F= eeprom_addr: equ 3Fh
0041= eeprom_data: equ 41h
0042= temp_addr: equ 42h
0043= temp_data: equ 43h
0044= ep0_transtype: equ 44h
;**********************************
; STATE MACHINE CONSTANTS
; EP0 IN TRANSACTIONS
0000= TRANS_NONE: equ 00h
0002= TRANS_CONTROL_READ: equ 02h
0004= TRANS_CONTROL_WRITE: equ 04h
0006= TRANS_NO_DATA_CONTROL: equ 06h
;**********************************
; FLAG CONSTANTS
; EP0 NO-DATA CONTROL FLAGS
0000= ADDRESS_CHANGE_PENDING: equ 00h
0002= NO_CHANGE_PENDING: equ 02h
;**********************************
; RESPONSE SIZES
0002= DEVICE_STATUS_LENGTH: equ 2
0001= DEVICE_CONFIG_LENGTH: equ 1
0002= ENDPOINT_STALL_LENGTH: equ 2
0002= INTERFACE_STATUS_LENGTH: equ 2
0001= INTERFACE_ALTERNATE_LENGTH: equ 1
;**********************************
; INTERFACE CONSTANTS
0000= RF_PORT: equ port0
0001= RFIN: equ 01h
0004= RFOUT: equ 04h
0000= TEMP_PORT: equ port0
0010= TEMP_SS: equ 10h
0020= TEMP_SI: equ 20h
0040= TEMP_SO: equ 40h
0080= TEMP_SCK: equ 80h
0000= EE_PORT: equ port0
0008= EE_SS: equ 08h
0020= EE_SI: equ 20h
0040= EE_SO: equ 40h
0080= EE_SCK: equ 80h
0001= BUTTON_PORT: equ port1
0008= SWITCH5: equ 08h
0020= SWITCH4: equ 20h
0080= SWITCH3: equ 80h
0001= LED_PORT: equ port1
0040= ACTIVE: equ 40h
0010= ENUM: equ 10h
0004= AUX01: equ 04h
0001= AUX02: equ 01h
0002= NC: equ 02h
;**********************************
; Endpoint 1 data fields
00F0= TEMP_INTDATA: equ ep1_dmabuff0
00F1= TEMP_FRACDATA: equ ep1_dmabuff1
00F2= BUTTON_DATA: equ ep1_dmabuff2
00F3= PORT0_DATA: equ ep1_dmabuff3
00F4= PORT1_DATA: equ ep1_dmabuff4
00F5= EP0_INTCOUNT: equ ep1_dmabuff5
00F6= EP1_INTCOUNT: equ ep1_dmabuff6
00F7= GPIO_INTCOUNT: equ ep1_dmabuff7
;**********************************
; button machine states
000F= BUTTON_DEBOUNCE: equ 15
000A= BUTTON_ON: equ 10
0005= BUTTON_OFF: equ 5
0000= NO_BUTTON_DATA_PENDING: equ 00h
0002= BUTTON_DATA_PENDING: equ 02h
0000= NO_OPTIC_DATA_PENDING: equ 00h
0002= OPTIC_DATA_PENDING: equ 02h
0000= NO_REPORT_PENDING: equ 00h
0002= REPORT_PENDING: equ 02h
;**********************************
; SPI EEPROM constants
0000= NO_EEPROM_DATA_AVAILABLE: equ 00h
0002= EEPROM_DATA_AVAILABLE: equ 02h
0002= EEPROM_WRITE: equ 02h
0003= EEPROM_READ: equ 03h
0004= EEPROM_WRDI: equ 04h
0006= EEPROM_WREN: equ 06h
0005= EEPROM_RDSR: equ 05h
0001= EEPROM_WRSR: equ 01h
0008= BP1: equ 08h
0004= BP0: equ 04h
0002= WEL: equ 02h
0001= WIP: equ 01h
;**********************************
; SPI Temperature Sensor constants
0000= TEMP_CTRL: equ 00h
0001= TEMP_FRAC: equ 01h
0002= TEMP_INT: equ 02h
0010= 1SHOT: equ 10h
0008= R2: equ 08h
0004= R1: equ 04h
0002= R0: equ 02h
0001= SD: equ 01h
;*************** interrupt vector table ****************
0000 ORG 00h
0000 80 1B [05] jmp Main ; reset vector
0002 81 28 [05] jmp Bus_reset ; USB Bus Reset / PS2 interrupt
0004 81 39 [05] jmp 128us_timer ; 128us interrupt
0006 81 54 [05] jmp 1ms_timer ; 1.024ms interrupt
0008 81 C1 [05] jmp Endpoint0 ; endpoint 0 interrupt
000A 84 27 [05] jmp Endpoint1 ; endpoint 1 interrupt
000C 80 1A [05] jmp Error ; endpoint 2 interrupt
000E 80 1A [05] jmp Error ; SPI interrupt
0010 80 1A [05] jmp Error ; Capture timer A interrupt
0012 80 1A [05] jmp Error ; Capture timer B interrupt
0014 80 1A [05] jmp Error ; GPIO interrupt
0016 84 44 [05] jmp Wakeup ; Wake-up interrupt
;************** program listing ************************
001A ORG 1Ah
001A 00 [07] Error: halt
;*******************************************************
;
; Interrupt handler: reset
; Purpose: The program jumps to this routine when
; the microcontroller has a power on reset.
;
;*******************************************************
001B Main:
;**********************************
; set wakeup timer interval and disable XTALOUT
001B 19 52 [04] mov A, WAKEUP_ADJUST2 | WAKEUP_ADJUST0 | INTERNAL_CLK
001D 2A F8 [05] iowr clock_config
;**********************************
; setup data memory stack pointer
001F 19 68 [04] mov A, 68h
0021 30 [05] swap A, dsp
;**********************************
; clear variables
0022 19 00 [04] mov A, 00h
0024 31 21 [05] mov [ep0_in_machine], A
0026 31 23 [05] mov [configuration], A
0028 31 25 [05] mov [ep1_stall], A
002A 31 15 [05] mov [suspend_count], A
002C 31 28 [05] mov [debounce_count], A
002E 31 F0 [05] mov [ep1_dmabuff0], A
0030 31 F1 [05] mov [ep1_dmabuff1], A
0032 31 F2 [05] mov [ep1_dmabuff2], A
0034 31 F3 [05] mov [ep1_dmabuff3], A
0036 31 F4 [05] mov [ep1_dmabuff4], A
0038 31 F5 [05] mov [ep1_dmabuff5], A
003A 31 F6 [05] mov [ep1_dmabuff6], A
003C 31 F7 [05] mov [ep1_dmabuff7], A
003E 31 31 [05] mov [button_machine], A
0040 31 3B [05] mov [int_temp], A
0042 31 34 [05] mov [event_machine], A
0044 31 3C [05] mov [led_brightness], A
0046 31 3D [05] mov [led_count], A
0048 31 44 [05] mov [ep0_transtype], A
004A 19 08 [04] mov A, SWITCH5
004C 31 2C [05] mov [current_button_state], A
004E 31 36 [05] mov [last_button_state], A
0050 19 FF [04] mov A, FFh
0052 31 24 [05] mov [remote_wakeup], A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -