📄 stm8_tsl_rc_acquisition.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.9.2 - 29 Jun 2010
3 ; Generator V4.3.5 - 02 Jul 2010
49 .const: section .text
50 0000 _Table_SCKEY_BITS:
51 0000 80 dc.b 128
52 0001 01 dc.b 1
53 0002 _Table_MCKEY_PORTS:
54 0002 5005 dc.w 20485
55 0004 5005 dc.w 20485
56 0006 5005 dc.w 20485
57 0008 5005 dc.w 20485
58 000a 5005 dc.w 20485
59 000c _Table_MCKEY_BITS:
60 000c 40 dc.b 64
61 000d 20 dc.b 32
62 000e 10 dc.b 16
63 000f 08 dc.b 8
64 0010 04 dc.b 4
95 ; 240 void TSL_IO_SW_Burst_TestSyncShift(void)
95 ; 241 {
97 switch .text
98 0000 _TSL_IO_SW_Burst_TestSyncShift:
102 ; 245 ld a, _SamplingShifter
105 0000 b601 ld a, _SamplingShifter
107 ; 247 ShiftLoopVih:
110 0002 ShiftLoopVih:
112 ; 248 dec a // 1 cycle
115 0002 4a dec a // 1 cycle
117 ; 249 jrne ShiftLoopVih
120 0003 26fd jrne ShiftLoopVih
122 ; 266 }
125 0005 81 ret
149 ; 277 void TSL_IO_SW_Burst_Wait_Vil(void)
149 ; 278 {
150 switch .text
151 0006 _TSL_IO_SW_Burst_Wait_Vil:
155 ; 282 ld a, _AcquisitionBitMask
158 0006 b600 ld a, _AcquisitionBitMask
160 ; 283 ldw x, _sTouchIO // Input data register ...
163 0008 be08 ldw x, _sTouchIO // Input data register ...
165 ; 284 incw x
168 000a 5c incw x
170 ; 286 WaitForVil:
173 000b WaitForVil:
175 ; 290 bcp a, (x) // 1 cycles
178 000b f5 bcp a, (x) // 1 cycles
180 ; 291 jreq EndWaitForVil
183 000c 270a jreq EndWaitForVil
185 ; 292 ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
188 000e 90ce5328 ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
190 ; 293 cpw y, #0x0E00 // 2 cycles; Timeout compare
193 0012 90a30e00 cpw y, #0x0E00 // 2 cycles; Timeout compare
195 ; 294 jrult WaitForVil
198 0016 25f3 jrult WaitForVil
200 ; 295 EndWaitForVil:
203 0018 EndWaitForVil:
205 ; 331 }
208 0018 81 ret
232 ; 342 void TSL_IO_SW_Burst_Wait_Vih(void)
232 ; 343 {
233 switch .text
234 0019 _TSL_IO_SW_Burst_Wait_Vih:
238 ; 346 ld a, _AcquisitionBitMask
241 0019 b600 ld a, _AcquisitionBitMask
243 ; 347 ldw x, _sTouchIO // Input data register ...
246 001b be08 ldw x, _sTouchIO // Input data register ...
248 ; 348 incw x
251 001d 5c incw x
253 ; 350 WaitForVih:
256 001e WaitForVih:
258 ; 354 bcp a, (x) // 1 cycles
261 001e f5 bcp a, (x) // 1 cycles
263 ; 355 jrne EndWaitForVih
266 001f 260a jrne EndWaitForVih
268 ; 356 ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
271 0021 90ce5328 ldw y, _TIMACQ_CNTR // 2 cycles; hw counter also used for timeout ...
273 ; 357 cpw y, #0x0E00 // 2 cycles; Timeout compare
276 0025 90a30e00 cpw y, #0x0E00 // 2 cycles; Timeout compare
278 ; 358 jrult WaitForVih
281 0029 25f3 jrult WaitForVih
283 ; 359 EndWaitForVih:
286 002b EndWaitForVih:
288 ; 396 }
291 002b 81 ret
315 ; 443 void TSL_IO_Init(void)
315 ; 444 {
316 switch .text
317 002c _TSL_IO_Init:
321 ; 447 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->CR1 |= LOADREF_BIT;
323 002c 721c5003 bset 20483,#6
324 ; 448 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->DDR |= LOADREF_BIT;
326 0030 721c5002 bset 20482,#6
327 ; 449 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
329 0034 721d5000 bres 20480,#6
330 ; 456 ((GPIO_TypeDef *)(GPIOB_BaseAddress))->CR1 |= GPIOB_ELECTRODES_MASK;
332 0038 c65008 ld a,20488
333 003b aaff or a,#255
334 003d c75008 ld 20488,a
335 ; 480 TSL_IO_Clamp();
337 0040 ad09 call _TSL_IO_Clamp
339 ; 483 TIMACQ->PSCR = 0;
341 0042 725f532a clr 21290
342 ; 484 TIMACQ->CR1 = 0x01;
344 0046 35015320 mov 21280,#1
345 ; 486 }
348 004a 81 ret
371 ; 499 void TSL_IO_Clamp(void)
371 ; 500 {
372 switch .text
373 004b _TSL_IO_Clamp:
377 ; 503 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR &= (u8)(~LOADREF_BIT);
379 004b 721d5000 bres 20480,#6
380 ; 511 ((GPIO_TypeDef *)(GPIOB_BaseAddress))->ODR &= (u8)(~GPIOB_ELECTRODES_MASK);
382 004f 725f5005 clr 20485
383 ; 512 ((GPIO_TypeDef *)(GPIOB_BaseAddress))->DDR |= GPIOB_ELECTRODES_MASK;
385 0053 c65007 ld a,20487
386 0056 aaff or a,#255
387 0058 c75007 ld 20487,a
388 ; 543 }
391 005b 81 ret
415 ; 556 void TSL_IO_SW_Burst_Start_Timer(void)
415 ; 557 {
416 switch .text
417 005c _TSL_IO_SW_Burst_Start_Timer:
421 ; 559 TIMACQ->EGR |= 0x01;
423 005c 72105324 bset 21284,#0
424 ; 561 }
427 0060 81 ret
451 ; 574 void TSL_IO_SW_Burst_Stop_Timer(void)
451 ; 575 {
452 switch .text
453 0061 _TSL_IO_SW_Burst_Stop_Timer:
457 ; 578 ld a, _TIMACQ_CNTR
460 0061 c65328 ld a, _TIMACQ_CNTR
462 ; 579 ld _CounterStop, a
465 0064 b702 ld _CounterStop, a
467 ; 580 ld a, _TIMACQ_CNTR + 1
470 0066 c65329 ld a, _TIMACQ_CNTR + 1
472 ; 581 ld _CounterStop + 1, a
475 0069 b703 ld _CounterStop + 1, a
477 ; 599 }
480 006b 81 ret
616 ; 612 void TSL_IO_Acquisition(u8 AcqNumber, u8 AdjustmentLevel)
616 ; 613 {
617 switch .text
618 006c _TSL_IO_Acquisition:
620 006c 89 pushw x
621 006d 520f subw sp,#15
622 0000000f OFST: set 15
625 ; 620 AcquisitionBitMask = sTouchIO.AcqMask;
627 006f 450a00 mov _AcquisitionBitMask,_sTouchIO+2
628 ; 622 MinMeasurement = 0;
630 0072 5f clrw x
631 0073 1f04 ldw (OFST-11,sp),x
632 ; 623 MaxMeasurement = 0;
634 0075 5f clrw x
635 0076 1f02 ldw (OFST-13,sp),x
636 ; 624 FinalMeasurementValue = 0;
638 0078 ae0000 ldw x,#0
639 007b bf06 ldw _FinalMeasurementValue+2,x
640 007d ae0000 ldw x,#0
641 0080 bf04 ldw _FinalMeasurementValue,x
642 ; 625 RejectionCounter = 0;
644 0082 0f08 clr (OFST-7,sp)
645 ; 630 if (IT_Sync_Flags.one_acquisition_sync_enable)
647 0084 b600 ld a,_IT_Sync_Flags
648 0086 a501 bcp a,#1
649 0088 270a jreq L102
650 ; 632 IT_Sync_Flags.start = 0;
652 008a 72170000 bres _IT_Sync_Flags,#3
654 008e L702:
655 ; 633 while (IT_Sync_Flags.start == 0);
657 008e b600 ld a,_IT_Sync_Flags
658 0090 a508 bcp a,#8
659 0092 27fa jreq L702
660 0094 L102:
661 ; 638 for (AcqLoopIndex = 0; AcqLoopIndex < AcqNumber; AcqLoopIndex++)
663 0094 0f01 clr (OFST-14,sp)
665 0096 acc701c7 jpf L712
666 009a L312:
667 ; 643 if (IT_Sync_Flags.one_measure_sync_enable)
669 009a b600 ld a,_IT_Sync_Flags
670 009c a502 bcp a,#2
671 009e 270a jreq L532
672 ; 645 IT_Sync_Flags.start = 0;
674 00a0 72170000 bres _IT_Sync_Flags,#3
676 00a4 L132:
677 ; 646 while (IT_Sync_Flags.start == 0);
679 00a4 b600 ld a,_IT_Sync_Flags
680 00a6 a508 bcp a,#8
681 00a8 27fa jreq L132
682 00aa L532:
683 ; 653 MeasRejected = 0;
685 00aa 0f09 clr (OFST-6,sp)
686 ; 654 CumulatedMeasurement = 0;
688 00ac 5f clrw x
689 00ad 1f06 ldw (OFST-9,sp),x
690 ; 656 for (SamplingShifter = SAMPLING_SHIFTER_LOOP_START;
692 00af 35010001 mov _SamplingShifter,#1
693 00b3 L342:
694 ; 661 disableInterrupts();
697 00b3 9b sim
699 ; 662 sTouchIO.PORT_ADDR->ODR &= (u8)(~sTouchIO.DriveMask);
702 00b4 b60b ld a,_sTouchIO+3
703 00b6 43 cpl a
704 00b7 92c408 and a,[_sTouchIO.w]
705 00ba 92c708 ld [_sTouchIO.w],a
706 ; 663 sTouchIO.PORT_ADDR->DDR |= sTouchIO.DriveMask;
708 00bd be08 ldw x,_sTouchIO
709 00bf e602 ld a,(2,x)
710 00c1 ba0b or a,_sTouchIO+3
711 00c3 e702 ld (2,x),a
712 ; 664 sTouchIO.PORT_ADDR->CR1 &= (u8)(~sTouchIO.DriveMask);
714 00c5 be08 ldw x,_sTouchIO
715 00c7 b60b ld a,_sTouchIO+3
716 00c9 43 cpl a
717 00ca e403 and a,(3,x)
718 00cc e703 ld (3,x),a
719 ; 665 ((GPIO_TypeDef *)(LOADREF_PORT_ADDR))->ODR |= LOADREF_BIT;
721 00ce 721c5000 bset 20480,#6
722 ; 666 enableInterrupts();
725 00d2 9a rim
727 ; 671 if (IT_Sync_Flags.one_charge_sync_enable)
730 00d3 b600 ld a,_IT_Sync_Flags
731 00d5 a504 bcp a,#4
732 00d7 270a jreq L152
733 ; 673 IT_Sync_Flags.start = 0;
735 00d9 72170000 bres _IT_Sync_Flags,#3
737 00dd L752:
738 ; 674 while (IT_Sync_Flags.start == 0);
740 00dd b600 ld a,_IT_Sync_Flags
741 00df a508 bcp a,#8
742 00e1 27fa jreq L752
743 00e3 L152:
744 ; 682 disableInterrupts();
747 00e3 9b sim
749 ; 683 TSL_IO_SW_Burst_Start_Timer();
752 00e4 cd005c call _TSL_IO_SW_Burst_Start_Timer
754 ; 684 sTouchIO.PORT_ADDR->DDR &= (u8)(~sTouchIO.DriveMask);
756 00e7 be08 ldw x,_sTouchIO
757 00e9 b60b ld a,_sTouchIO+3
758 00eb 43 cpl a
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -