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

📄 stm8s_tim2.ls

📁 STM8-触摸例程
💻 LS
📖 第 1 页 / 共 4 页
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Generator V4.2.8 - 03 Dec 2008
   3                     ; Optimizer V4.2.8 - 03 Dec 2008
  33                     ; 63 void TIM2_DeInit(void)
  33                     ; 64 {
  35                     	switch	.text
  36  0000               _TIM2_DeInit:
  40                     ; 66   TIM2->CR1 = (u8)TIM2_CR1_RESET_VALUE;
  42  0000 725f5300      	clr	21248
  43                     ; 67   TIM2->IER = (u8)TIM2_IER_RESET_VALUE;
  45  0004 725f5301      	clr	21249
  46                     ; 68   TIM2->SR2 = (u8)TIM2_SR2_RESET_VALUE;
  48  0008 725f5303      	clr	21251
  49                     ; 71   TIM2->CCER1 = (u8)TIM2_CCER1_RESET_VALUE;
  51  000c 725f5308      	clr	21256
  52                     ; 72   TIM2->CCER2 = (u8)TIM2_CCER2_RESET_VALUE;
  54  0010 725f5309      	clr	21257
  55                     ; 76   TIM2->CCER1 = (u8)TIM2_CCER1_RESET_VALUE;
  57  0014 725f5308      	clr	21256
  58                     ; 77   TIM2->CCER2 = (u8)TIM2_CCER2_RESET_VALUE;
  60  0018 725f5309      	clr	21257
  61                     ; 78   TIM2->CCMR1 = (u8)TIM2_CCMR1_RESET_VALUE;
  63  001c 725f5305      	clr	21253
  64                     ; 79   TIM2->CCMR2 = (u8)TIM2_CCMR2_RESET_VALUE;
  66  0020 725f5306      	clr	21254
  67                     ; 80   TIM2->CCMR3 = (u8)TIM2_CCMR3_RESET_VALUE;
  69  0024 725f5307      	clr	21255
  70                     ; 81   TIM2->CNTRH = (u8)TIM2_CNTRH_RESET_VALUE;
  72  0028 725f530a      	clr	21258
  73                     ; 82   TIM2->CNTRL = (u8)TIM2_CNTRL_RESET_VALUE;
  75  002c 725f530b      	clr	21259
  76                     ; 83   TIM2->PSCR = (u8)TIM2_PSCR_RESET_VALUE;
  78  0030 725f530c      	clr	21260
  79                     ; 84   TIM2->ARRH  = (u8)TIM2_ARRH_RESET_VALUE;
  81  0034 35ff530d      	mov	21261,#255
  82                     ; 85   TIM2->ARRL  = (u8)TIM2_ARRL_RESET_VALUE;
  84  0038 35ff530e      	mov	21262,#255
  85                     ; 86   TIM2->CCR1H = (u8)TIM2_CCR1H_RESET_VALUE;
  87  003c 725f530f      	clr	21263
  88                     ; 87   TIM2->CCR1L = (u8)TIM2_CCR1L_RESET_VALUE;
  90  0040 725f5310      	clr	21264
  91                     ; 88   TIM2->CCR2H = (u8)TIM2_CCR2H_RESET_VALUE;
  93  0044 725f5311      	clr	21265
  94                     ; 89   TIM2->CCR2L = (u8)TIM2_CCR2L_RESET_VALUE;
  96  0048 725f5312      	clr	21266
  97                     ; 90   TIM2->CCR3H = (u8)TIM2_CCR3H_RESET_VALUE;
  99  004c 725f5313      	clr	21267
 100                     ; 91   TIM2->CCR3L = (u8)TIM2_CCR3L_RESET_VALUE;
 102  0050 725f5314      	clr	21268
 103                     ; 92   TIM2->SR1 = (u8)TIM2_SR1_RESET_VALUE;
 105  0054 725f5302      	clr	21250
 106                     ; 93 }
 109  0058 81            	ret	
 277                     ; 113 void TIM2_TimeBaseInit( TIM2_Prescaler_TypeDef TIM2_Prescaler,
 277                     ; 114                         u16 TIM2_Period)
 277                     ; 115 {
 278                     	switch	.text
 279  0059               _TIM2_TimeBaseInit:
 281       00000000      OFST:	set	0
 284                     ; 117   TIM2->PSCR = (u8)(TIM2_Prescaler);
 286  0059 c7530c        	ld	21260,a
 287  005c 88            	push	a
 288                     ; 119   TIM2->ARRH = (u8)(TIM2_Period >> 8);
 290  005d 7b04          	ld	a,(OFST+4,sp)
 291  005f c7530d        	ld	21261,a
 292                     ; 120   TIM2->ARRL = (u8)(TIM2_Period);
 294  0062 7b05          	ld	a,(OFST+5,sp)
 295  0064 c7530e        	ld	21262,a
 296                     ; 121 }
 299  0067 84            	pop	a
 300  0068 81            	ret	
 457                     ; 145 void TIM2_OC1Init(TIM2_OCMode_TypeDef TIM2_OCMode,
 457                     ; 146                   TIM2_OutputState_TypeDef TIM2_OutputState,
 457                     ; 147                   u16 TIM2_Pulse,
 457                     ; 148                   TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
 457                     ; 149 {
 458                     	switch	.text
 459  0069               _TIM2_OC1Init:
 461  0069 89            	pushw	x
 462  006a 88            	push	a
 463       00000001      OFST:	set	1
 466                     ; 151   assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
 468                     ; 152   assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
 470                     ; 153   assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
 472                     ; 156   TIM2->CCER1 &= (u8)(~( TIM2_CCER1_CC1E | TIM2_CCER1_CC1P));
 474  006b c65308        	ld	a,21256
 475  006e a4fc          	and	a,#252
 476  0070 c75308        	ld	21256,a
 477                     ; 158   TIM2->CCER1 |= (u8)((TIM2_OutputState  & TIM2_CCER1_CC1E   ) | (TIM2_OCPolarity   & TIM2_CCER1_CC1P   ));
 479  0073 7b08          	ld	a,(OFST+7,sp)
 480  0075 a402          	and	a,#2
 481  0077 6b01          	ld	(OFST+0,sp),a
 482  0079 9f            	ld	a,xl
 483  007a a401          	and	a,#1
 484  007c 1a01          	or	a,(OFST+0,sp)
 485  007e ca5308        	or	a,21256
 486  0081 c75308        	ld	21256,a
 487                     ; 161   TIM2->CCMR1 = (u8)((TIM2->CCMR1 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
 489  0084 c65305        	ld	a,21253
 490  0087 a48f          	and	a,#143
 491  0089 1a02          	or	a,(OFST+1,sp)
 492  008b c75305        	ld	21253,a
 493                     ; 164   TIM2->CCR1H = (u8)(TIM2_Pulse >> 8);
 495  008e 7b06          	ld	a,(OFST+5,sp)
 496  0090 c7530f        	ld	21263,a
 497                     ; 165   TIM2->CCR1L = (u8)(TIM2_Pulse);
 499  0093 7b07          	ld	a,(OFST+6,sp)
 500  0095 c75310        	ld	21264,a
 501                     ; 166 }
 504  0098 5b03          	addw	sp,#3
 505  009a 81            	ret	
 569                     ; 190 void TIM2_OC2Init(TIM2_OCMode_TypeDef TIM2_OCMode,
 569                     ; 191                   TIM2_OutputState_TypeDef TIM2_OutputState,
 569                     ; 192                   u16 TIM2_Pulse,
 569                     ; 193                   TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
 569                     ; 194 {
 570                     	switch	.text
 571  009b               _TIM2_OC2Init:
 573  009b 89            	pushw	x
 574  009c 88            	push	a
 575       00000001      OFST:	set	1
 578                     ; 196   assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
 580                     ; 197   assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
 582                     ; 198   assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
 584                     ; 202   TIM2->CCER1 &= (u8)(~( TIM2_CCER1_CC2E |  TIM2_CCER1_CC2P ));
 586  009d c65308        	ld	a,21256
 587  00a0 a4cf          	and	a,#207
 588  00a2 c75308        	ld	21256,a
 589                     ; 204   TIM2->CCER1 |= (u8)((TIM2_OutputState  & TIM2_CCER1_CC2E   ) | \
 589                     ; 205                       (TIM2_OCPolarity   & TIM2_CCER1_CC2P   ));
 591  00a5 7b08          	ld	a,(OFST+7,sp)
 592  00a7 a420          	and	a,#32
 593  00a9 6b01          	ld	(OFST+0,sp),a
 594  00ab 9f            	ld	a,xl
 595  00ac a410          	and	a,#16
 596  00ae 1a01          	or	a,(OFST+0,sp)
 597  00b0 ca5308        	or	a,21256
 598  00b3 c75308        	ld	21256,a
 599                     ; 209   TIM2->CCMR2 = (u8)((TIM2->CCMR2 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
 601  00b6 c65306        	ld	a,21254
 602  00b9 a48f          	and	a,#143
 603  00bb 1a02          	or	a,(OFST+1,sp)
 604  00bd c75306        	ld	21254,a
 605                     ; 213   TIM2->CCR2H = (u8)(TIM2_Pulse >> 8);
 607  00c0 7b06          	ld	a,(OFST+5,sp)
 608  00c2 c75311        	ld	21265,a
 609                     ; 214   TIM2->CCR2L = (u8)(TIM2_Pulse);
 611  00c5 7b07          	ld	a,(OFST+6,sp)
 612  00c7 c75312        	ld	21266,a
 613                     ; 215 }
 616  00ca 5b03          	addw	sp,#3
 617  00cc 81            	ret	
 681                     ; 239 void TIM2_OC3Init(TIM2_OCMode_TypeDef TIM2_OCMode,
 681                     ; 240                   TIM2_OutputState_TypeDef TIM2_OutputState,
 681                     ; 241                   u16 TIM2_Pulse,
 681                     ; 242                   TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
 681                     ; 243 {
 682                     	switch	.text
 683  00cd               _TIM2_OC3Init:
 685  00cd 89            	pushw	x
 686  00ce 88            	push	a
 687       00000001      OFST:	set	1
 690                     ; 245   assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
 692                     ; 246   assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
 694                     ; 247   assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
 696                     ; 249   TIM2->CCER2 &= (u8)(~( TIM2_CCER2_CC3E  | TIM2_CCER2_CC3P));
 698  00cf c65309        	ld	a,21257
 699  00d2 a4fc          	and	a,#252
 700  00d4 c75309        	ld	21257,a
 701                     ; 251   TIM2->CCER2 |= (u8)((TIM2_OutputState  & TIM2_CCER2_CC3E   ) |  (TIM2_OCPolarity   & TIM2_CCER2_CC3P   ));
 703  00d7 7b08          	ld	a,(OFST+7,sp)
 704  00d9 a402          	and	a,#2
 705  00db 6b01          	ld	(OFST+0,sp),a
 706  00dd 9f            	ld	a,xl
 707  00de a401          	and	a,#1
 708  00e0 1a01          	or	a,(OFST+0,sp)
 709  00e2 ca5309        	or	a,21257
 710  00e5 c75309        	ld	21257,a
 711                     ; 254   TIM2->CCMR3 = (u8)((TIM2->CCMR3 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
 713  00e8 c65307        	ld	a,21255
 714  00eb a48f          	and	a,#143
 715  00ed 1a02          	or	a,(OFST+1,sp)
 716  00ef c75307        	ld	21255,a
 717                     ; 257   TIM2->CCR3H = (u8)(TIM2_Pulse >> 8);
 719  00f2 7b06          	ld	a,(OFST+5,sp)
 720  00f4 c75313        	ld	21267,a
 721                     ; 258   TIM2->CCR3L = (u8)(TIM2_Pulse);
 723  00f7 7b07          	ld	a,(OFST+6,sp)
 724  00f9 c75314        	ld	21268,a
 725                     ; 260 }
 728  00fc 5b03          	addw	sp,#3
 729  00fe 81            	ret	
 922                     ; 291 void TIM2_ICInit(TIM2_Channel_TypeDef TIM2_Channel,
 922                     ; 292                  TIM2_ICPolarity_TypeDef TIM2_ICPolarity,
 922                     ; 293                  TIM2_ICSelection_TypeDef TIM2_ICSelection,
 922                     ; 294                  TIM2_ICPSC_TypeDef TIM2_ICPrescaler,
 922                     ; 295                  u8 TIM2_ICFilter)
 922                     ; 296 {
 923                     	switch	.text
 924  00ff               _TIM2_ICInit:
 926  00ff 89            	pushw	x
 927       00000000      OFST:	set	0
 930                     ; 298   assert_param(IS_TIM2_CHANNEL_OK(TIM2_Channel));
 932                     ; 299   assert_param(IS_TIM2_IC_POLARITY_OK(TIM2_ICPolarity));
 934                     ; 300   assert_param(IS_TIM2_IC_SELECTION_OK(TIM2_ICSelection));
 936                     ; 301   assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_ICPrescaler));
 938                     ; 302   assert_param(IS_TIM2_IC_FILTER_OK(TIM2_ICFilter));
 940                     ; 304   if (TIM2_Channel == TIM2_CHANNEL_1)
 942  0100 9e            	ld	a,xh
 943  0101 4d            	tnz	a
 944  0102 2614          	jrne	L104
 945                     ; 307     TI1_Config(TIM2_ICPolarity,
 945                     ; 308                TIM2_ICSelection,
 945                     ; 309                TIM2_ICFilter);
 947  0104 7b07          	ld	a,(OFST+7,sp)
 948  0106 88            	push	a
 949  0107 7b06          	ld	a,(OFST+6,sp)
 950  0109 97            	ld	xl,a
 951  010a 7b03          	ld	a,(OFST+3,sp)
 952  010c 95            	ld	xh,a
 953  010d cd0418        	call	L3_TI1_Config
 955  0110 84            	pop	a
 956                     ; 312     TIM2_SetIC1Prescaler(TIM2_ICPrescaler);
 958  0111 7b06          	ld	a,(OFST+6,sp)
 959  0113 cd032d        	call	_TIM2_SetIC1Prescaler
 962  0116 202b          	jra	L304
 963  0118               L104:
 964                     ; 314   else if (TIM2_Channel == TIM2_CHANNEL_2)
 966  0118 7b01          	ld	a,(OFST+1,sp)
 967  011a 4a            	dec	a
 968  011b 2614          	jrne	L504
 969                     ; 317     TI2_Config(TIM2_ICPolarity,
 969                     ; 318                TIM2_ICSelection,
 969                     ; 319                TIM2_ICFilter);
 971  011d 7b07          	ld	a,(OFST+7,sp)
 972  011f 88            	push	a
 973  0120 7b06          	ld	a,(OFST+6,sp)
 974  0122 97            	ld	xl,a
 975  0123 7b03          	ld	a,(OFST+3,sp)
 976  0125 95            	ld	xh,a
 977  0126 cd0448        	call	L5_TI2_Config
 979  0129 84            	pop	a
 980                     ; 322     TIM2_SetIC2Prescaler(TIM2_ICPrescaler);
 982  012a 7b06          	ld	a,(OFST+6,sp)
 983  012c cd033a        	call	_TIM2_SetIC2Prescaler
 986  012f 2012          	jra	L304
 987  0131               L504:
 988                     ; 327     TI3_Config(TIM2_ICPolarity,
 988                     ; 328                TIM2_ICSelection,
 988                     ; 329                TIM2_ICFilter);
 990  0131 7b07          	ld	a,(OFST+7,sp)
 991  0133 88            	push	a
 992  0134 7b06          	ld	a,(OFST+6,sp)
 993  0136 97            	ld	xl,a
 994  0137 7b03          	ld	a,(OFST+3,sp)
 995  0139 95            	ld	xh,a
 996  013a cd0478        	call	L7_TI3_Config
 998  013d 84            	pop	a
 999                     ; 332     TIM2_SetIC3Prescaler(TIM2_ICPrescaler);
1001  013e 7b06          	ld	a,(OFST+6,sp)
1002  0140 cd0347        	call	_TIM2_SetIC3Prescaler
1004  0143               L304:
1005                     ; 334 }
1008  0143 85            	popw	x
1009  0144 81            	ret	
1105                     ; 363 void TIM2_PWMIConfig(TIM2_Channel_TypeDef TIM2_Channel,
1105                     ; 364                      TIM2_ICPolarity_TypeDef TIM2_ICPolarity,
1105                     ; 365                      TIM2_ICSelection_TypeDef TIM2_ICSelection,
1105                     ; 366                      TIM2_ICPSC_TypeDef TIM2_ICPrescaler,
1105                     ; 367                      u8 TIM2_ICFilter)
1105                     ; 368 {
1106                     	switch	.text
1107  0145               _TIM2_PWMIConfig:
1109  0145 89            	pushw	x
1110  0146 89            	pushw	x
1111       00000002      OFST:	set	2
1114                     ; 369   u8 icpolarity = (u8)TIM2_ICPOLARITY_RISING;
1116                     ; 370   u8 icselection = (u8)TIM2_ICSELECTION_DIRECTTI;
1118                     ; 373   assert_param(IS_TIM2_PWMI_CHANNEL_OK(TIM2_Channel));
1120                     ; 374   assert_param(IS_TIM2_IC_POLARITY_OK(TIM2_ICPolarity));
1122                     ; 375   assert_param(IS_TIM2_IC_SELECTION_OK(TIM2_ICSelection));
1124                     ; 376   assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_ICPrescaler));
1126                     ; 379   if (TIM2_ICPolarity != TIM2_ICPOLARITY_FALLING)
1128  0147 7b04          	ld	a,(OFST+2,sp)
1129  0149 a144          	cp	a,#68
1130  014b 2706          	jreq	L754
1131                     ; 381     icpolarity = (u8)TIM2_ICPOLARITY_FALLING;
1133  014d a644          	ld	a,#68
1134  014f 6b01          	ld	(OFST-1,sp),a
1136  0151 2002          	jra	L164
1137  0153               L754:
1138                     ; 385     icpolarity = (u8)TIM2_ICPOLARITY_RISING;
1140  0153 0f01          	clr	(OFST-1,sp)
1141  0155               L164:
1142                     ; 389   if (TIM2_ICSelection == TIM2_ICSELECTION_DIRECTTI)
1144  0155 7b07          	ld	a,(OFST+5,sp)
1145  0157 4a            	dec	a
1146  0158 2604          	jrne	L364
1147                     ; 391     icselection = (u8)TIM2_ICSELECTION_INDIRECTTI;
1149  015a a602          	ld	a,#2

⌨️ 快捷键说明

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