📄 stm8s_adc1.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Parser V4.9.2 - 29 Jun 2010
3 ; Generator V4.3.5 - 02 Jul 2010
43 ; 47 void ADC1_DeInit(void)
43 ; 48 {
45 switch .text
46 0000 _ADC1_DeInit:
50 ; 49 ADC1->CSR = ADC1_CSR_RESET_VALUE;
52 0000 725f5400 clr 21504
53 ; 50 ADC1->CR1 = ADC1_CR1_RESET_VALUE;
55 0004 725f5401 clr 21505
56 ; 51 ADC1->CR2 = ADC1_CR2_RESET_VALUE;
58 0008 725f5402 clr 21506
59 ; 52 ADC1->CR3 = ADC1_CR3_RESET_VALUE;
61 000c 725f5403 clr 21507
62 ; 53 ADC1->TDRH = ADC1_TDRH_RESET_VALUE;
64 0010 725f5406 clr 21510
65 ; 54 ADC1->TDRL = ADC1_TDRL_RESET_VALUE;
67 0014 725f5407 clr 21511
68 ; 55 ADC1->HTRH = ADC1_HTRH_RESET_VALUE;
70 0018 35ff5408 mov 21512,#255
71 ; 56 ADC1->HTRL = ADC1_HTRL_RESET_VALUE;
73 001c 35035409 mov 21513,#3
74 ; 57 ADC1->LTRH = ADC1_LTRH_RESET_VALUE;
76 0020 725f540a clr 21514
77 ; 58 ADC1->LTRL = ADC1_LTRL_RESET_VALUE;
79 0024 725f540b clr 21515
80 ; 59 ADC1->AWCRH = ADC1_AWCRH_RESET_VALUE;
82 0028 725f540e clr 21518
83 ; 60 ADC1->AWCRL = ADC1_AWCRL_RESET_VALUE;
85 002c 725f540f clr 21519
86 ; 61 }
89 0030 81 ret
525 ; 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)
525 ; 85 {
526 switch .text
527 0031 _ADC1_Init:
529 0031 89 pushw x
530 00000000 OFST: set 0
533 ; 88 assert_param(IS_ADC1_CONVERSIONMODE_OK(ADC1_ConversionMode));
535 ; 89 assert_param(IS_ADC1_CHANNEL_OK(ADC1_Channel));
537 ; 90 assert_param(IS_ADC1_PRESSEL_OK(ADC1_PrescalerSelection));
539 ; 91 assert_param(IS_ADC1_EXTTRIG_OK(ADC1_ExtTrigger));
541 ; 92 assert_param(IS_FUNCTIONALSTATE_OK(((ADC1_ExtTriggerState))));
543 ; 93 assert_param(IS_ADC1_ALIGN_OK(ADC1_Align));
545 ; 94 assert_param(IS_ADC1_SCHMITTTRIG_OK(ADC1_SchmittTriggerChannel));
547 ; 95 assert_param(IS_FUNCTIONALSTATE_OK(ADC1_SchmittTriggerState));
549 ; 100 ADC1_ConversionConfig(ADC1_ConversionMode, ADC1_Channel, ADC1_Align);
551 0032 7b08 ld a,(OFST+8,sp)
552 0034 88 push a
553 0035 9f ld a,xl
554 0036 97 ld xl,a
555 0037 7b02 ld a,(OFST+2,sp)
556 0039 95 ld xh,a
557 003a cd013d call _ADC1_ConversionConfig
559 003d 84 pop a
560 ; 102 ADC1_PrescalerConfig(ADC1_PrescalerSelection);
562 003e 7b05 ld a,(OFST+5,sp)
563 0040 ad5a call _ADC1_PrescalerConfig
565 ; 107 ADC1_ExternalTriggerConfig(ADC1_ExtTrigger, ADC1_ExtTriggerState);
567 0042 7b07 ld a,(OFST+7,sp)
568 0044 97 ld xl,a
569 0045 7b06 ld a,(OFST+6,sp)
570 0047 95 ld xh,a
571 0048 cd016b call _ADC1_ExternalTriggerConfig
573 ; 112 ADC1_SchmittTriggerConfig(ADC1_SchmittTriggerChannel, ADC1_SchmittTriggerState);
575 004b 7b0a ld a,(OFST+10,sp)
576 004d 97 ld xl,a
577 004e 7b09 ld a,(OFST+9,sp)
578 0050 95 ld xh,a
579 0051 ad5c call _ADC1_SchmittTriggerConfig
581 ; 115 ADC1->CR1 |= ADC1_CR1_ADON;
583 0053 72105401 bset 21505,#0
584 ; 117 }
587 0057 85 popw x
588 0058 81 ret
623 ; 125 void ADC1_Cmd(FunctionalState NewState)
623 ; 126 {
624 switch .text
625 0059 _ADC1_Cmd:
629 ; 129 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
631 ; 131 if (NewState != DISABLE)
633 0059 4d tnz a
634 005a 2706 jreq L752
635 ; 133 ADC1->CR1 |= ADC1_CR1_ADON;
637 005c 72105401 bset 21505,#0
639 0060 2004 jra L162
640 0062 L752:
641 ; 137 ADC1->CR1 &= (u8)(~ADC1_CR1_ADON);
643 0062 72115401 bres 21505,#0
644 0066 L162:
645 ; 140 }
648 0066 81 ret
683 ; 147 void ADC1_ScanModeCmd(FunctionalState NewState)
683 ; 148 {
684 switch .text
685 0067 _ADC1_ScanModeCmd:
689 ; 151 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
691 ; 153 if (NewState != DISABLE)
693 0067 4d tnz a
694 0068 2706 jreq L103
695 ; 155 ADC1->CR2 |= ADC1_CR2_SCAN;
697 006a 72125402 bset 21506,#1
699 006e 2004 jra L303
700 0070 L103:
701 ; 159 ADC1->CR2 &= (u8)(~ADC1_CR2_SCAN);
703 0070 72135402 bres 21506,#1
704 0074 L303:
705 ; 162 }
708 0074 81 ret
743 ; 169 void ADC1_DataBufferCmd(FunctionalState NewState)
743 ; 170 {
744 switch .text
745 0075 _ADC1_DataBufferCmd:
749 ; 173 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
751 ; 175 if (NewState != DISABLE)
753 0075 4d tnz a
754 0076 2706 jreq L323
755 ; 177 ADC1->CR3 |= ADC1_CR3_DBUF;
757 0078 721e5403 bset 21507,#7
759 007c 2004 jra L523
760 007e L323:
761 ; 181 ADC1->CR3 &= (u8)(~ADC1_CR3_DBUF);
763 007e 721f5403 bres 21507,#7
764 0082 L523:
765 ; 184 }
768 0082 81 ret
917 ; 195 void ADC1_ITConfig(ADC1_IT_TypeDef ADC1_IT, FunctionalState NewState)
917 ; 196 {
918 switch .text
919 0083 _ADC1_ITConfig:
921 0083 89 pushw x
922 00000000 OFST: set 0
925 ; 199 assert_param(IS_ADC1_IT_OK(ADC1_IT));
927 ; 200 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
929 ; 202 if (NewState != DISABLE)
931 0084 0d05 tnz (OFST+5,sp)
932 0086 2709 jreq L114
933 ; 205 ADC1->CSR |= (u8)ADC1_IT;
935 0088 9f ld a,xl
936 0089 ca5400 or a,21504
937 008c c75400 ld 21504,a
939 008f 2009 jra L314
940 0091 L114:
941 ; 210 ADC1->CSR &= (u8)(~ADC1_IT);
943 0091 7b02 ld a,(OFST+2,sp)
944 0093 43 cpl a
945 0094 c45400 and a,21504
946 0097 c75400 ld 21504,a
947 009a L314:
948 ; 213 }
951 009a 85 popw x
952 009b 81 ret
988 ; 221 void ADC1_PrescalerConfig(ADC1_PresSel_TypeDef ADC1_Prescaler)
988 ; 222 {
989 switch .text
990 009c _ADC1_PrescalerConfig:
992 009c 88 push a
993 00000000 OFST: set 0
996 ; 225 assert_param(IS_ADC1_PRESSEL_OK(ADC1_Prescaler));
998 ; 228 ADC1->CR1 &= (u8)(~ADC1_CR1_SPSEL);
1000 009d c65401 ld a,21505
1001 00a0 a48f and a,#143
1002 00a2 c75401 ld 21505,a
1003 ; 230 ADC1->CR1 |= (u8)(ADC1_Prescaler);
1005 00a5 c65401 ld a,21505
1006 00a8 1a01 or a,(OFST+1,sp)
1007 00aa c75401 ld 21505,a
1008 ; 232 }
1011 00ad 84 pop a
1012 00ae 81 ret
1059 ; 243 void ADC1_SchmittTriggerConfig(ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel, FunctionalState NewState)
1059 ; 244 {
1060 switch .text
1061 00af _ADC1_SchmittTriggerConfig:
1063 00af 89 pushw x
1064 00000000 OFST: set 0
1067 ; 247 assert_param(IS_ADC1_SCHMITTTRIG_OK(ADC1_SchmittTriggerChannel));
1069 ; 248 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
1071 ; 250 if (ADC1_SchmittTriggerChannel == ADC1_SCHMITTTRIG_ALL)
1073 00b0 9e ld a,xh
1074 00b1 a1ff cp a,#255
1075 00b3 2620 jrne L554
1076 ; 252 if (NewState != DISABLE)
1078 00b5 9f ld a,xl
1079 00b6 4d tnz a
1080 00b7 270a jreq L754
1081 ; 254 ADC1->TDRL &= (u8)0x0;
1083 00b9 725f5407 clr 21511
1084 ; 255 ADC1->TDRH &= (u8)0x0;
1086 00bd 725f5406 clr 21510
1088 00c1 2078 jra L364
1089 00c3 L754:
1090 ; 259 ADC1->TDRL |= (u8)0xFF;
1092 00c3 c65407 ld a,21511
1093 00c6 aaff or a,#255
1094 00c8 c75407 ld 21511,a
1095 ; 260 ADC1->TDRH |= (u8)0xFF;
1097 00cb c65406 ld a,21510
1098 00ce aaff or a,#255
1099 00d0 c75406 ld 21510,a
1100 00d3 2066 jra L364
1101 00d5 L554:
1102 ; 263 else if (ADC1_SchmittTriggerChannel < ADC1_SCHMITTTRIG_CHANNEL8)
1104 00d5 7b01 ld a,(OFST+1,sp)
1105 00d7 a108 cp a,#8
1106 00d9 242f jruge L564
1107 ; 265 if (NewState != DISABLE)
1109 00db 0d02 tnz (OFST+2,sp)
1110 00dd 2716 jreq L764
1111 ; 267 ADC1->TDRL &= (u8)(~(u8)((u8)0x01 << (u8)ADC1_SchmittTriggerChannel));
1113 00df 7b01 ld a,(OFST+1,sp)
1114 00e1 5f clrw x
1115 00e2 97 ld xl,a
1116 00e3 a601 ld a,#1
1117 00e5 5d tnzw x
1118 00e6 2704 jreq L42
1119 00e8 L62:
1120 00e8 48 sll a
1121 00e9 5a decw x
1122 00ea 26fc jrne L62
1123 00ec L42:
1124 00ec 43 cpl a
1125 00ed c45407 and a,21511
1126 00f0 c75407 ld 21511,a
1128 00f3 2046 jra L364
1129 00f5 L764:
1130 ; 271 ADC1->TDRL |= (u8)((u8)0x01 << (u8)ADC1_SchmittTriggerChannel);
1132 00f5 7b01 ld a,(OFST+1,sp)
1133 00f7 5f clrw x
1134 00f8 97 ld xl,a
1135 00f9 a601 ld a,#1
1136 00fb 5d tnzw x
1137 00fc 2704 jreq L03
1138 00fe L23:
1139 00fe 48 sll a
1140 00ff 5a decw x
1141 0100 26fc jrne L23
1142 0102 L03:
1143 0102 ca5407 or a,21511
1144 0105 c75407 ld 21511,a
1145 0108 2031 jra L364
1146 010a L564:
1147 ; 276 if (NewState != DISABLE)
1149 010a 0d02 tnz (OFST+2,sp)
1150 010c 2718 jreq L574
1151 ; 278 ADC1->TDRH &= (u8)(~(u8)((u8)0x01 << ((u8)ADC1_SchmittTriggerChannel - (u8)8)));
1153 010e 7b01 ld a,(OFST+1,sp)
1154 0110 a008 sub a,#8
1155 0112 5f clrw x
1156 0113 97 ld xl,a
1157 0114 a601 ld a,#1
1158 0116 5d tnzw x
1159 0117 2704 jreq L43
1160 0119 L63:
1161 0119 48 sll a
1162 011a 5a decw x
1163 011b 26fc jrne L63
1164 011d L43:
1165 011d 43 cpl a
1166 011e c45406 and a,21510
1167 0121 c75406 ld 21510,a
1169 0124 2015 jra L364
1170 0126 L574:
1171 ; 282 ADC1->TDRH |= (u8)((u8)0x01 << ((u8)ADC1_SchmittTriggerChannel - (u8)8));
1173 0126 7b01 ld a,(OFST+1,sp)
1174 0128 a008 sub a,#8
1175 012a 5f clrw x
1176 012b 97 ld xl,a
1177 012c a601 ld a,#1
1178 012e 5d tnzw x
1179 012f 2704 jreq L04
1180 0131 L24:
1181 0131 48 sll a
1182 0132 5a decw x
1183 0133 26fc jrne L24
1184 0135 L04:
1185 0135 ca5406 or a,21510
1186 0138 c75406 ld 21510,a
1187 013b L364:
1188 ; 286 }
1191 013b 85 popw x
1192 013c 81 ret
1249 ; 299 void ADC1_ConversionConfig(ADC1_ConvMode_TypeDef ADC1_ConversionMode, ADC1_Channel_TypeDef ADC1_Channel, ADC1_Align_TypeDef ADC1_Align)
1249 ; 300 {
1250 switch .text
1251 013d _ADC1_ConversionConfig:
1253 013d 89 pushw x
1254 00000000 OFST: set 0
1257 ; 303 assert_param(IS_ADC1_CONVERSIONMODE_OK(ADC1_ConversionMode));
1259 ; 304 assert_param(IS_ADC1_CHANNEL_OK(ADC1_Channel));
1261 ; 305 assert_param(IS_ADC1_ALIGN_OK(ADC1_Align));
1263 ; 308 ADC1->CR2 &= (u8)(~ADC1_CR2_ALIGN);
1265 013e 72175402 bres 21506,#3
1266 ; 310 ADC1->CR2 |= (u8)(ADC1_Align);
1268 0142 c65402 ld a,21506
1269 0145 1a05 or a,(OFST+5,sp)
1270 0147 c75402 ld 21506,a
1271 ; 312 if (ADC1_ConversionMode == ADC1_CONVERSIONMODE_CONTINUOUS)
1273 014a 9e ld a,xh
1274 014b a101 cp a,#1
1275 014d 2606 jrne L725
1276 ; 315 ADC1->CR1 |= ADC1_CR1_CONT;
1278 014f 72125401 bset 21505,#1
1280 0153 2004 jra L135
1281 0155 L725:
1282 ; 320 ADC1->CR1 &= (u8)(~ADC1_CR1_CONT);
1284 0155 72135401 bres 21505,#1
1285 0159 L135:
1286 ; 324 ADC1->CSR &= (u8)(~ADC1_CSR_CH);
1288 0159 c65400 ld a,21504
1289 015c a4f0 and a,#240
1290 015e c75400 ld 21504,a
1291 ; 326 ADC1->CSR |= (u8)(ADC1_Channel);
1293 0161 c65400 ld a,21504
1294 0164 1a02 or a,(OFST+2,sp)
1295 0166 c75400 ld 21504,a
1296 ; 328 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -