📄 stm8s_adc2.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 ; 65 void ADC2_DeInit(void)
33 ; 66 {
35 switch .text
36 0000 _ADC2_DeInit:
40 ; 67 ADC2->CSR = ADC2_CSR_RESET_VALUE;
42 0000 725f5400 clr 21504
43 ; 68 ADC2->CR1 = ADC2_CR1_RESET_VALUE;
45 0004 725f5401 clr 21505
46 ; 69 ADC2->CR2 = ADC2_CR2_RESET_VALUE;
48 0008 725f5402 clr 21506
49 ; 70 ADC2->TDRH = ADC2_TDRH_RESET_VALUE;
51 000c 725f5406 clr 21510
52 ; 71 ADC2->TDRL = ADC2_TDRL_RESET_VALUE;
54 0010 725f5407 clr 21511
55 ; 72 }
58 0014 81 ret
583 ; 107 void ADC2_Init(ADC2_ConvMode_TypeDef ADC2_ConversionMode, ADC2_Channel_TypeDef ADC2_Channel, ADC2_PresSel_TypeDef ADC2_PrescalerSelection, ADC2_ExtTrig_TypeDef ADC2_ExtTrigger, FunctionalState ADC2_ExtTrigState, ADC2_Align_TypeDef ADC2_Align, ADC2_SchmittTrigg_TypeDef ADC2_SchmittTriggerChannel, FunctionalState ADC2_SchmittTriggerState)
583 ; 108 {
584 switch .text
585 0015 _ADC2_Init:
587 0015 89 pushw x
588 00000000 OFST: set 0
591 ; 111 assert_param(IS_ADC2_CONVERSIONMODE_OK(ADC2_ConversionMode));
593 ; 112 assert_param(IS_ADC2_CHANNEL_OK(ADC2_Channel));
595 ; 113 assert_param(IS_ADC2_PRESSEL_OK(ADC2_PrescalerSelection));
597 ; 114 assert_param(IS_ADC2_EXTTRIG_OK(ADC2_ExtTrigger));
599 ; 115 assert_param(IS_FUNCTIONALSTATE_OK(((ADC2_ExtTrigState))));
601 ; 116 assert_param(IS_ADC2_ALIGN_OK(ADC2_Align));
603 ; 117 assert_param(IS_ADC2_SCHMITTTRIG_OK(ADC2_SchmittTriggerChannel));
605 ; 118 assert_param(IS_FUNCTIONALSTATE_OK(ADC2_SchmittTriggerState));
607 ; 123 ADC2_ConversionConfig(ADC2_ConversionMode, ADC2_Channel, ADC2_Align);
609 0016 7b08 ld a,(OFST+8,sp)
610 0018 88 push a
611 0019 7b02 ld a,(OFST+2,sp)
612 001b 95 ld xh,a
613 001c cd00e3 call _ADC2_ConversionConfig
615 001f 84 pop a
616 ; 125 ADC2_PrescalerConfig(ADC2_PrescalerSelection);
618 0020 7b05 ld a,(OFST+5,sp)
619 0022 ad31 call _ADC2_PrescalerConfig
621 ; 130 ADC2_ExternalTriggerConfig(ADC2_ExtTrigger, ADC2_ExtTrigState);
623 0024 7b07 ld a,(OFST+7,sp)
624 0026 97 ld xl,a
625 0027 7b06 ld a,(OFST+6,sp)
626 0029 95 ld xh,a
627 002a cd0110 call _ADC2_ExternalTriggerConfig
629 ; 135 ADC2_SchmittTriggerConfig(ADC2_SchmittTriggerChannel, ADC2_SchmittTriggerState);
631 002d 7b0a ld a,(OFST+10,sp)
632 002f 97 ld xl,a
633 0030 7b09 ld a,(OFST+9,sp)
634 0032 95 ld xh,a
635 0033 ad33 call _ADC2_SchmittTriggerConfig
637 ; 138 ADC2->CR1 |= ADC2_CR1_ADON;
639 0035 72105401 bset 21505,#0
640 ; 140 }
643 0039 85 popw x
644 003a 81 ret
679 ; 157 void ADC2_Cmd(FunctionalState NewState)
679 ; 158 {
680 switch .text
681 003b _ADC2_Cmd:
685 ; 161 assert_param(IS_FUNCTIONALSTATE_OK(NewState));
687 ; 163 if (NewState != DISABLE)
689 003b 4d tnz a
690 003c 2705 jreq L703
691 ; 165 ADC2->CR1 |= ADC2_CR1_ADON;
693 003e 72105401 bset 21505,#0
696 0042 81 ret
697 0043 L703:
698 ; 169 ADC2->CR1 &= (u8)(~ADC2_CR1_ADON);
700 0043 72115401 bres 21505,#0
701 ; 172 }
704 0047 81 ret
739 ; 192 void ADC2_ITConfig(FunctionalState ADC2_ITEnable)
739 ; 193 {
740 switch .text
741 0048 _ADC2_ITConfig:
745 ; 196 assert_param(IS_FUNCTIONALSTATE_OK(ADC2_ITEnable));
747 ; 198 if (ADC2_ITEnable != DISABLE)
749 0048 4d tnz a
750 0049 2705 jreq L133
751 ; 201 ADC2->CSR |= (u8)ADC2_CSR_EOCIE;
753 004b 721a5400 bset 21504,#5
756 004f 81 ret
757 0050 L133:
758 ; 206 ADC2->CSR &= (u8)(~ADC2_CSR_EOCIE);
760 0050 721b5400 bres 21504,#5
761 ; 209 }
764 0054 81 ret
800 ; 226 void ADC2_PrescalerConfig(ADC2_PresSel_TypeDef ADC2_Prescaler)
800 ; 227 {
801 switch .text
802 0055 _ADC2_PrescalerConfig:
804 0055 88 push a
805 00000000 OFST: set 0
808 ; 230 assert_param(IS_ADC2_PRESSEL_OK(ADC2_Prescaler));
810 ; 233 ADC2->CR1 &= (u8)(~ADC2_CR1_SPSEL);
812 0056 c65401 ld a,21505
813 0059 a48f and a,#143
814 005b c75401 ld 21505,a
815 ; 235 ADC2->CR1 |= (u8)(ADC2_Prescaler);
817 005e c65401 ld a,21505
818 0061 1a01 or a,(OFST+1,sp)
819 0063 c75401 ld 21505,a
820 ; 237 }
823 0066 84 pop a
824 0067 81 ret
872 ; 257 void ADC2_SchmittTriggerConfig(ADC2_SchmittTrigg_TypeDef ADC2_SchmittTriggerChannel, FunctionalState ADC2_SchmittTriggerState)
872 ; 258 {
873 switch .text
874 0068 _ADC2_SchmittTriggerConfig:
876 0068 89 pushw x
877 00000000 OFST: set 0
880 ; 261 assert_param(IS_ADC2_SCHMITTTRIG_OK(ADC2_SchmittTriggerChannel));
882 ; 262 assert_param(IS_FUNCTIONALSTATE_OK(ADC2_SchmittTriggerState));
884 ; 264 if (ADC2_SchmittTriggerChannel == ADC2_SCHMITTTRIG_ALL)
886 0069 9e ld a,xh
887 006a a11f cp a,#31
888 006c 261d jrne L573
889 ; 266 if (ADC2_SchmittTriggerState != DISABLE)
891 006e 9f ld a,xl
892 006f 4d tnz a
893 0070 270a jreq L773
894 ; 268 ADC2->TDRL &= (u8)0x0;
896 0072 725f5407 clr 21511
897 ; 269 ADC2->TDRH &= (u8)0x0;
899 0076 725f5406 clr 21510
901 007a 2065 jra L304
902 007c L773:
903 ; 273 ADC2->TDRL |= (u8)0xFF;
905 007c c65407 ld a,21511
906 007f aaff or a,#255
907 0081 c75407 ld 21511,a
908 ; 274 ADC2->TDRH |= (u8)0xFF;
910 0084 c65406 ld a,21510
911 0087 aaff or a,#255
912 0089 2053 jp LC001
913 008b L573:
914 ; 277 else if (ADC2_SchmittTriggerChannel < ADC2_SCHMITTTRIG_CHANNEL8)
916 008b 7b01 ld a,(OFST+1,sp)
917 008d a108 cp a,#8
918 008f 0d02 tnz (OFST+2,sp)
919 0091 2426 jruge L504
920 ; 279 if (ADC2_SchmittTriggerState != DISABLE)
922 0093 2714 jreq L704
923 ; 281 ADC2->TDRL &= (u8)(~(u8)((u8)0x01 << (u8)ADC2_SchmittTriggerChannel));
925 0095 5f clrw x
926 0096 97 ld xl,a
927 0097 a601 ld a,#1
928 0099 5d tnzw x
929 009a 2704 jreq L03
930 009c L23:
931 009c 48 sll a
932 009d 5a decw x
933 009e 26fc jrne L23
934 00a0 L03:
935 00a0 43 cpl a
936 00a1 c45407 and a,21511
937 00a4 LC002:
938 00a4 c75407 ld 21511,a
940 00a7 2038 jra L304
941 00a9 L704:
942 ; 285 ADC2->TDRL |= (u8)((u8)0x01 << (u8)ADC2_SchmittTriggerChannel);
944 00a9 5f clrw x
945 00aa 97 ld xl,a
946 00ab a601 ld a,#1
947 00ad 5d tnzw x
948 00ae 2704 jreq L43
949 00b0 L63:
950 00b0 48 sll a
951 00b1 5a decw x
952 00b2 26fc jrne L63
953 00b4 L43:
954 00b4 ca5407 or a,21511
955 00b7 20eb jp LC002
956 00b9 L504:
957 ; 290 if (ADC2_SchmittTriggerState != DISABLE)
959 00b9 2713 jreq L514
960 ; 292 ADC2->TDRH &= (u8)(~(u8)((u8)0x01 << ((u8)ADC2_SchmittTriggerChannel - (u8)8)));
962 00bb a008 sub a,#8
963 00bd 5f clrw x
964 00be 97 ld xl,a
965 00bf a601 ld a,#1
966 00c1 5d tnzw x
967 00c2 2704 jreq L04
968 00c4 L24:
969 00c4 48 sll a
970 00c5 5a decw x
971 00c6 26fc jrne L24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -