📄 stm8s_adc1.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Generator V4.2.8 - 03 Dec 2008
32 ; 47 void ADC1_DeInit(void)
32 ; 48 {
34 switch .text
35 0000 _ADC1_DeInit:
39 ; 49 ADC1->CSR = ADC1_CSR_RESET_VALUE;
41 0000 725f5400 clr 21504
42 ; 50 ADC1->CR1 = ADC1_CR1_RESET_VALUE;
44 0004 725f5401 clr 21505
45 ; 51 ADC1->CR2 = ADC1_CR2_RESET_VALUE;
47 0008 725f5402 clr 21506
48 ; 52 ADC1->CR3 = ADC1_CR3_RESET_VALUE;
50 000c 725f5403 clr 21507
51 ; 53 ADC1->TDRH = ADC1_TDRH_RESET_VALUE;
53 0010 725f5406 clr 21510
54 ; 54 ADC1->TDRL = ADC1_TDRL_RESET_VALUE;
56 0014 725f5407 clr 21511
57 ; 55 ADC1->HTRH = ADC1_HTRH_RESET_VALUE;
59 0018 35ff5408 mov 21512,#255
60 ; 56 ADC1->HTRL = ADC1_HTRL_RESET_VALUE;
62 001c 35035409 mov 21513,#3
63 ; 57 ADC1->LTRH = ADC1_LTRH_RESET_VALUE;
65 0020 725f540a clr 21514
66 ; 58 ADC1->LTRL = ADC1_LTRL_RESET_VALUE;
68 0024 725f540b clr 21515
69 ; 59 ADC1->AWCRH = ADC1_AWCRH_RESET_VALUE;
71 0028 725f540e clr 21518
72 ; 60 ADC1->AWCRL = ADC1_AWCRL_RESET_VALUE;
74 002c 725f540f clr 21519
75 ; 61 }
78 0030 81 ret
514 ; 84 void ADC1_Init(ADC1_ConvMode_TypeDef ADC1_ConversionMode, ADC1_Channel_TypeDef ADC1_Channel, ADC1_PresSel_TypeDef ADC1_PrescalerSelection, ADC1_ExtTrig_TypeDef ADC1_ExtTrigger, FunctionalState ADC1_ExtTriggerState, ADC1_Align_TypeDef ADC1_Align, ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel, FunctionalState ADC1_SchmittTriggerState)
514 ; 85 {
515 switch .text
516 0031 _ADC1_Init:
518 0031 89 pushw x
519 00000000 OFST: set 0
522 ; 88 assert_param(IS_ADC1_CONVERSIONMODE_OK(ADC1_ConversionMode));
524 ; 89 assert_param(IS_ADC1_CHANNEL_OK(ADC1_Channel));
526 ; 90 assert_param(IS_ADC1_PRESSEL_OK(ADC1_PrescalerSelection));
528 ; 91 assert_param(IS_ADC1_EXTTRIG_OK(ADC1_ExtTrigger));
530 ; 92 assert_param(IS_FUNCTIONALSTATE_OK(((ADC1_ExtTriggerState))));
532 ; 93 assert_param(IS_ADC1_ALIGN_OK(ADC1_Align));
534 ; 94 assert_param(IS_ADC1_SCHMITTTRIG_OK(ADC1_SchmittTriggerChannel));
536 ; 95 assert_param(IS_FUNCTIONALSTATE_OK(ADC1_SchmittTriggerState));
538 ; 100 ADC1_ConversionConfig(ADC1_ConversionMode, ADC1_Channel, ADC1_Align);
540 0032 7b08 ld a,(OFST+8,sp)
541 0034 88 push a
542 0035 9f ld a,xl
543 0036 97 ld xl,a
544 0037 7b02 ld a,(OFST+2,sp)
545 0039 95 ld xh,a
546 003a cd013d call _ADC1_ConversionConfig
548 003d 84 pop a
549 ; 102 ADC1_PrescalerConfig(ADC1_PrescalerSelection);
551 003e 7b05 ld a,(OFST+5,sp)
552 0040 ad5a call _ADC1_PrescalerConfig
554 ; 107 ADC1_ExternalTriggerConfig(ADC1_ExtTrigger, ADC1_ExtTriggerState);
556 0042 7b07 ld a,(OFST+7,sp)
557 0044 97 ld xl,a
558 0045 7b06 ld a,(OFST+6,sp)
559 0047 95 ld xh,a
560 0048 cd016b call _ADC1_ExternalTriggerConfig
562 ; 112 ADC1_SchmittTriggerConfig(ADC1_SchmittTriggerChannel, ADC1_SchmittTriggerState);
564 004b 7b0a ld a,(OFST+10,sp)
565 004d 97 ld xl,a
566 004e 7b09 ld a,(OFST+9,sp)
567 0050 95 ld xh,a
568 0051 ad5c call _ADC1_SchmittTriggerConfig
570 ; 115 ADC1->CR1 |= ADC1_CR1_ADON;
572 0053 72105401 bset 21505,#0
573 ; 117 }
576 0057 85 popw x
577 0058 81 ret
612 ; 125 void ADC1_Cmd(FunctionalState NewState)
612 ; 126 {
613 switch .text
614 0059 _ADC1_Cmd:
618 ; 129 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
620 ; 131 if (NewState != DISABLE)
622 0059 4d tnz a
623 005a 2706 jreq L752
624 ; 133 ADC1->CR1 |= ADC1_CR1_ADON;
626 005c 72105401 bset 21505,#0
628 0060 2004 jra L162
629 0062 L752:
630 ; 137 ADC1->CR1 &= (u8)(~ADC1_CR1_ADON);
632 0062 72115401 bres 21505,#0
633 0066 L162:
634 ; 140 }
637 0066 81 ret
672 ; 147 void ADC1_ScanModeCmd(FunctionalState NewState)
672 ; 148 {
673 switch .text
674 0067 _ADC1_ScanModeCmd:
678 ; 151 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
680 ; 153 if (NewState != DISABLE)
682 0067 4d tnz a
683 0068 2706 jreq L103
684 ; 155 ADC1->CR2 |= ADC1_CR2_SCAN;
686 006a 72125402 bset 21506,#1
688 006e 2004 jra L303
689 0070 L103:
690 ; 159 ADC1->CR2 &= (u8)(~ADC1_CR2_SCAN);
692 0070 72135402 bres 21506,#1
693 0074 L303:
694 ; 162 }
697 0074 81 ret
732 ; 169 void ADC1_DataBufferCmd(FunctionalState NewState)
732 ; 170 {
733 switch .text
734 0075 _ADC1_DataBufferCmd:
738 ; 173 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
740 ; 175 if (NewState != DISABLE)
742 0075 4d tnz a
743 0076 2706 jreq L323
744 ; 177 ADC1->CR3 |= ADC1_CR3_DBUF;
746 0078 721e5403 bset 21507,#7
748 007c 2004 jra L523
749 007e L323:
750 ; 181 ADC1->CR3 &= (u8)(~ADC1_CR3_DBUF);
752 007e 721f5403 bres 21507,#7
753 0082 L523:
754 ; 184 }
757 0082 81 ret
906 ; 195 void ADC1_ITConfig(ADC1_IT_TypeDef ADC1_IT, FunctionalState NewState)
906 ; 196 {
907 switch .text
908 0083 _ADC1_ITConfig:
910 0083 89 pushw x
911 00000000 OFST: set 0
914 ; 199 assert_param(IS_ADC1_IT_OK(ADC1_IT));
916 ; 200 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
918 ; 202 if (NewState != DISABLE)
920 0084 0d05 tnz (OFST+5,sp)
921 0086 2709 jreq L114
922 ; 205 ADC1->CSR |= (u8)ADC1_IT;
924 0088 9f ld a,xl
925 0089 ca5400 or a,21504
926 008c c75400 ld 21504,a
928 008f 2009 jra L314
929 0091 L114:
930 ; 210 ADC1->CSR &= (u8)(~ADC1_IT);
932 0091 7b02 ld a,(OFST+2,sp)
933 0093 43 cpl a
934 0094 c45400 and a,21504
935 0097 c75400 ld 21504,a
936 009a L314:
937 ; 213 }
940 009a 85 popw x
941 009b 81 ret
977 ; 221 void ADC1_PrescalerConfig(ADC1_PresSel_TypeDef ADC1_Prescaler)
977 ; 222 {
978 switch .text
979 009c _ADC1_PrescalerConfig:
981 009c 88 push a
982 00000000 OFST: set 0
985 ; 225 assert_param(IS_ADC1_PRESSEL_OK(ADC1_Prescaler));
987 ; 228 ADC1->CR1 &= (u8)(~ADC1_CR1_SPSEL);
989 009d c65401 ld a,21505
990 00a0 a48f and a,#143
991 00a2 c75401 ld 21505,a
992 ; 230 ADC1->CR1 |= (u8)(ADC1_Prescaler);
994 00a5 c65401 ld a,21505
995 00a8 1a01 or a,(OFST+1,sp)
996 00aa c75401 ld 21505,a
997 ; 232 }
1000 00ad 84 pop a
1001 00ae 81 ret
1048 ; 243 void ADC1_SchmittTriggerConfig(ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel, FunctionalState NewState)
1048 ; 244 {
1049 switch .text
1050 00af _ADC1_SchmittTriggerConfig:
1052 00af 89 pushw x
1053 00000000 OFST: set 0
1056 ; 247 assert_param(IS_ADC1_SCHMITTTRIG_OK(ADC1_SchmittTriggerChannel));
1058 ; 248 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
1060 ; 250 if (ADC1_SchmittTriggerChannel == ADC1_SCHMITTTRIG_ALL)
1062 00b0 9e ld a,xh
1063 00b1 a1ff cp a,#255
1064 00b3 2620 jrne L554
1065 ; 252 if (NewState != DISABLE)
1067 00b5 9f ld a,xl
1068 00b6 4d tnz a
1069 00b7 270a jreq L754
1070 ; 254 ADC1->TDRL &= (u8)0x0;
1072 00b9 725f5407 clr 21511
1073 ; 255 ADC1->TDRH &= (u8)0x0;
1075 00bd 725f5406 clr 21510
1077 00c1 2078 jra L364
1078 00c3 L754:
1079 ; 259 ADC1->TDRL |= (u8)0xFF;
1081 00c3 c65407 ld a,21511
1082 00c6 aaff or a,#255
1083 00c8 c75407 ld 21511,a
1084 ; 260 ADC1->TDRH |= (u8)0xFF;
1086 00cb c65406 ld a,21510
1087 00ce aaff or a,#255
1088 00d0 c75406 ld 21510,a
1089 00d3 2066 jra L364
1090 00d5 L554:
1091 ; 263 else if (ADC1_SchmittTriggerChannel < ADC1_SCHMITTTRIG_CHANNEL8)
1093 00d5 7b01 ld a,(OFST+1,sp)
1094 00d7 a108 cp a,#8
1095 00d9 242f jruge L564
1096 ; 265 if (NewState != DISABLE)
1098 00db 0d02 tnz (OFST+2,sp)
1099 00dd 2716 jreq L764
1100 ; 267 ADC1->TDRL &= (u8)(~(u8)((u8)0x01 << (u8)ADC1_SchmittTriggerChannel));
1102 00df 7b01 ld a,(OFST+1,sp)
1103 00e1 5f clrw x
1104 00e2 97 ld xl,a
1105 00e3 a601 ld a,#1
1106 00e5 5d tnzw x
1107 00e6 2704 jreq L42
1108 00e8 L62:
1109 00e8 48 sll a
1110 00e9 5a decw x
1111 00ea 26fc jrne L62
1112 00ec L42:
1113 00ec 43 cpl a
1114 00ed c45407 and a,21511
1115 00f0 c75407 ld 21511,a
1117 00f3 2046 jra L364
1118 00f5 L764:
1119 ; 271 ADC1->TDRL |= (u8)((u8)0x01 << (u8)ADC1_SchmittTriggerChannel);
1121 00f5 7b01 ld a,(OFST+1,sp)
1122 00f7 5f clrw x
1123 00f8 97 ld xl,a
1124 00f9 a601 ld a,#1
1125 00fb 5d tnzw x
1126 00fc 2704 jreq L03
1127 00fe L23:
1128 00fe 48 sll a
1129 00ff 5a decw x
1130 0100 26fc jrne L23
1131 0102 L03:
1132 0102 ca5407 or a,21511
1133 0105 c75407 ld 21511,a
1134 0108 2031 jra L364
1135 010a L564:
1136 ; 276 if (NewState != DISABLE)
1138 010a 0d02 tnz (OFST+2,sp)
1139 010c 2718 jreq L574
1140 ; 278 ADC1->TDRH &= (u8)(~(u8)((u8)0x01 << ((u8)ADC1_SchmittTriggerChannel - (u8)8)));
1142 010e 7b01 ld a,(OFST+1,sp)
1143 0110 a008 sub a,#8
1144 0112 5f clrw x
1145 0113 97 ld xl,a
1146 0114 a601 ld a,#1
1147 0116 5d tnzw x
1148 0117 2704 jreq L43
1149 0119 L63:
1150 0119 48 sll a
1151 011a 5a decw x
1152 011b 26fc jrne L63
1153 011d L43:
1154 011d 43 cpl a
1155 011e c45406 and a,21510
1156 0121 c75406 ld 21510,a
1158 0124 2015 jra L364
1159 0126 L574:
1160 ; 282 ADC1->TDRH |= (u8)((u8)0x01 << ((u8)ADC1_SchmittTriggerChannel - (u8)8));
1162 0126 7b01 ld a,(OFST+1,sp)
1163 0128 a008 sub a,#8
1164 012a 5f clrw x
1165 012b 97 ld xl,a
1166 012c a601 ld a,#1
1167 012e 5d tnzw x
1168 012f 2704 jreq L04
1169 0131 L24:
1170 0131 48 sll a
1171 0132 5a decw x
1172 0133 26fc jrne L24
1173 0135 L04:
1174 0135 ca5406 or a,21510
1175 0138 c75406 ld 21510,a
1176 013b L364:
1177 ; 286 }
1180 013b 85 popw x
1181 013c 81 ret
1238 ; 299 void ADC1_ConversionConfig(ADC1_ConvMode_TypeDef ADC1_ConversionMode, ADC1_Channel_TypeDef ADC1_Channel, ADC1_Align_TypeDef ADC1_Align)
1238 ; 300 {
1239 switch .text
1240 013d _ADC1_ConversionConfig:
1242 013d 89 pushw x
1243 00000000 OFST: set 0
1246 ; 303 assert_param(IS_ADC1_CONVERSIONMODE_OK(ADC1_ConversionMode));
1248 ; 304 assert_param(IS_ADC1_CHANNEL_OK(ADC1_Channel));
1250 ; 305 assert_param(IS_ADC1_ALIGN_OK(ADC1_Align));
1252 ; 308 ADC1->CR2 &= (u8)(~ADC1_CR2_ALIGN);
1254 013e 72175402 bres 21506,#3
1255 ; 310 ADC1->CR2 |= (u8)(ADC1_Align);
1257 0142 c65402 ld a,21506
1258 0145 1a05 or a,(OFST+5,sp)
1259 0147 c75402 ld 21506,a
1260 ; 312 if (ADC1_ConversionMode == ADC1_CONVERSIONMODE_CONTINUOUS)
1262 014a 9e ld a,xh
1263 014b a101 cp a,#1
1264 014d 2606 jrne L725
1265 ; 315 ADC1->CR1 |= ADC1_CR1_CONT;
1267 014f 72125401 bset 21505,#1
1269 0153 2004 jra L135
1270 0155 L725:
1271 ; 320 ADC1->CR1 &= (u8)(~ADC1_CR1_CONT);
1273 0155 72135401 bres 21505,#1
1274 0159 L135:
1275 ; 324 ADC1->CSR &= (u8)(~ADC1_CSR_CH);
1277 0159 c65400 ld a,21504
1278 015c a4f0 and a,#240
1279 015e c75400 ld 21504,a
1280 ; 326 ADC1->CSR |= (u8)(ADC1_Channel);
1282 0161 c65400 ld a,21504
1283 0164 1a02 or a,(OFST+2,sp)
1284 0166 c75400 ld 21504,a
1285 ; 328 }
1288 0169 85 popw x
1289 016a 81 ret
1335 ; 341 void ADC1_ExternalTriggerConfig(ADC1_ExtTrig_TypeDef ADC1_ExtTrigger, FunctionalState NewState)
1335 ; 342 {
1336 switch .text
1337 016b _ADC1_ExternalTriggerConfig:
1339 016b 89 pushw x
1340 00000000 OFST: set 0
1343 ; 345 assert_param(IS_ADC1_EXTTRIG_OK(ADC1_ExtTrigger));
1345 ; 346 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -