📄 stm8s_exti.ls
字号:
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 EXTI_DeInit(void)
33 ; 64 {
35 switch .text
36 0000 _EXTI_DeInit:
40 ; 65 EXTI->CR1 = EXTI_CR1_RESET_VALUE;
42 0000 725f50a0 clr 20640
43 ; 66 EXTI->CR2 = EXTI_CR2_RESET_VALUE;
45 0004 725f50a1 clr 20641
46 ; 67 }
49 0008 81 ret
174 ; 86 void EXTI_SetExtIntSensitivity(EXTI_Port_TypeDef Port, EXTI_Sensitivity_TypeDef SensitivityValue)
174 ; 87 {
175 switch .text
176 0009 _EXTI_SetExtIntSensitivity:
178 0009 89 pushw x
179 00000000 OFST: set 0
182 ; 90 assert_param(IS_EXTI_PORT_OK(Port));
184 ; 91 assert_param(IS_EXTI_SENSITIVITY_OK(SensitivityValue));
186 ; 94 switch (Port)
188 000a 9e ld a,xh
190 ; 116 default:
190 ; 117 break;
191 000b 4d tnz a
192 000c 270e jreq L12
193 000e 4a dec a
194 000f 271a jreq L32
195 0011 4a dec a
196 0012 2725 jreq L52
197 0014 4a dec a
198 0015 2731 jreq L72
199 0017 4a dec a
200 0018 2745 jreq L13
201 001a 2053 jra L311
202 001c L12:
203 ; 96 case EXTI_PORT_GPIOA:
203 ; 97 EXTI->CR1 &= (u8)(~EXTI_CR1_PAIS);
205 001c c650a0 ld a,20640
206 001f a4fc and a,#252
207 0021 c750a0 ld 20640,a
208 ; 98 EXTI->CR1 |= (u8)(SensitivityValue);
210 0024 c650a0 ld a,20640
211 0027 1a02 or a,(OFST+2,sp)
212 ; 99 break;
214 0029 202f jp LC001
215 002b L32:
216 ; 100 case EXTI_PORT_GPIOB:
216 ; 101 EXTI->CR1 &= (u8)(~EXTI_CR1_PBIS);
218 002b c650a0 ld a,20640
219 002e a4f3 and a,#243
220 0030 c750a0 ld 20640,a
221 ; 102 EXTI->CR1 |= (u8)((u8)(SensitivityValue) << 2);
223 0033 7b02 ld a,(OFST+2,sp)
224 0035 48 sll a
225 0036 48 sll a
226 ; 103 break;
228 0037 201e jp LC002
229 0039 L52:
230 ; 104 case EXTI_PORT_GPIOC:
230 ; 105 EXTI->CR1 &= (u8)(~EXTI_CR1_PCIS);
232 0039 c650a0 ld a,20640
233 003c a4cf and a,#207
234 003e c750a0 ld 20640,a
235 ; 106 EXTI->CR1 |= (u8)((u8)(SensitivityValue) << 4);
237 0041 7b02 ld a,(OFST+2,sp)
238 0043 97 ld xl,a
239 0044 a610 ld a,#16
240 ; 107 break;
242 0046 200d jp LC003
243 0048 L72:
244 ; 108 case EXTI_PORT_GPIOD:
244 ; 109 EXTI->CR1 &= (u8)(~EXTI_CR1_PDIS);
246 0048 c650a0 ld a,20640
247 004b a43f and a,#63
248 004d c750a0 ld 20640,a
249 ; 110 EXTI->CR1 |= (u8)((u8)(SensitivityValue) << 6);
251 0050 7b02 ld a,(OFST+2,sp)
252 0052 97 ld xl,a
253 0053 a640 ld a,#64
254 0055 LC003:
255 0055 42 mul x,a
256 0056 9f ld a,xl
257 0057 LC002:
258 0057 ca50a0 or a,20640
259 005a LC001:
260 005a c750a0 ld 20640,a
261 ; 111 break;
263 005d 2010 jra L311
264 005f L13:
265 ; 112 case EXTI_PORT_GPIOE:
265 ; 113 EXTI->CR2 &= (u8)(~EXTI_CR2_PEIS);
267 005f c650a1 ld a,20641
268 0062 a4fc and a,#252
269 0064 c750a1 ld 20641,a
270 ; 114 EXTI->CR2 |= (u8)(SensitivityValue);
272 0067 c650a1 ld a,20641
273 006a 1a02 or a,(OFST+2,sp)
274 006c c750a1 ld 20641,a
275 ; 115 break;
277 ; 116 default:
277 ; 117 break;
279 006f L311:
280 ; 119 }
283 006f 85 popw x
284 0070 81 ret
342 ; 134 void EXTI_SetTLISensitivity(EXTI_TLISensitivity_TypeDef SensitivityValue)
342 ; 135 {
343 switch .text
344 0071 _EXTI_SetTLISensitivity:
348 ; 138 assert_param(IS_EXTI_TLISENSITIVITY_OK(SensitivityValue));
350 ; 141 EXTI->CR2 &= (u8)(~EXTI_CR2_TLIS);
352 0071 721550a1 bres 20641,#2
353 ; 142 EXTI->CR2 |= (u8)(SensitivityValue);
355 0075 ca50a1 or a,20641
356 0078 c750a1 ld 20641,a
357 ; 144 }
360 007b 81 ret
406 ; 161 EXTI_Sensitivity_TypeDef EXTI_GetExtIntSensitivity(EXTI_Port_TypeDef Port)
406 ; 162 {
407 switch .text
408 007c _EXTI_GetExtIntSensitivity:
410 007c 88 push a
411 00000001 OFST: set 1
414 ; 164 u8 value = 0;
416 007d 0f01 clr (OFST+0,sp)
417 ; 167 assert_param(IS_EXTI_PORT_OK(Port));
419 ; 169 switch (Port)
422 ; 186 default:
422 ; 187 break;
423 007f 4d tnz a
424 0080 2710 jreq L341
425 0082 4a dec a
426 0083 2712 jreq L541
427 0085 4a dec a
428 0086 2718 jreq L741
429 0088 4a dec a
430 0089 271b jreq L151
431 008b 4a dec a
432 008c 2722 jreq L351
433 008e 7b01 ld a,(OFST+0,sp)
434 0090 2023 jra LC004
435 0092 L341:
436 ; 171 case EXTI_PORT_GPIOA:
436 ; 172 value = (u8)(EXTI->CR1 & EXTI_CR1_PAIS);
438 0092 c650a0 ld a,20640
439 ; 173 break;
441 0095 201c jp LC005
442 0097 L541:
443 ; 174 case EXTI_PORT_GPIOB:
443 ; 175 value = (u8)((EXTI->CR1 & EXTI_CR1_PBIS) >> 2);
445 0097 c650a0 ld a,20640
446 009a a40c and a,#12
447 009c 44 srl a
448 009d 44 srl a
449 ; 176 break;
451 009e 2015 jp LC004
452 00a0 L741:
453 ; 177 case EXTI_PORT_GPIOC:
453 ; 178 value = (u8)((EXTI->CR1 & EXTI_CR1_PCIS) >> 4);
455 00a0 c650a0 ld a,20640
456 00a3 4e swap a
457 ; 179 break;
459 00a4 200d jp LC005
460 00a6 L151:
461 ; 180 case EXTI_PORT_GPIOD:
461 ; 181 value = (u8)((EXTI->CR1 & EXTI_CR1_PDIS) >> 6);
463 00a6 c650a0 ld a,20640
464 00a9 4e swap a
465 00aa a40c and a,#12
466 00ac 44 srl a
467 00ad 44 srl a
468 ; 182 break;
470 00ae 2003 jp LC005
471 00b0 L351:
472 ; 183 case EXTI_PORT_GPIOE:
472 ; 184 value = (u8)(EXTI->CR2 & EXTI_CR2_PEIS);
474 00b0 c650a1 ld a,20641
475 00b3 LC005:
476 00b3 a403 and a,#3
477 00b5 LC004:
478 ; 185 break;
480 ; 186 default:
480 ; 187 break;
482 ; 190 return((EXTI_Sensitivity_TypeDef)value);
486 00b5 5b01 addw sp,#1
487 00b7 81 ret
523 ; 210 EXTI_TLISensitivity_TypeDef EXTI_GetTLISensitivity(void)
523 ; 211 {
524 switch .text
525 00b8 _EXTI_GetTLISensitivity:
527 00b8 88 push a
528 00000001 OFST: set 1
531 ; 216 value = (u8)(EXTI->CR2 & EXTI_CR2_TLIS);
533 00b9 c650a1 ld a,20641
534 00bc a404 and a,#4
535 ; 218 return((EXTI_TLISensitivity_TypeDef)value);
539 00be 5b01 addw sp,#1
540 00c0 81 ret
553 xdef _EXTI_GetTLISensitivity
554 xdef _EXTI_GetExtIntSensitivity
555 xdef _EXTI_SetTLISensitivity
556 xdef _EXTI_SetExtIntSensitivity
557 xdef _EXTI_DeInit
576 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -