📄 stm8s_exti.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.8.32.1 - 30 Mar 2010
3 ; Generator V4.3.4 - 23 Mar 2010
43 ; 63 void EXTI_DeInit(void)
43 ; 64 {
45 switch .text
46 0000 _EXTI_DeInit:
50 ; 65 EXTI->CR1 = EXTI_CR1_RESET_VALUE;
52 0000 725f50a0 clr 20640
53 ; 66 EXTI->CR2 = EXTI_CR2_RESET_VALUE;
55 0004 725f50a1 clr 20641
56 ; 67 }
59 0008 81 ret
184 ; 86 void EXTI_SetExtIntSensitivity(EXTI_Port_TypeDef Port, EXTI_Sensitivity_TypeDef SensitivityValue)
184 ; 87 {
185 switch .text
186 0009 _EXTI_SetExtIntSensitivity:
188 0009 89 pushw x
189 00000000 OFST: set 0
192 ; 90 assert_param(IS_EXTI_PORT_OK(Port));
194 ; 91 assert_param(IS_EXTI_SENSITIVITY_OK(SensitivityValue));
196 ; 94 switch (Port)
198 000a 9e ld a,xh
200 ; 116 default:
200 ; 117 break;
201 000b 4d tnz a
202 000c 270e jreq L12
203 000e 4a dec a
204 000f 271d jreq L32
205 0011 4a dec a
206 0012 272e jreq L52
207 0014 4a dec a
208 0015 2742 jreq L72
209 0017 4a dec a
210 0018 2756 jreq L13
211 001a 2064 jra L311
212 001c L12:
213 ; 96 case EXTI_PORT_GPIOA:
213 ; 97 EXTI->CR1 &= (u8)(~EXTI_CR1_PAIS);
215 001c c650a0 ld a,20640
216 001f a4fc and a,#252
217 0021 c750a0 ld 20640,a
218 ; 98 EXTI->CR1 |= (u8)(SensitivityValue);
220 0024 c650a0 ld a,20640
221 0027 1a02 or a,(OFST+2,sp)
222 0029 c750a0 ld 20640,a
223 ; 99 break;
225 002c 2052 jra L311
226 002e L32:
227 ; 100 case EXTI_PORT_GPIOB:
227 ; 101 EXTI->CR1 &= (u8)(~EXTI_CR1_PBIS);
229 002e c650a0 ld a,20640
230 0031 a4f3 and a,#243
231 0033 c750a0 ld 20640,a
232 ; 102 EXTI->CR1 |= (u8)((u8)(SensitivityValue) << 2);
234 0036 7b02 ld a,(OFST+2,sp)
235 0038 48 sll a
236 0039 48 sll a
237 003a ca50a0 or a,20640
238 003d c750a0 ld 20640,a
239 ; 103 break;
241 0040 203e jra L311
242 0042 L52:
243 ; 104 case EXTI_PORT_GPIOC:
243 ; 105 EXTI->CR1 &= (u8)(~EXTI_CR1_PCIS);
245 0042 c650a0 ld a,20640
246 0045 a4cf and a,#207
247 0047 c750a0 ld 20640,a
248 ; 106 EXTI->CR1 |= (u8)((u8)(SensitivityValue) << 4);
250 004a 7b02 ld a,(OFST+2,sp)
251 004c 97 ld xl,a
252 004d a610 ld a,#16
253 004f 42 mul x,a
254 0050 9f ld a,xl
255 0051 ca50a0 or a,20640
256 0054 c750a0 ld 20640,a
257 ; 107 break;
259 0057 2027 jra L311
260 0059 L72:
261 ; 108 case EXTI_PORT_GPIOD:
261 ; 109 EXTI->CR1 &= (u8)(~EXTI_CR1_PDIS);
263 0059 c650a0 ld a,20640
264 005c a43f and a,#63
265 005e c750a0 ld 20640,a
266 ; 110 EXTI->CR1 |= (u8)((u8)(SensitivityValue) << 6);
268 0061 7b02 ld a,(OFST+2,sp)
269 0063 97 ld xl,a
270 0064 a640 ld a,#64
271 0066 42 mul x,a
272 0067 9f ld a,xl
273 0068 ca50a0 or a,20640
274 006b c750a0 ld 20640,a
275 ; 111 break;
277 006e 2010 jra L311
278 0070 L13:
279 ; 112 case EXTI_PORT_GPIOE:
279 ; 113 EXTI->CR2 &= (u8)(~EXTI_CR2_PEIS);
281 0070 c650a1 ld a,20641
282 0073 a4fc and a,#252
283 0075 c750a1 ld 20641,a
284 ; 114 EXTI->CR2 |= (u8)(SensitivityValue);
286 0078 c650a1 ld a,20641
287 007b 1a02 or a,(OFST+2,sp)
288 007d c750a1 ld 20641,a
289 ; 115 break;
291 0080 L33:
292 ; 116 default:
292 ; 117 break;
294 0080 L311:
295 ; 119 }
298 0080 85 popw x
299 0081 81 ret
357 ; 134 void EXTI_SetTLISensitivity(EXTI_TLISensitivity_TypeDef SensitivityValue)
357 ; 135 {
358 switch .text
359 0082 _EXTI_SetTLISensitivity:
363 ; 138 assert_param(IS_EXTI_TLISENSITIVITY_OK(SensitivityValue));
365 ; 141 EXTI->CR2 &= (u8)(~EXTI_CR2_TLIS);
367 0082 721550a1 bres 20641,#2
368 ; 142 EXTI->CR2 |= (u8)(SensitivityValue);
370 0086 ca50a1 or a,20641
371 0089 c750a1 ld 20641,a
372 ; 144 }
375 008c 81 ret
419 ; 161 EXTI_Sensitivity_TypeDef EXTI_GetExtIntSensitivity(EXTI_Port_TypeDef Port)
419 ; 162 {
420 switch .text
421 008d _EXTI_GetExtIntSensitivity:
423 008d 88 push a
424 00000001 OFST: set 1
427 ; 164 u8 value = 0;
429 008e 0f01 clr (OFST+0,sp)
430 ; 167 assert_param(IS_EXTI_PORT_OK(Port));
432 ; 169 switch (Port)
435 ; 186 default:
435 ; 187 break;
436 0090 4d tnz a
437 0091 270e jreq L341
438 0093 4a dec a
439 0094 2714 jreq L541
440 0096 4a dec a
441 0097 271c jreq L741
442 0099 4a dec a
443 009a 2725 jreq L151
444 009c 4a dec a
445 009d 2730 jreq L351
446 009f 2035 jra L102
447 00a1 L341:
448 ; 171 case EXTI_PORT_GPIOA:
448 ; 172 value = (u8)(EXTI->CR1 & EXTI_CR1_PAIS);
450 00a1 c650a0 ld a,20640
451 00a4 a403 and a,#3
452 00a6 6b01 ld (OFST+0,sp),a
453 ; 173 break;
455 00a8 202c jra L102
456 00aa L541:
457 ; 174 case EXTI_PORT_GPIOB:
457 ; 175 value = (u8)((EXTI->CR1 & EXTI_CR1_PBIS) >> 2);
459 00aa c650a0 ld a,20640
460 00ad a40c and a,#12
461 00af 44 srl a
462 00b0 44 srl a
463 00b1 6b01 ld (OFST+0,sp),a
464 ; 176 break;
466 00b3 2021 jra L102
467 00b5 L741:
468 ; 177 case EXTI_PORT_GPIOC:
468 ; 178 value = (u8)((EXTI->CR1 & EXTI_CR1_PCIS) >> 4);
470 00b5 c650a0 ld a,20640
471 00b8 a430 and a,#48
472 00ba 4e swap a
473 00bb a40f and a,#15
474 00bd 6b01 ld (OFST+0,sp),a
475 ; 179 break;
477 00bf 2015 jra L102
478 00c1 L151:
479 ; 180 case EXTI_PORT_GPIOD:
479 ; 181 value = (u8)((EXTI->CR1 & EXTI_CR1_PDIS) >> 6);
481 00c1 c650a0 ld a,20640
482 00c4 a4c0 and a,#192
483 00c6 4e swap a
484 00c7 44 srl a
485 00c8 44 srl a
486 00c9 a403 and a,#3
487 00cb 6b01 ld (OFST+0,sp),a
488 ; 182 break;
490 00cd 2007 jra L102
491 00cf L351:
492 ; 183 case EXTI_PORT_GPIOE:
492 ; 184 value = (u8)(EXTI->CR2 & EXTI_CR2_PEIS);
494 00cf c650a1 ld a,20641
495 00d2 a403 and a,#3
496 00d4 6b01 ld (OFST+0,sp),a
497 ; 185 break;
499 00d6 L551:
500 ; 186 default:
500 ; 187 break;
502 00d6 L102:
503 ; 190 return((EXTI_Sensitivity_TypeDef)value);
505 00d6 7b01 ld a,(OFST+0,sp)
508 00d8 5b01 addw sp,#1
509 00da 81 ret
543 ; 210 EXTI_TLISensitivity_TypeDef EXTI_GetTLISensitivity(void)
543 ; 211 {
544 switch .text
545 00db _EXTI_GetTLISensitivity:
547 00db 88 push a
548 00000001 OFST: set 1
551 ; 216 value = (u8)(EXTI->CR2 & EXTI_CR2_TLIS);
553 00dc c650a1 ld a,20641
554 00df a404 and a,#4
555 00e1 6b01 ld (OFST+0,sp),a
556 ; 218 return((EXTI_TLISensitivity_TypeDef)value);
558 00e3 7b01 ld a,(OFST+0,sp)
561 00e5 5b01 addw sp,#1
562 00e7 81 ret
575 xdef _EXTI_GetTLISensitivity
576 xdef _EXTI_GetExtIntSensitivity
577 xdef _EXTI_SetTLISensitivity
578 xdef _EXTI_SetExtIntSensitivity
579 xdef _EXTI_DeInit
598 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -