📄 ecp_userinput.lst
字号:
; Init value
113 000084 1553 add #0x0001,R5
; Increment pointer
114 000086 1483 dec R4
115 000088 FA23 jnz InitButtonCLRLoop
116 00008A C043.... mov.b #0x00,ButtonIndex
; Initialize button index
117 00008E C043.... mov.b #0x00,ButtonRepeatCnt
; Initialize button repeat
118 000092 B2D006008001 bis #TBCLR+TBIE,&TBCTL
; Clear timer, enable int
119 000098 3541 pop R5
120 00009A 3441 pop R4
121 00009C 3041 ret
122 00009E
123 00009E ; **********************************************
******************************
124 00009E ; Function: TimerA Interrupt Routines
125 00009E ;
126 00009E ; Purpose: TimerA is used for IR receiver
127 00009E ;
128 00009E ; Inputs: None
129 00009E ;
130 00009E ; Returns: None
131 00009E ; **********************************************
******************************
132 00009E TACCR0_CCIFG_Interrupt
133 00009E 0013 reti
134 0000A0
135 0000A0 10522E01 TACCR1_Interrupt add &TAIV,PC
; Add offset
to PC
136 0000A4 0013 reti
; Vector 0, no interrupt
137 0000A6 043C jmp TACCR1Interrupt
; Vector 2, TACCR1 Int
138 0000A8 433C jmp TACCR2Interrupt
; Vector 4, TACCR2 Int
139 0000AA 0013 reti
; Vector 6 reserved
140 0000AC 0013 reti
; Vector 8 reserved
141 0000AE 0013 reti
; Vector 10 TAIFG
142 0000B0
143 0000B0 0412 TACCR1Interrupt push R4
; Save Regs
144 0000B2 14426401 mov &TACCTL1,R4
; Get
TACCTL1
145 0000B6 34F00001 and #CAP,R4
; Mask Capture mode
146 0000BA 0D24 jz TACCR1Int_2
; Not capture mode
147 0000BC 82436601 mov #0x0000, &TACCTL2
; Disable TA2
148 0000C0 14427401 mov &TACCR1, R4
; Get
TACCR1
149 0000C4 34502A00 add #BIT_75, R4
; Add 3/4 bit time
150 0000C8 82447401 mov R4,&TACCR1
151 0000CC B0401000.... mov #CCIE,TACCTL1
; Compare mode, enable int
152 0000D2 3441 pop R4
; Restore Regs
153 0000D4 0013 reti
154 0000D6 5440.... TACCR1Int_2 mov.b IRBits,R4
; Get
current bit
count
155 0000DA 1483 dec R4
; Decrement bit count
156 0000DC 0C20 jnz TACCR1Int_3
; Is it 0?
157 0000DE 82436401 mov #0x0000,&TACCTL1
; Stop TA1
158 0000E2 82436601 mov #0x0000,&TACCTL2
; Stop TA2
159 0000E6 1440.... mov IRData,R4
; Get the
IR data
160 0000EA B012.... call #PushInputEvent
; Report it to DM350
161 0000EE B012.... call #ResetIR
162 0000F2 3441 pop R4
163 0000F4 0013 reti
; Interrupt done
164 0000F6 C044.... TACCR1Int_3 mov.b R4,IRBits
; Save
IRBITS
165 0000FA 1440.... mov IRData,R4
; Get IR
Data
166 0000FE 0454 rla R4
; Shift left once
167 000100 0512 push R5
; Save R5
168 000102 15426401 mov &TACCTL1,R5
; Get
TACCTL1
169 000106 35F00004 and #SCCI,R5
; Is SCCI bit set?
170 00010A 0124 jz TACCR1Int_4
; No
171 00010C 14D3 bis #0x0001,R4
; Set IRDATA LSB to 1
172 00010E 8044.... TACCR1Int_4 mov R4, IRData
; Save
it
173 000112 14427401 mov &TACCR1,R4
; Get
TACCR1
174 000116 34501D00 add #BIT_50,R4
; Add 1/2 IR Bit time
175 00011A 82447601 mov R4,&TACCR2
; Set TA2 to
generate
176 00011E
; a timeout if next
177 00011E
; packet edge is not
178 00011E
; captured within 1/2
179 00011E
; bit time
180 00011E B24010006601 mov #CCIE,&TACCTL2
; Compare mode, enable int
181 000124 B24010C96401 mov #CAP+CM1+CM0+SCS+CCIE,&TA
CCTL1 ; Capture mode, CCI1A
182 00012A
; input, both edges
183 00012A
; synchronous enable
184 00012A
; interrupt
185 00012A 3541 pop R5
; Restore Regs
186 00012C 3441 pop R4
187 00012E 0013 reti
188 000130
189 000130
190 000130 82436401 TACCR2Interrupt mov #0x0000,&TACCTL1
; Timeout, stop TA1
191 000134 82436601 mov #0x0000,&TACCTL2
; Timeout, stop TA2
192 000138 B012.... call #ResetIR
; Reset for next time
193 00013C 0013 reti
194 00013E ; **********************************************
******************************
195 00013E ; Function: TimerB Interrupt Routines
196 00013E ;
197 00013E ; Purpose: TimerB is used for user button
debounce and processing
198 00013E ;
199 00013E ; Inputs: None
200 00013E ;
201 00013E ; Returns: None
202 00013E ; **********************************************
******************************
203 00013E 10521E01 TIMERB_ISR add &TBIV,PC
; Add offset
to PC
204 000142 0013 reti
; Vector 0, no interrupt
205 000144 0013 reti
; Vector 2, TBCCR1 Int
206 000146 0013 reti
; Vector 4, TBCCR2 Int
207 000148 0013 reti
; Vector 6 reserved
208 00014A 0013 reti
; Vector 8 reserved
209 00014C 0013 reti
; Vector A reserved
210 00014E 0013 reti
; Vector C reserved
211 000150 003C jmp DebounceButton
; Vector E TAIFG
212 000152
213 000152 0412 DebounceButton push R4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -