📄 stm8s_adc2.ls
字号:
985 00c6 26fc jrne L24
986 00c8 L04:
987 00c8 43 cpl a
988 00c9 c45406 and a,21510
990 00cc 2010 jp LC001
991 00ce L514:
992 ; 296 ADC2->TDRH |= (u8)((u8)0x01 << ((u8)ADC2_SchmittTriggerChannel - (u8)8));
994 00ce a008 sub a,#8
995 00d0 5f clrw x
996 00d1 97 ld xl,a
997 00d2 a601 ld a,#1
998 00d4 5d tnzw x
999 00d5 2704 jreq L44
1000 00d7 L64:
1001 00d7 48 sll a
1002 00d8 5a decw x
1003 00d9 26fc jrne L64
1004 00db L44:
1005 00db ca5406 or a,21510
1006 00de LC001:
1007 00de c75406 ld 21510,a
1008 00e1 L304:
1009 ; 300 }
1012 00e1 85 popw x
1013 00e2 81 ret
1070 ; 322 void ADC2_ConversionConfig(ADC2_ConvMode_TypeDef ADC2_ConversionMode, ADC2_Channel_TypeDef ADC2_Channel, ADC2_Align_TypeDef ADC2_Align)
1070 ; 323 {
1071 switch .text
1072 00e3 _ADC2_ConversionConfig:
1074 00000000 OFST: set 0
1077 ; 326 assert_param(IS_ADC2_CONVERSIONMODE_OK(ADC2_ConversionMode));
1079 ; 327 assert_param(IS_ADC2_CHANNEL_OK(ADC2_Channel));
1081 ; 328 assert_param(IS_ADC2_ALIGN_OK(ADC2_Align));
1083 ; 331 ADC2->CR2 &= (u8)(~ADC2_CR2_ALIGN);
1085 00e3 72175402 bres 21506,#3
1086 00e7 89 pushw x
1087 ; 333 ADC2->CR2 |= (u8)(ADC2_Align);
1089 00e8 c65402 ld a,21506
1090 00eb 1a05 or a,(OFST+5,sp)
1091 00ed c75402 ld 21506,a
1092 ; 335 if (ADC2_ConversionMode == ADC2_CONVERSIONMODE_CONTINUOUS)
1094 00f0 9e ld a,xh
1095 00f1 4a dec a
1096 00f2 2606 jrne L744
1097 ; 338 ADC2->CR1 |= ADC2_CR1_CONT;
1099 00f4 72125401 bset 21505,#1
1101 00f8 2004 jra L154
1102 00fa L744:
1103 ; 343 ADC2->CR1 &= (u8)(~ADC2_CR1_CONT);
1105 00fa 72135401 bres 21505,#1
1106 00fe L154:
1107 ; 347 ADC2->CSR &= (u8)(~ADC2_CSR_CH);
1109 00fe c65400 ld a,21504
1110 0101 a4f0 and a,#240
1111 0103 c75400 ld 21504,a
1112 ; 349 ADC2->CSR |= (u8)(ADC2_Channel);
1114 0106 c65400 ld a,21504
1115 0109 1a02 or a,(OFST+2,sp)
1116 010b c75400 ld 21504,a
1117 ; 351 }
1120 010e 85 popw x
1121 010f 81 ret
1167 ; 373 void ADC2_ExternalTriggerConfig(ADC2_ExtTrig_TypeDef ADC2_ExtTrigger, FunctionalState ADC2_ExtTrigState)
1167 ; 374 {
1168 switch .text
1169 0110 _ADC2_ExternalTriggerConfig:
1171 0110 89 pushw x
1172 00000000 OFST: set 0
1175 ; 377 assert_param(IS_ADC2_EXTTRIG_OK(ADC2_ExtTrigger));
1177 ; 378 assert_param(IS_FUNCTIONALSTATE_OK(ADC2_ExtTrigState));
1179 ; 381 ADC2->CR2 &= (u8)(~ADC2_CR2_EXTSEL);
1181 0111 c65402 ld a,21506
1182 0114 a4cf and a,#207
1183 0116 c75402 ld 21506,a
1184 ; 383 if (ADC2_ExtTrigState != DISABLE)
1186 0119 9f ld a,xl
1187 011a 4d tnz a
1188 011b 2706 jreq L574
1189 ; 386 ADC2->CR2 |= (u8)(ADC2_CR2_EXTTRIG);
1191 011d 721c5402 bset 21506,#6
1193 0121 2004 jra L774
1194 0123 L574:
1195 ; 391 ADC2->CR2 &= (u8)(~ADC2_CR2_EXTTRIG);
1197 0123 721d5402 bres 21506,#6
1198 0127 L774:
1199 ; 395 ADC2->CR2 |= (u8)(ADC2_ExtTrigger);
1201 0127 c65402 ld a,21506
1202 012a 1a01 or a,(OFST+1,sp)
1203 012c c75402 ld 21506,a
1204 ; 397 }
1207 012f 85 popw x
1208 0130 81 ret
1232 ; 417 void ADC2_StartConversion(void)
1232 ; 418 {
1233 switch .text
1234 0131 _ADC2_StartConversion:
1238 ; 419 ADC2->CR1 |= ADC2_CR1_ADON;
1240 0131 72105401 bset 21505,#0
1241 ; 420 }
1244 0135 81 ret
1288 ; 438 u16 ADC2_GetConversionValue(void)
1288 ; 439 {
1289 switch .text
1290 0136 _ADC2_GetConversionValue:
1292 0136 5205 subw sp,#5
1293 00000005 OFST: set 5
1296 ; 441 u16 temph = 0;
1298 ; 442 u8 templ = 0;
1300 ; 444 if (ADC2->CR2 & ADC2_CR2_ALIGN) /* Right alignment */
1302 0138 720754020e btjf 21506,#3,L335
1303 ; 447 templ = ADC2->DRL;
1305 013d c65405 ld a,21509
1306 0140 6b03 ld (OFST-2,sp),a
1307 ; 449 temph = ADC2->DRH;
1309 0142 c65404 ld a,21508
1310 0145 97 ld xl,a
1311 ; 451 temph = (u16)(templ | (u16)(temph << (u8)8));
1313 0146 7b03 ld a,(OFST-2,sp)
1314 0148 02 rlwa x,a
1316 0149 201a jra L535
1317 014b L335:
1318 ; 456 temph = ADC2->DRH;
1320 014b c65404 ld a,21508
1321 014e 97 ld xl,a
1322 ; 458 templ = ADC2->DRL;
1324 014f c65405 ld a,21509
1325 0152 6b03 ld (OFST-2,sp),a
1326 ; 460 temph = (u16)((u16)(templ << (u8)6) | (u16)(temph << (u8)8));
1328 0154 4f clr a
1329 0155 02 rlwa x,a
1330 0156 1f01 ldw (OFST-4,sp),x
1331 0158 7b03 ld a,(OFST-2,sp)
1332 015a 97 ld xl,a
1333 015b a640 ld a,#64
1334 015d 42 mul x,a
1335 015e 01 rrwa x,a
1336 015f 1a02 or a,(OFST-3,sp)
1337 0161 01 rrwa x,a
1338 0162 1a01 or a,(OFST-4,sp)
1339 0164 01 rrwa x,a
1340 0165 L535:
1341 ; 463 return ((u16)temph);
1345 0165 5b05 addw sp,#5
1346 0167 81 ret
1390 ; 483 FlagStatus ADC2_GetFlagStatus(void)
1390 ; 484 {
1391 switch .text
1392 0168 _ADC2_GetFlagStatus:
1396 ; 486 return ((u8)(ADC2->CSR & ADC2_CSR_EOC));
1398 0168 c65400 ld a,21504
1399 016b a480 and a,#128
1402 016d 81 ret
1425 ; 505 void ADC2_ClearFlag(void)
1425 ; 506 {
1426 switch .text
1427 016e _ADC2_ClearFlag:
1431 ; 507 ADC2->CSR &= (u8)(~ADC2_CSR_EOC);
1433 016e 721f5400 bres 21504,#7
1434 ; 508 }
1437 0172 81 ret
1461 ; 526 ITStatus ADC2_GetITStatus(void)
1461 ; 527 {
1462 switch .text
1463 0173 _ADC2_GetITStatus:
1467 ; 528 return ((u8)(ADC2->CSR & ADC2_CSR_EOC));
1469 0173 c65400 ld a,21504
1470 0176 a480 and a,#128
1473 0178 81 ret
1497 ; 546 void ADC2_ClearITPendingBit(void)
1497 ; 547 {
1498 switch .text
1499 0179 _ADC2_ClearITPendingBit:
1503 ; 548 ADC2->CSR &= (u8)(~ADC2_CSR_EOC);
1505 0179 721f5400 bres 21504,#7
1506 ; 549 }
1509 017d 81 ret
1522 xdef _ADC2_ClearITPendingBit
1523 xdef _ADC2_GetITStatus
1524 xdef _ADC2_ClearFlag
1525 xdef _ADC2_GetFlagStatus
1526 xdef _ADC2_GetConversionValue
1527 xdef _ADC2_StartConversion
1528 xdef _ADC2_ExternalTriggerConfig
1529 xdef _ADC2_ConversionConfig
1530 xdef _ADC2_SchmittTriggerConfig
1531 xdef _ADC2_PrescalerConfig
1532 xdef _ADC2_ITConfig
1533 xdef _ADC2_Cmd
1534 xdef _ADC2_Init
1535 xdef _ADC2_DeInit
1554 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -