📄 stm8_tsl_rc_iodriver.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Generator V4.2.8 - 03 Dec 2008
3 ; Optimizer V4.2.8 - 03 Dec 2008
39 .const: section .text
40 0000 _Table_SCKEY_BITS:
41 0000 40 dc.b 64
42 0001 20 dc.b 32
43 0002 10 dc.b 16
44 0003 08 dc.b 8
45 0004 04 dc.b 4
46 0005 01 dc.b 1
47 0006 80 dc.b 128
48 0007 08 dc.b 8
49 0008 04 dc.b 4
50 0009 02 dc.b 2
81 ; 221 void TSL_IO_SW_Burst_TestSyncShift(void)
81 ; 222 {
83 .TSL_IO_ALCODE: section .text
84 0000 _TSL_IO_SW_Burst_TestSyncShift:
88 ; 225 ld a, _SamplingShifter
91 0000 b601 ld a,_SamplingShifter
93 ; 227 ShiftLoopVih:
96 0002 ShiftLoopVih:
98 ; 228 dec a // 1 cycle
101 0002 4a dec a//1cycle
103 ; 229 jrne ShiftLoopVih
106 0003 26fd jrne ShiftLoopVih
108 ; 232 }
111 0005 81 ret
135 ; 248 void TSL_IO_SW_Burst_Wait_Vil(void)
135 ; 249 {
136 switch .TSL_IO_ALCODE
137 0006 _TSL_IO_SW_Burst_Wait_Vil:
141 ; 252 nop
144 0006 9d nop
146 ; 253 ld a, _AcquisitionBitMask
149 0007 b600 ld a,_AcquisitionBitMask
151 ; 254 ldw x, _sTouchIO // Input data register ...
154 0009 be08 ldw x,_sTouchIO//Inputdataregister...
156 ; 255 incw x
159 000b 5c incw x
161 ; 257 WaitForVil:
164 000c WaitForVil:
166 ; 258 bcp a, (x) // 1 cycles
169 000c f5 bcp a,(x)//1cycles
171 ; 259 jreq EndWaitForVil
174 000d 270a jreq EndWaitForVil
176 ; 260 ldw y, _TIM3_CNTR // 2 cycles; hw counter also used for timeout ...
179 000f 90ce5328 ldw y,_TIM3_CNTR//2cycles
181 ; 261 cpw y, #0x0E00 // 2 cycles; Timeout compare
184 0013 90a30e00 cpw y,#0x0E00//2cycles
186 ; 262 jrult WaitForVil
189 0017 25f3 jrult WaitForVil
191 ; 263 EndWaitForVil:
194 0019 EndWaitForVil:
196 ; 266 }
199 0019 81 ret
223 ; 282 void TSL_IO_SW_Burst_Wait_Vih(void)
223 ; 283 {
224 switch .TSL_IO_ALCODE
225 001a _TSL_IO_SW_Burst_Wait_Vih:
229 ; 286 nop
232 001a 9d nop
234 ; 287 ld a, _AcquisitionBitMask
237 001b b600 ld a,_AcquisitionBitMask
239 ; 288 ldw x, _sTouchIO // Input data register ...
242 001d be08 ldw x,_sTouchIO//Inputdataregister...
244 ; 289 incw x
247 001f 5c incw x
249 ; 291 WaitForVih:
252 0020 WaitForVih:
254 ; 292 bcp a, (x) // 1 cycles
257 0020 f5 bcp a,(x)//1cycles
259 ; 293 jrne EndWaitForVih
262 0021 260a jrne EndWaitForVih
264 ; 294 ldw y, _TIM3_CNTR // 2 cycles; hw counter also used for timeout ...
267 0023 90ce5328 ldw y,_TIM3_CNTR//2cycles
269 ; 295 cpw y, #0x0E00 // 2 cycles; Timeout compare
272 0027 90a30e00 cpw y,#0x0E00//2cycles
274 ; 296 jrult WaitForVih
277 002b 25f3 jrult WaitForVih
279 ; 297 EndWaitForVih:
282 002d EndWaitForVih:
284 ; 299 }
287 002d 81 ret
311 ; 324 void TSL_IO_Init(void)
311 ; 325 {
312 switch .text
313 0000 _TSL_IO_Init:
317 ; 328 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->CR1 |= LOADREF_BIT;
319 0000 7218501c bset 20508,#4
320 ; 329 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->DDR |= LOADREF_BIT;
322 0004 7218501b bset 20507,#4
323 ; 330 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
325 0008 72195019 bres 20505,#4
326 ; 340 ((GPIO_TypeDef *)(GPIOC_BaseAddress))->CR1 |= GPIOC_ELECTRODES_MASK;
328 000c c6500d ld a,20493
329 000f aa8e or a,#142
330 0011 c7500d ld 20493,a
331 ; 343 ((GPIO_TypeDef *)(GPIOD_BaseAddress))->CR1 |= GPIOD_ELECTRODES_MASK;
333 0014 c65012 ld a,20498
334 0017 aa7d or a,#125
335 0019 c75012 ld 20498,a
336 ; 361 TSL_IO_Clamp();
338 001c ad09 call _TSL_IO_Clamp
340 ; 364 TIM3->PSCR = 0;
342 001e 725f532a clr 21290
343 ; 365 TIM3->CR1 = 0x01;
345 0022 35015320 mov 21280,#1
346 ; 367 }
349 0026 81 ret
372 ; 380 void TSL_IO_Clamp(void)
372 ; 381 {
373 switch .text
374 0027 _TSL_IO_Clamp:
378 ; 384 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
380 0027 72195019 bres 20505,#4
381 ; 396 ((GPIO_TypeDef *)(GPIOC_BaseAddress))->ODR &= (u8)(~GPIOC_ELECTRODES_MASK);
383 002b c6500a ld a,20490
384 002e a471 and a,#113
385 0030 c7500a ld 20490,a
386 ; 397 ((GPIO_TypeDef *)(GPIOC_BaseAddress))->DDR |= GPIOC_ELECTRODES_MASK;
388 0033 c6500c ld a,20492
389 0036 aa8e or a,#142
390 0038 c7500c ld 20492,a
391 ; 400 ((GPIO_TypeDef *)(GPIOD_BaseAddress))->ODR &= (u8)(~GPIOD_ELECTRODES_MASK);
393 003b c6500f ld a,20495
394 003e a482 and a,#130
395 0040 c7500f ld 20495,a
396 ; 401 ((GPIO_TypeDef *)(GPIOD_BaseAddress))->DDR |= GPIOD_ELECTRODES_MASK;
398 0043 c65011 ld a,20497
399 0046 aa7d or a,#125
400 0048 c75011 ld 20497,a
401 ; 424 }
404 004b 81 ret
428 ; 437 void TSL_IO_SW_Burst_Start_Timer(void)
428 ; 438 {
429 switch .text
430 004c _TSL_IO_SW_Burst_Start_Timer:
434 ; 440 TIM3->EGR |= 0x01;
436 004c 72105324 bset 21284,#0
437 ; 442 }
440 0050 81 ret
464 ; 455 void TSL_IO_SW_Burst_Stop_Timer(void)
464 ; 456 {
465 switch .text
466 0051 _TSL_IO_SW_Burst_Stop_Timer:
470 ; 459 ld a, _TIM3_CNTR
473 0051 c65328 ld a,_TIM3_CNTR
475 ; 460 ld _CounterStop, a
478 0054 b702 ld _CounterStop,a
480 ; 461 ld a, _TIM3_CNTR + 1
483 0056 c65329 ld a,_TIM3_CNTR+1
485 ; 462 ld _CounterStop + 1, a
488 0059 b703 ld _CounterStop+1,a
490 ; 465 }
493 005b 81 ret
627 ; 478 void TSL_IO_Acquisition(u8 AcqNumber, u8 AdjustmentLevel)
627 ; 479 {
628 switch .text
629 005c _TSL_IO_Acquisition:
631 005c 89 pushw x
632 005d 520f subw sp,#15
633 0000000f OFST: set 15
636 ; 486 AcquisitionBitMask = sTouchIO.AcqMask;
638 005f 450a00 mov _AcquisitionBitMask,_sTouchIO+2
639 ; 488 MinMeasurement = 0;
641 0062 5f clrw x
642 0063 1f04 ldw (OFST-11,sp),x
643 ; 489 MaxMeasurement = 0;
645 0065 1f02 ldw (OFST-13,sp),x
646 ; 490 FinalMeasurementValue = 0;
648 0067 bf06 ldw _FinalMeasurementValue+2,x
649 0069 bf04 ldw _FinalMeasurementValue,x
650 ; 491 RejectionCounter = 0;
652 006b 0f08 clr (OFST-7,sp)
653 ; 493 for ( AcqLoopIndex = 0; AcqLoopIndex < AcqNumber; AcqLoopIndex++ )
655 006d 0f01 clr (OFST-14,sp)
657 006f cc0166 jra L302
658 0072 L702:
659 ; 499 MeasRejected = 0;
661 0072 0f09 clr (OFST-6,sp)
662 ; 500 CumulatedMeasurement = 0;
664 0074 5f clrw x
665 0075 1f06 ldw (OFST-9,sp),x
666 ; 502 for ( SamplingShifter = SAMPLING_SHIFTER_LOOP_START;
668 0077 35010001 mov _SamplingShifter,#1
669 007b L512:
670 ; 508 disableInterrupts();
673 007b 9b sim
675 ; 510 sTouchIO.PORT_ADDR->ODR &= (u8)(~sTouchIO.DriveMask);
678 007c b60b ld a,_sTouchIO+3
679 007e 43 cpl a
680 007f 92c408 and a,[_sTouchIO.w]
681 0082 92c708 ld [_sTouchIO.w],a
682 ; 511 sTouchIO.PORT_ADDR->DDR |= sTouchIO.DriveMask;
684 0085 be08 ldw x,_sTouchIO
685 0087 e602 ld a,(2,x)
686 0089 ba0b or a,_sTouchIO+3
687 008b e702 ld (2,x),a
688 ; 512 sTouchIO.PORT_ADDR->CR1 &= (u8)(~sTouchIO.DriveMask);
690 008d b60b ld a,_sTouchIO+3
691 008f 43 cpl a
692 0090 e403 and a,(3,x)
693 0092 e703 ld (3,x),a
694 ; 513 ((GPIO_TypeDef *) (LOADREF_PORT_ADDR))->ODR |= LOADREF_BIT;
696 0094 72185019 bset 20505,#4
697 ; 515 TSL_IO_SW_Burst_Start_Timer();
699 0098 adb2 call _TSL_IO_SW_Burst_Start_Timer
701 ; 516 sTouchIO.PORT_ADDR->DDR &= (u8)(~sTouchIO.DriveMask);
703 009a be08 ldw x,_sTouchIO
704 009c b60b ld a,_sTouchIO+3
705 009e 43 cpl a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -