| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505 |
- 1 ; C Compiler for STM8 (COSMIC Software)
- 2 ; Parser V4.8.32 - 23 Mar 2010
- 3 ; Generator V4.3.4 - 23 Mar 2010
- 2684 bsct
- 2685 0000 _wdgtim:
- 2686 0000 78 dc.b 120
- 2687 0001 L7071__lc:
- 2688 0001 00 dc.b 0
- 2737 ; 27 unsigned short safeTask(void)
- 2737 ; 28 {
- 2739 switch .text
- 2740 0000 _safeTask:
- 2744 ; 29 _SS
- 2746 0000 b601 ld a,L7071__lc
- 2748 ; 37 WAITX(100);
- 2749 0002 a024 sub a,#36
- 2750 0004 2712 jreq L5571
- 2751 0006 a002 sub a,#2
- 2752 0008 270e jreq L5571
- 2753 000a 200c jra L5571
- 2754 000c L3571:
- 2755 ; 34 IWDG_KR = 0xAA; //喂狗函数,防止程序复位
- 2757 000c 35aa50e0 mov _IWDG_KR,#170
- 2758 ; 35 WAITX(100);
- 2760 0010 35240001 mov L7071__lc,#36
- 2763 0014 ae0064 ldw x,#100
- 2766 0017 81 ret
- 2767 0018 L5571:
- 2768 ; 32 while(wdgtim != 0)
- 2770 0018 3d00 tnz _wdgtim
- 2771 001a 26f0 jrne L3571
- 2772 ; 37 WAITX(100);
- 2774 001c 35260001 mov L7071__lc,#38
- 2777 0020 ae0064 ldw x,#100
- 2780 0023 81 ret
- 2783 bsct
- 2784 0002 L1771__lc:
- 2785 0002 00 dc.b 0
- 2819 ; 43 unsigned short safeIot(void)
- 2819 ; 44 {
- 2820 switch .text
- 2821 0024 _safeIot:
- 2825 ; 45 _SS
- 2827 0024 b602 ld a,L1771__lc
- 2829 ; 54 WAITX(1000);
- 2830 0026 a033 sub a,#51
- 2831 0028 2712 jreq L5771
- 2832 002a a004 sub a,#4
- 2833 002c L3202:
- 2834 ; 48 if(wdgtim == 0){
- 2836 002c 3d00 tnz _wdgtim
- 2837 002e 2610 jrne L7202
- 2838 ; 49 REST = 0;
- 2840 0030 72175000 bres _REST
- 2841 ; 50 WAITX(1000);
- 2843 0034 35330002 mov L1771__lc,#51
- 2846 0038 ae03e8 ldw x,#1000
- 2849 003b 81 ret
- 2850 003c L5771:
- 2851 ; 51 REST = 1;
- 2855 003c 72165000 bset _REST
- 2856 0040 L7202:
- 2857 ; 53 wdgtim --;
- 2859 0040 3a00 dec _wdgtim
- 2860 ; 54 WAITX(1000);
- 2862 0042 35370002 mov L1771__lc,#55
- 2865 0046 ae03e8 ldw x,#1000
- 2868 0049 81 ret
- 2871 bsct
- 2872 0003 _ntc_adc_val5:
- 2873 0003 00000000 dc.w 0,0
- 2874 0007 _ntc_adc_val6:
- 2875 0007 00000000 dc.w 0,0
- 2876 000b _ntc_r5:
- 2877 000b 00000000 dc.w 0,0
- 2878 000f _ntc_r6:
- 2879 000f 00000000 dc.w 0,0
- 2880 0013 L1402__lc:
- 2881 0013 00 dc.b 0
- 2920 ; 65 unsigned short getvbat(void)
- 2920 ; 66 {
- 2921 switch .text
- 2922 004a _getvbat:
- 2924 004a 5204 subw sp,#4
- 2925 00000004 OFST: set 4
- 2928 ; 67 _SS
- 2930 004c b613 ld a,L1402__lc
- 2931 004e a157 cp a,#87
- 2932 0050 2700 jreq L7602
- 2935 0052 L3402:
- 2936 0052 L7602:
- 2937 ; 70 stm8_data.volBat = (((getADCValue(4)*3.3)/1024)*12)*1000;
- 2939 0052 a604 ld a,#4
- 2940 0054 cd0000 call _getADCValue
- 2942 0057 cd0000 call c_uitof
- 2944 005a ae0014 ldw x,#L7702
- 2945 005d cd0000 call c_fmul
- 2947 0060 ae0010 ldw x,#L7012
- 2948 0063 cd0000 call c_fdiv
- 2950 0066 ae000c ldw x,#L7112
- 2951 0069 cd0000 call c_fmul
- 2953 006c ae0008 ldw x,#L7212
- 2954 006f cd0000 call c_fmul
- 2956 0072 cd0000 call c_ftoi
- 2958 0075 bf01 ldw _stm8_data+1,x
- 2959 ; 72 ntc_adc_val5 = (float)getADCValue(5);
- 2961 0077 a605 ld a,#5
- 2962 0079 cd0000 call _getADCValue
- 2964 007c cd0000 call c_uitof
- 2966 007f ae0003 ldw x,#_ntc_adc_val5
- 2967 0082 cd0000 call c_rtol
- 2969 ; 73 ntc_r5 = (5100*ntc_adc_val5)/(1024-ntc_adc_val5);
- 2971 0085 ae0400 ldw x,#1024
- 2972 0088 cd0000 call c_itof
- 2974 008b ae0003 ldw x,#_ntc_adc_val5
- 2975 008e cd0000 call c_fsub
- 2977 0091 96 ldw x,sp
- 2978 0092 1c0001 addw x,#OFST-3
- 2979 0095 cd0000 call c_rtol
- 2981 0098 ae0003 ldw x,#_ntc_adc_val5
- 2982 009b cd0000 call c_ltor
- 2984 009e ae0004 ldw x,#L7312
- 2985 00a1 cd0000 call c_fmul
- 2987 00a4 96 ldw x,sp
- 2988 00a5 1c0001 addw x,#OFST-3
- 2989 00a8 cd0000 call c_fdiv
- 2991 00ab ae000b ldw x,#_ntc_r5
- 2992 00ae cd0000 call c_rtol
- 2994 ; 74 if(ntc_r5 > 50000)
- 2996 00b1 9c rvf
- 2997 00b2 aec350 ldw x,#50000
- 2998 00b5 cd0000 call c_uitof
- 3000 00b8 96 ldw x,sp
- 3001 00b9 1c0001 addw x,#OFST-3
- 3002 00bc cd0000 call c_rtol
- 3004 00bf ae000b ldw x,#_ntc_r5
- 3005 00c2 cd0000 call c_ltor
- 3007 00c5 96 ldw x,sp
- 3008 00c6 1c0001 addw x,#OFST-3
- 3009 00c9 cd0000 call c_fcmp
- 3011 00cc 2d05 jrsle L3412
- 3012 ; 75 stm8_data.keep_tmp = 0;
- 3014 00ce 5f clrw x
- 3015 00cf bf05 ldw _stm8_data+5,x
- 3017 00d1 2028 jra L5412
- 3018 00d3 L3412:
- 3019 ; 77 stm8_data.keep_tmp = (int)(TempCalculate(ntc_r5,3470,1,5100)+0.5);//3950---3470
- 3021 00d3 ae13ec ldw x,#5100
- 3022 00d6 89 pushw x
- 3023 00d7 ae0001 ldw x,#1
- 3024 00da 89 pushw x
- 3025 00db ae0d8e ldw x,#3470
- 3026 00de 89 pushw x
- 3027 00df ae000b ldw x,#_ntc_r5
- 3028 00e2 cd0000 call c_ltor
- 3030 00e5 cd0000 call c_ftoi
- 3032 00e8 cd0000 call _TempCalculate
- 3034 00eb 5b06 addw sp,#6
- 3035 00ed cd0000 call c_itof
- 3037 00f0 ae0000 ldw x,#L3512
- 3038 00f3 cd0000 call c_fadd
- 3040 00f6 cd0000 call c_ftoi
- 3042 00f9 bf05 ldw _stm8_data+5,x
- 3043 00fb L5412:
- 3044 ; 79 ntc_adc_val6 = (float)getADCValue(6);
- 3046 00fb a606 ld a,#6
- 3047 00fd cd0000 call _getADCValue
- 3049 0100 cd0000 call c_uitof
- 3051 0103 ae0007 ldw x,#_ntc_adc_val6
- 3052 0106 cd0000 call c_rtol
- 3054 ; 80 ntc_r6 = (5100*ntc_adc_val6)/(1024-ntc_adc_val6);
- 3056 0109 ae0400 ldw x,#1024
- 3057 010c cd0000 call c_itof
- 3059 010f ae0007 ldw x,#_ntc_adc_val6
- 3060 0112 cd0000 call c_fsub
- 3062 0115 96 ldw x,sp
- 3063 0116 1c0001 addw x,#OFST-3
- 3064 0119 cd0000 call c_rtol
- 3066 011c ae0007 ldw x,#_ntc_adc_val6
- 3067 011f cd0000 call c_ltor
- 3069 0122 ae0004 ldw x,#L7312
- 3070 0125 cd0000 call c_fmul
- 3072 0128 96 ldw x,sp
- 3073 0129 1c0001 addw x,#OFST-3
- 3074 012c cd0000 call c_fdiv
- 3076 012f ae000f ldw x,#_ntc_r6
- 3077 0132 cd0000 call c_rtol
- 3079 ; 81 if(ntc_r6 > 50000)
- 3081 0135 9c rvf
- 3082 0136 aec350 ldw x,#50000
- 3083 0139 cd0000 call c_uitof
- 3085 013c 96 ldw x,sp
- 3086 013d 1c0001 addw x,#OFST-3
- 3087 0140 cd0000 call c_rtol
- 3089 0143 ae000f ldw x,#_ntc_r6
- 3090 0146 cd0000 call c_ltor
- 3092 0149 96 ldw x,sp
- 3093 014a 1c0001 addw x,#OFST-3
- 3094 014d cd0000 call c_fcmp
- 3096 0150 2d05 jrsle L7512
- 3097 ; 82 stm8_data.box_tmp = 0;
- 3099 0152 5f clrw x
- 3100 0153 bf03 ldw _stm8_data+3,x
- 3102 0155 2028 jra L3612
- 3103 0157 L7512:
- 3104 ; 84 stm8_data.box_tmp = (int)(TempCalculate(ntc_r6,3470,1,5100)+0.5);//3950---3470
- 3106 0157 ae13ec ldw x,#5100
- 3107 015a 89 pushw x
- 3108 015b ae0001 ldw x,#1
- 3109 015e 89 pushw x
- 3110 015f ae0d8e ldw x,#3470
- 3111 0162 89 pushw x
- 3112 0163 ae000f ldw x,#_ntc_r6
- 3113 0166 cd0000 call c_ltor
- 3115 0169 cd0000 call c_ftoi
- 3117 016c cd0000 call _TempCalculate
- 3119 016f 5b06 addw sp,#6
- 3120 0171 cd0000 call c_itof
- 3122 0174 ae0000 ldw x,#L3512
- 3123 0177 cd0000 call c_fadd
- 3125 017a cd0000 call c_ftoi
- 3127 017d bf03 ldw _stm8_data+3,x
- 3128 017f L3612:
- 3129 ; 86 WAITX(1000);
- 3131 017f 35570013 mov L1402__lc,#87
- 3134 0183 ae03e8 ldw x,#1000
- 3137 0186 5b04 addw sp,#4
- 3138 0188 81 ret
- 3139 0189 L5402:
- 3143 0189 ac520052 jpf L7602
- 3146 bsct
- 3147 0014 _turn_order:
- 3148 0014 00 dc.b 0
- 3149 0015 _turn_sec:
- 3150 0015 00 dc.b 0
- 3151 0016 _turn_flag:
- 3152 0016 00 dc.b 0
- 3153 0017 _up_dw_flag:
- 3154 0017 00 dc.b 0
- 3155 0018 _fsl_sec:
- 3156 0018 05 dc.b 5
- 3157 0019 _cnt:
- 3158 0019 0000 dc.w 0
- 3159 001b L1712__lc:
- 3160 001b 00 dc.b 0
- 3199 ; 123 unsigned short control_task(void)
- 3199 ; 124 {
- 3200 switch .text
- 3201 018d _control_task:
- 3205 ; 126 _SS
- 3207 018d b61b ld a,L1712__lc
- 3209 ; 191 WAITX(200);
- 3210 018f a08e sub a,#142
- 3211 0191 273b jreq L5712
- 3212 0193 a00e sub a,#14
- 3213 0195 2765 jreq L7712
- 3214 0197 a019 sub a,#25
- 3215 0199 2603 jrne L41
- 3216 019b cc024e jp L1022
- 3217 019e L41:
- 3218 019e a00b sub a,#11
- 3219 01a0 L7222:
- 3220 ; 130 if(turn_order == 1 && turn_flag == 0)
- 3222 01a0 b614 ld a,_turn_order
- 3223 01a2 a101 cp a,#1
- 3224 01a4 267a jrne L3322
- 3226 01a6 3d16 tnz _turn_flag
- 3227 01a8 2676 jrne L3322
- 3228 ; 132 turn_flag = 1;
- 3230 01aa 35010016 mov _turn_flag,#1
- 3231 ; 133 if(TURN_IN == 0)
- 3233 btst _TURN_IN
- 3234 01b3 2527 jrult L5322
- 3235 ; 136 TIM2_PWM(1);
- 3237 01b5 a601 ld a,#1
- 3238 01b7 cd0000 call _TIM2_PWM
- 3240 ; 137 cnt = 0;
- 3242 01ba 5f clrw x
- 3243 01bb bf19 ldw _cnt,x
- 3245 01bd 2016 jra L1422
- 3246 01bf L7322:
- 3247 ; 140 cnt++;
- 3249 01bf be19 ldw x,_cnt
- 3250 01c1 1c0001 addw x,#1
- 3251 01c4 bf19 ldw _cnt,x
- 3252 ; 141 WAITX(10);
- 3254 01c6 358e001b mov L1712__lc,#142
- 3257 01ca ae000a ldw x,#10
- 3260 01cd 81 ret
- 3261 01ce L5712:
- 3262 ; 142 if(cnt > 200) break;
- 3266 01ce be19 ldw x,_cnt
- 3267 01d0 a300c9 cpw x,#201
- 3268 01d3 2407 jruge L5322
- 3271 01d5 L1422:
- 3272 ; 138 while(TURN_IN == 0)
- 3274 btst _TURN_IN
- 3275 01da 24e3 jruge L7322
- 3276 01dc L5322:
- 3277 ; 146 if(TURN_IN == 1)
- 3279 btst _TURN_IN
- 3280 01e1 243b jruge L3522
- 3281 ; 149 TIM2_PWM(1);
- 3283 01e3 a601 ld a,#1
- 3284 01e5 cd0000 call _TIM2_PWM
- 3286 ; 150 cnt = 0;
- 3288 01e8 5f clrw x
- 3289 01e9 bf19 ldw _cnt,x
- 3291 01eb 2021 jra L7522
- 3292 01ed L5522:
- 3293 ; 154 cnt++;
- 3295 01ed be19 ldw x,_cnt
- 3296 01ef 1c0001 addw x,#1
- 3297 01f2 bf19 ldw _cnt,x
- 3298 ; 155 WAITX(1);
- 3300 01f4 359c001b mov L1712__lc,#156
- 3303 01f8 ae0001 ldw x,#1
- 3306 01fb 81 ret
- 3307 01fc L7712:
- 3308 ; 157 if(cnt > (turn_sec-2)*1000) break;
- 3312 01fc b615 ld a,_turn_sec
- 3313 01fe 5f clrw x
- 3314 01ff 97 ld xl,a
- 3315 0200 90ae03e8 ldw y,#1000
- 3316 0204 cd0000 call c_imul
- 3318 0207 1d07d0 subw x,#2000
- 3319 020a b319 cpw x,_cnt
- 3320 020c 2507 jrult L1622
- 3323 020e L7522:
- 3324 ; 152 while(TURN_IN == 1)
- 3326 btst _TURN_IN
- 3327 0213 25d8 jrult L5522
- 3328 0215 L1622:
- 3329 ; 159 cnt = 0;
- 3331 0215 5f clrw x
- 3332 0216 bf19 ldw _cnt,x
- 3333 ; 160 TIM2_PWM(0);
- 3335 0218 4f clr a
- 3336 0219 cd0000 call _TIM2_PWM
- 3338 ; 161 turn_order = 0;
- 3340 021c 3f14 clr _turn_order
- 3341 021e L3522:
- 3342 ; 163 turn_flag = 0;
- 3344 021e 3f16 clr _turn_flag
- 3345 0220 L3322:
- 3346 ; 167 if(turn_order == 7 && turn_flag == 0)
- 3348 0220 b614 ld a,_turn_order
- 3349 0222 a107 cp a,#7
- 3350 0224 2649 jrne L1132
- 3352 0226 3d16 tnz _turn_flag
- 3353 0228 2645 jrne L1132
- 3354 ; 170 if (TURN_IN0 == 1)
- 3356 btst _TURN_IN0
- 3357 022f 243e jruge L1132
- 3358 ; 173 turn_flag = 1;
- 3360 0231 35010016 mov _turn_flag,#1
- 3361 ; 174 TIM2_PWM(1);
- 3363 0235 a601 ld a,#1
- 3364 0237 cd0000 call _TIM2_PWM
- 3366 ; 175 cnt = 0;
- 3368 023a 5f clrw x
- 3369 023b bf19 ldw _cnt,x
- 3371 023d 201e jra L7722
- 3372 023f L5722:
- 3373 ; 179 cnt++;
- 3375 023f be19 ldw x,_cnt
- 3376 0241 1c0001 addw x,#1
- 3377 0244 bf19 ldw _cnt,x
- 3378 ; 180 WAITX(1);
- 3380 0246 35b5001b mov L1712__lc,#181
- 3383 024a ae0001 ldw x,#1
- 3386 024d 81 ret
- 3387 024e L1022:
- 3388 ; 181 if(cnt > turn_sec*1000) break;
- 3392 024e b615 ld a,_turn_sec
- 3393 0250 5f clrw x
- 3394 0251 97 ld xl,a
- 3395 0252 90ae03e8 ldw y,#1000
- 3396 0256 cd0000 call c_imul
- 3398 0259 b319 cpw x,_cnt
- 3399 025b 2507 jrult L1032
- 3402 025d L7722:
- 3403 ; 177 while(TURN_IN0 == 1)
- 3405 btst _TURN_IN0
- 3406 0262 25db jrult L5722
- 3407 0264 L1032:
- 3408 ; 183 cnt = 0;
- 3410 0264 5f clrw x
- 3411 0265 bf19 ldw _cnt,x
- 3412 ; 184 TIM2_PWM(0);
- 3414 0267 4f clr a
- 3415 0268 cd0000 call _TIM2_PWM
- 3417 ; 185 turn_order = 0;
- 3419 026b 3f14 clr _turn_order
- 3420 ; 186 turn_flag = 0;
- 3422 026d 3f16 clr _turn_flag
- 3423 026f L1132:
- 3424 ; 191 WAITX(200);
- 3426 026f 35c0001b mov L1712__lc,#192
- 3429 0273 ae00c8 ldw x,#200
- 3432 0276 81 ret
- 3435 bsct
- 3436 001c L5132__lc:
- 3437 001c 00 dc.b 0
- 3474 ; 197 unsigned short fsl_task(void)
- 3474 ; 198 {
- 3475 switch .text
- 3476 0277 _fsl_task:
- 3480 ; 199 _SS
- 3482 0277 b61c ld a,L5132__lc
- 3484 ; 225 WAITX(500);
- 3485 0279 a0d5 sub a,#213
- 3486 027b 271d jreq L1232
- 3487 027d a005 sub a,#5
- 3488 027f 272f jreq L3232
- 3489 0281 a008 sub a,#8
- 3490 0283 L1532:
- 3491 ; 208 if(up_dw_flag != 0)
- 3493 0283 3d17 tnz _up_dw_flag
- 3494 0285 272e jreq L7632
- 3495 ; 210 TG_DW();
- 3497 0287 cd0000 call _TG_DW
- 3499 ; 212 WAITX(fsl_sec * 1000);
- 3501 028a 35d5001c mov L5132__lc,#213
- 3504 028e b618 ld a,_fsl_sec
- 3505 0290 5f clrw x
- 3506 0291 97 ld xl,a
- 3507 0292 90ae03e8 ldw y,#1000
- 3508 0296 cd0000 call c_imul
- 3512 0299 81 ret
- 3513 029a L1232:
- 3514 ; 214 TG_STOP();
- 3518 029a cd0000 call _TG_STOP
- 3520 ; 216 TG_UP();
- 3522 029d cd0000 call _TG_UP
- 3524 ; 217 WAITX(fsl_sec * 1000);
- 3526 02a0 35da001c mov L5132__lc,#218
- 3529 02a4 b618 ld a,_fsl_sec
- 3530 02a6 5f clrw x
- 3531 02a7 97 ld xl,a
- 3532 02a8 90ae03e8 ldw y,#1000
- 3533 02ac cd0000 call c_imul
- 3537 02af 81 ret
- 3538 02b0 L3232:
- 3539 ; 219 TG_STOP();
- 3543 02b0 cd0000 call _TG_STOP
- 3545 ; 220 up_dw_flag = 0;
- 3547 02b3 3f17 clr _up_dw_flag
- 3548 02b5 L7632:
- 3549 ; 225 WAITX(500);
- 3551 02b5 35e2001c mov L5132__lc,#226
- 3554 02b9 ae01f4 ldw x,#500
- 3557 02bc 81 ret
- 3716 xdef _fsl_task
- 3717 xdef _control_task
- 3718 xdef _cnt
- 3719 xdef _fsl_sec
- 3720 xdef _up_dw_flag
- 3721 xdef _turn_flag
- 3722 xdef _turn_sec
- 3723 xdef _turn_order
- 3724 xdef _getvbat
- 3725 xref _TempCalculate
- 3726 xdef _ntc_r6
- 3727 xdef _ntc_r5
- 3728 xdef _ntc_adc_val6
- 3729 xdef _ntc_adc_val5
- 3730 xdef _safeIot
- 3731 xdef _safeTask
- 3732 xdef _wdgtim
- 3733 xref _TG_STOP
- 3734 xref _TG_DW
- 3735 xref _TG_UP
- 3736 xref _TIM2_PWM
- 3737 switch .ubsct
- 3738 0000 _stm8_data:
- 3739 0000 000000000000 ds.b 7
- 3740 xdef _stm8_data
- 3741 xref _getADCValue
- 3742 .const: section .text
- 3743 0000 L3512:
- 3744 0000 3f000000 dc.w 16128,0
- 3745 0004 L7312:
- 3746 0004 459f6000 dc.w 17823,24576
- 3747 0008 L7212:
- 3748 0008 447a0000 dc.w 17530,0
- 3749 000c L7112:
- 3750 000c 41400000 dc.w 16704,0
- 3751 0010 L7012:
- 3752 0010 44800000 dc.w 17536,0
- 3753 0014 L7702:
- 3754 0014 40533333 dc.w 16467,13107
- 3755 xref.b c_x
- 3775 xref c_imul
- 3776 xref c_fadd
- 3777 xref c_fcmp
- 3778 xref c_fsub
- 3779 xref c_itof
- 3780 xref c_ltor
- 3781 xref c_rtol
- 3782 xref c_ftoi
- 3783 xref c_fdiv
- 3784 xref c_fmul
- 3785 xref c_uitof
- 3786 end
|