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

📄 stm8s_tim2.ls

📁 STM8S105 BLDC源代码
💻 LS
📖 第 1 页 / 共 4 页
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Parser V4.9.10 - 10 Feb 2011
   3                     ; Generator (Limited) V4.3.6 - 15 Feb 2011
   4                     ; Optimizer V4.3.5 - 15 Feb 2011
  47                     ; 63 void TIM2_DeInit(void)
  47                     ; 64 {
  49                     	switch	.text
  50  0000               _TIM2_DeInit:
  54                     ; 66   TIM2->CR1 = (u8)TIM2_CR1_RESET_VALUE;
  56  0000 725f5300      	clr	21248
  57                     ; 67   TIM2->IER = (u8)TIM2_IER_RESET_VALUE;
  59  0004 725f5301      	clr	21249
  60                     ; 68   TIM2->SR2 = (u8)TIM2_SR2_RESET_VALUE;
  62  0008 725f5303      	clr	21251
  63                     ; 71   TIM2->CCER1 = (u8)TIM2_CCER1_RESET_VALUE;
  65  000c 725f5308      	clr	21256
  66                     ; 72   TIM2->CCER2 = (u8)TIM2_CCER2_RESET_VALUE;
  68  0010 725f5309      	clr	21257
  69                     ; 76   TIM2->CCER1 = (u8)TIM2_CCER1_RESET_VALUE;
  71  0014 725f5308      	clr	21256
  72                     ; 77   TIM2->CCER2 = (u8)TIM2_CCER2_RESET_VALUE;
  74  0018 725f5309      	clr	21257
  75                     ; 78   TIM2->CCMR1 = (u8)TIM2_CCMR1_RESET_VALUE;
  77  001c 725f5305      	clr	21253
  78                     ; 79   TIM2->CCMR2 = (u8)TIM2_CCMR2_RESET_VALUE;
  80  0020 725f5306      	clr	21254
  81                     ; 80   TIM2->CCMR3 = (u8)TIM2_CCMR3_RESET_VALUE;
  83  0024 725f5307      	clr	21255
  84                     ; 81   TIM2->CNTRH = (u8)TIM2_CNTRH_RESET_VALUE;
  86  0028 725f530a      	clr	21258
  87                     ; 82   TIM2->CNTRL = (u8)TIM2_CNTRL_RESET_VALUE;
  89  002c 725f530b      	clr	21259
  90                     ; 83   TIM2->PSCR = (u8)TIM2_PSCR_RESET_VALUE;
  92  0030 725f530c      	clr	21260
  93                     ; 84   TIM2->ARRH  = (u8)TIM2_ARRH_RESET_VALUE;
  95  0034 35ff530d      	mov	21261,#255
  96                     ; 85   TIM2->ARRL  = (u8)TIM2_ARRL_RESET_VALUE;
  98  0038 35ff530e      	mov	21262,#255
  99                     ; 86   TIM2->CCR1H = (u8)TIM2_CCR1H_RESET_VALUE;
 101  003c 725f530f      	clr	21263
 102                     ; 87   TIM2->CCR1L = (u8)TIM2_CCR1L_RESET_VALUE;
 104  0040 725f5310      	clr	21264
 105                     ; 88   TIM2->CCR2H = (u8)TIM2_CCR2H_RESET_VALUE;
 107  0044 725f5311      	clr	21265
 108                     ; 89   TIM2->CCR2L = (u8)TIM2_CCR2L_RESET_VALUE;
 110  0048 725f5312      	clr	21266
 111                     ; 90   TIM2->CCR3H = (u8)TIM2_CCR3H_RESET_VALUE;
 113  004c 725f5313      	clr	21267
 114                     ; 91   TIM2->CCR3L = (u8)TIM2_CCR3L_RESET_VALUE;
 116  0050 725f5314      	clr	21268
 117                     ; 92   TIM2->SR1 = (u8)TIM2_SR1_RESET_VALUE;
 119  0054 725f5302      	clr	21250
 120                     ; 93 }
 123  0058 81            	ret	
 291                     ; 113 void TIM2_TimeBaseInit( TIM2_Prescaler_TypeDef TIM2_Prescaler,
 291                     ; 114                         u16 TIM2_Period)
 291                     ; 115 {
 292                     	switch	.text
 293  0059               _TIM2_TimeBaseInit:
 295       00000000      OFST:	set	0
 298                     ; 117   TIM2->PSCR = (u8)(TIM2_Prescaler);
 300  0059 c7530c        	ld	21260,a
 301  005c 88            	push	a
 302                     ; 119   TIM2->ARRH = (u8)(TIM2_Period >> 8);
 304  005d 7b04          	ld	a,(OFST+4,sp)
 305  005f c7530d        	ld	21261,a
 306                     ; 120   TIM2->ARRL = (u8)(TIM2_Period);
 308  0062 7b05          	ld	a,(OFST+5,sp)
 309  0064 c7530e        	ld	21262,a
 310                     ; 121 }
 313  0067 84            	pop	a
 314  0068 81            	ret	
 471                     ; 145 void TIM2_OC1Init(TIM2_OCMode_TypeDef TIM2_OCMode,
 471                     ; 146                   TIM2_OutputState_TypeDef TIM2_OutputState,
 471                     ; 147                   u16 TIM2_Pulse,
 471                     ; 148                   TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
 471                     ; 149 {
 472                     	switch	.text
 473  0069               _TIM2_OC1Init:
 475  0069 89            	pushw	x
 476  006a 88            	push	a
 477       00000001      OFST:	set	1
 480                     ; 151   assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
 482                     ; 152   assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
 484                     ; 153   assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
 486                     ; 156   TIM2->CCER1 &= (u8)(~( TIM2_CCER1_CC1E | TIM2_CCER1_CC1P));
 488  006b c65308        	ld	a,21256
 489  006e a4fc          	and	a,#252
 490  0070 c75308        	ld	21256,a
 491                     ; 158   TIM2->CCER1 |= (u8)((TIM2_OutputState  & TIM2_CCER1_CC1E   ) | (TIM2_OCPolarity   & TIM2_CCER1_CC1P   ));
 493  0073 7b08          	ld	a,(OFST+7,sp)
 494  0075 a402          	and	a,#2
 495  0077 6b01          	ld	(OFST+0,sp),a
 496  0079 9f            	ld	a,xl
 497  007a a401          	and	a,#1
 498  007c 1a01          	or	a,(OFST+0,sp)
 499  007e ca5308        	or	a,21256
 500  0081 c75308        	ld	21256,a
 501                     ; 161   TIM2->CCMR1 = (u8)((TIM2->CCMR1 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
 503  0084 c65305        	ld	a,21253
 504  0087 a48f          	and	a,#143
 505  0089 1a02          	or	a,(OFST+1,sp)
 506  008b c75305        	ld	21253,a
 507                     ; 164   TIM2->CCR1H = (u8)(TIM2_Pulse >> 8);
 509  008e 7b06          	ld	a,(OFST+5,sp)
 510  0090 c7530f        	ld	21263,a
 511                     ; 165   TIM2->CCR1L = (u8)(TIM2_Pulse);
 513  0093 7b07          	ld	a,(OFST+6,sp)
 514  0095 c75310        	ld	21264,a
 515                     ; 166 }
 518  0098 5b03          	addw	sp,#3
 519  009a 81            	ret	
 583                     ; 190 void TIM2_OC2Init(TIM2_OCMode_TypeDef TIM2_OCMode,
 583                     ; 191                   TIM2_OutputState_TypeDef TIM2_OutputState,
 583                     ; 192                   u16 TIM2_Pulse,
 583                     ; 193                   TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
 583                     ; 194 {
 584                     	switch	.text
 585  009b               _TIM2_OC2Init:
 587  009b 89            	pushw	x
 588  009c 88            	push	a
 589       00000001      OFST:	set	1
 592                     ; 196   assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
 594                     ; 197   assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
 596                     ; 198   assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
 598                     ; 202   TIM2->CCER1 &= (u8)(~( TIM2_CCER1_CC2E |  TIM2_CCER1_CC2P ));
 600  009d c65308        	ld	a,21256
 601  00a0 a4cf          	and	a,#207
 602  00a2 c75308        	ld	21256,a
 603                     ; 204   TIM2->CCER1 |= (u8)((TIM2_OutputState  & TIM2_CCER1_CC2E   ) | \
 603                     ; 205                       (TIM2_OCPolarity   & TIM2_CCER1_CC2P   ));
 605  00a5 7b08          	ld	a,(OFST+7,sp)
 606  00a7 a420          	and	a,#32
 607  00a9 6b01          	ld	(OFST+0,sp),a
 608  00ab 9f            	ld	a,xl
 609  00ac a410          	and	a,#16
 610  00ae 1a01          	or	a,(OFST+0,sp)
 611  00b0 ca5308        	or	a,21256
 612  00b3 c75308        	ld	21256,a
 613                     ; 209   TIM2->CCMR2 = (u8)((TIM2->CCMR2 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
 615  00b6 c65306        	ld	a,21254
 616  00b9 a48f          	and	a,#143
 617  00bb 1a02          	or	a,(OFST+1,sp)
 618  00bd c75306        	ld	21254,a
 619                     ; 213   TIM2->CCR2H = (u8)(TIM2_Pulse >> 8);
 621  00c0 7b06          	ld	a,(OFST+5,sp)
 622  00c2 c75311        	ld	21265,a
 623                     ; 214   TIM2->CCR2L = (u8)(TIM2_Pulse);
 625  00c5 7b07          	ld	a,(OFST+6,sp)
 626  00c7 c75312        	ld	21266,a
 627                     ; 215 }
 630  00ca 5b03          	addw	sp,#3
 631  00cc 81            	ret	
 695                     ; 239 void TIM2_OC3Init(TIM2_OCMode_TypeDef TIM2_OCMode,
 695                     ; 240                   TIM2_OutputState_TypeDef TIM2_OutputState,
 695                     ; 241                   u16 TIM2_Pulse,
 695                     ; 242                   TIM2_OCPolarity_TypeDef TIM2_OCPolarity)
 695                     ; 243 {
 696                     	switch	.text
 697  00cd               _TIM2_OC3Init:
 699  00cd 89            	pushw	x
 700  00ce 88            	push	a
 701       00000001      OFST:	set	1
 704                     ; 245   assert_param(IS_TIM2_OC_MODE_OK(TIM2_OCMode));
 706                     ; 246   assert_param(IS_TIM2_OUTPUT_STATE_OK(TIM2_OutputState));
 708                     ; 247   assert_param(IS_TIM2_OC_POLARITY_OK(TIM2_OCPolarity));
 710                     ; 249   TIM2->CCER2 &= (u8)(~( TIM2_CCER2_CC3E  | TIM2_CCER2_CC3P));
 712  00cf c65309        	ld	a,21257
 713  00d2 a4fc          	and	a,#252
 714  00d4 c75309        	ld	21257,a
 715                     ; 251   TIM2->CCER2 |= (u8)((TIM2_OutputState  & TIM2_CCER2_CC3E   ) |  (TIM2_OCPolarity   & TIM2_CCER2_CC3P   ));
 717  00d7 7b08          	ld	a,(OFST+7,sp)
 718  00d9 a402          	and	a,#2
 719  00db 6b01          	ld	(OFST+0,sp),a
 720  00dd 9f            	ld	a,xl
 721  00de a401          	and	a,#1
 722  00e0 1a01          	or	a,(OFST+0,sp)
 723  00e2 ca5309        	or	a,21257
 724  00e5 c75309        	ld	21257,a
 725                     ; 254   TIM2->CCMR3 = (u8)((TIM2->CCMR3 & (u8)(~TIM2_CCMR_OCM)) | (u8)TIM2_OCMode);
 727  00e8 c65307        	ld	a,21255
 728  00eb a48f          	and	a,#143
 729  00ed 1a02          	or	a,(OFST+1,sp)
 730  00ef c75307        	ld	21255,a
 731                     ; 257   TIM2->CCR3H = (u8)(TIM2_Pulse >> 8);
 733  00f2 7b06          	ld	a,(OFST+5,sp)
 734  00f4 c75313        	ld	21267,a
 735                     ; 258   TIM2->CCR3L = (u8)(TIM2_Pulse);
 737  00f7 7b07          	ld	a,(OFST+6,sp)
 738  00f9 c75314        	ld	21268,a
 739                     ; 260 }
 742  00fc 5b03          	addw	sp,#3
 743  00fe 81            	ret	
 936                     ; 291 void TIM2_ICInit(TIM2_Channel_TypeDef TIM2_Channel,
 936                     ; 292                  TIM2_ICPolarity_TypeDef TIM2_ICPolarity,
 936                     ; 293                  TIM2_ICSelection_TypeDef TIM2_ICSelection,
 936                     ; 294                  TIM2_ICPSC_TypeDef TIM2_ICPrescaler,
 936                     ; 295                  u8 TIM2_ICFilter)
 936                     ; 296 {
 937                     	switch	.text
 938  00ff               _TIM2_ICInit:
 940  00ff 89            	pushw	x
 941       00000000      OFST:	set	0
 944                     ; 298   assert_param(IS_TIM2_CHANNEL_OK(TIM2_Channel));
 946                     ; 299   assert_param(IS_TIM2_IC_POLARITY_OK(TIM2_ICPolarity));
 948                     ; 300   assert_param(IS_TIM2_IC_SELECTION_OK(TIM2_ICSelection));
 950                     ; 301   assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_ICPrescaler));
 952                     ; 302   assert_param(IS_TIM2_IC_FILTER_OK(TIM2_ICFilter));
 954                     ; 304   if (TIM2_Channel == TIM2_CHANNEL_1)
 956  0100 9e            	ld	a,xh
 957  0101 4d            	tnz	a
 958  0102 2614          	jrne	L104
 959                     ; 307     TI1_Config(TIM2_ICPolarity,
 959                     ; 308                TIM2_ICSelection,
 959                     ; 309                TIM2_ICFilter);
 961  0104 7b07          	ld	a,(OFST+7,sp)
 962  0106 88            	push	a
 963  0107 7b06          	ld	a,(OFST+6,sp)
 964  0109 97            	ld	xl,a
 965  010a 7b03          	ld	a,(OFST+3,sp)
 966  010c 95            	ld	xh,a
 967  010d cd0410        	call	L3_TI1_Config
 969  0110 84            	pop	a
 970                     ; 312     TIM2_SetIC1Prescaler(TIM2_ICPrescaler);
 972  0111 7b06          	ld	a,(OFST+6,sp)
 973  0113 cd032c        	call	_TIM2_SetIC1Prescaler
 976  0116 202b          	jra	L304
 977  0118               L104:
 978                     ; 314   else if (TIM2_Channel == TIM2_CHANNEL_2)
 980  0118 7b01          	ld	a,(OFST+1,sp)
 981  011a 4a            	dec	a
 982  011b 2614          	jrne	L504
 983                     ; 317     TI2_Config(TIM2_ICPolarity,
 983                     ; 318                TIM2_ICSelection,
 983                     ; 319                TIM2_ICFilter);
 985  011d 7b07          	ld	a,(OFST+7,sp)
 986  011f 88            	push	a
 987  0120 7b06          	ld	a,(OFST+6,sp)
 988  0122 97            	ld	xl,a
 989  0123 7b03          	ld	a,(OFST+3,sp)
 990  0125 95            	ld	xh,a
 991  0126 cd0440        	call	L5_TI2_Config
 993  0129 84            	pop	a
 994                     ; 322     TIM2_SetIC2Prescaler(TIM2_ICPrescaler);
 996  012a 7b06          	ld	a,(OFST+6,sp)
 997  012c cd0339        	call	_TIM2_SetIC2Prescaler
1000  012f 2012          	jra	L304
1001  0131               L504:
1002                     ; 327     TI3_Config(TIM2_ICPolarity,
1002                     ; 328                TIM2_ICSelection,
1002                     ; 329                TIM2_ICFilter);
1004  0131 7b07          	ld	a,(OFST+7,sp)
1005  0133 88            	push	a
1006  0134 7b06          	ld	a,(OFST+6,sp)
1007  0136 97            	ld	xl,a
1008  0137 7b03          	ld	a,(OFST+3,sp)
1009  0139 95            	ld	xh,a
1010  013a cd0470        	call	L7_TI3_Config
1012  013d 84            	pop	a
1013                     ; 332     TIM2_SetIC3Prescaler(TIM2_ICPrescaler);
1015  013e 7b06          	ld	a,(OFST+6,sp)
1016  0140 cd0346        	call	_TIM2_SetIC3Prescaler
1018  0143               L304:
1019                     ; 334 }
1022  0143 85            	popw	x
1023  0144 81            	ret	
1119                     ; 363 void TIM2_PWMIConfig(TIM2_Channel_TypeDef TIM2_Channel,
1119                     ; 364                      TIM2_ICPolarity_TypeDef TIM2_ICPolarity,
1119                     ; 365                      TIM2_ICSelection_TypeDef TIM2_ICSelection,
1119                     ; 366                      TIM2_ICPSC_TypeDef TIM2_ICPrescaler,
1119                     ; 367                      u8 TIM2_ICFilter)
1119                     ; 368 {
1120                     	switch	.text
1121  0145               _TIM2_PWMIConfig:
1123  0145 89            	pushw	x
1124  0146 89            	pushw	x
1125       00000002      OFST:	set	2
1128                     ; 369   u8 icpolarity = (u8)TIM2_ICPOLARITY_RISING;
1130                     ; 370   u8 icselection = (u8)TIM2_ICSELECTION_DIRECTTI;
1132                     ; 373   assert_param(IS_TIM2_PWMI_CHANNEL_OK(TIM2_Channel));
1134                     ; 374   assert_param(IS_TIM2_IC_POLARITY_OK(TIM2_ICPolarity));
1136                     ; 375   assert_param(IS_TIM2_IC_SELECTION_OK(TIM2_ICSelection));
1138                     ; 376   assert_param(IS_TIM2_IC_PRESCALER_OK(TIM2_ICPrescaler));
1140                     ; 379   if (TIM2_ICPolarity != TIM2_ICPOLARITY_FALLING)
1142  0147 9f            	ld	a,xl
1143  0148 a144          	cp	a,#68
1144  014a 2706          	jreq	L754
1145                     ; 381     icpolarity = (u8)TIM2_ICPOLARITY_FALLING;
1147  014c a644          	ld	a,#68
1148  014e 6b01          	ld	(OFST-1,sp),a
1150  0150 2002          	jra	L164
1151  0152               L754:
1152                     ; 385     icpolarity = (u8)TIM2_ICPOLARITY_RISING;
1154  0152 0f01          	clr	(OFST-1,sp)
1155  0154               L164:
1156                     ; 389   if (TIM2_ICSelection == TIM2_ICSELECTION_DIRECTTI)
1158  0154 7b07          	ld	a,(OFST+5,sp)
1159  0156 4a            	dec	a
1160  0157 2604          	jrne	L364
1161                     ; 391     icselection = (u8)TIM2_ICSELECTION_INDIRECTTI;

⌨️ 快捷键说明

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