| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502 |
- 1 ; C Compiler for STM8 (COSMIC Software)
- 2 ; Parser V4.8.32 - 23 Mar 2010
- 3 ; Generator V4.3.4 - 23 Mar 2010
- 2696 bsct
- 2697 0000 _wdgtim:
- 2698 0000 78 dc.b 120
- 2699 0001 L3171__lc:
- 2700 0001 00 dc.b 0
- 2749 ; 27 unsigned short safeTask(void)
- 2749 ; 28 {
- 2751 switch .text
- 2752 0000 _safeTask:
- 2756 ; 29 _SS
- 2758 0000 b601 ld a,L3171__lc
- 2760 ; 37 WAITX(100);
- 2761 0002 a024 sub a,#36
- 2762 0004 2712 jreq L1671
- 2763 0006 a002 sub a,#2
- 2764 0008 270e jreq L1671
- 2765 000a 200c jra L1671
- 2766 000c L7571:
- 2767 ; 34 IWDG_KR = 0xAA; //喂狗函数,防止程序复位
- 2769 000c 35aa50e0 mov _IWDG_KR,#170
- 2770 ; 35 WAITX(100);
- 2772 0010 35240001 mov L3171__lc,#36
- 2775 0014 ae0064 ldw x,#100
- 2778 0017 81 ret
- 2779 0018 L1671:
- 2780 ; 32 while(wdgtim != 0)
- 2782 0018 3d00 tnz _wdgtim
- 2783 001a 26f0 jrne L7571
- 2784 ; 37 WAITX(100);
- 2786 001c 35260001 mov L3171__lc,#38
- 2789 0020 ae0064 ldw x,#100
- 2792 0023 81 ret
- 2795 bsct
- 2796 0002 L5771__lc:
- 2797 0002 00 dc.b 0
- 2831 ; 43 unsigned short safeIot(void)
- 2831 ; 44 {
- 2832 switch .text
- 2833 0024 _safeIot:
- 2837 ; 45 _SS
- 2839 0024 b602 ld a,L5771__lc
- 2841 ; 54 WAITX(1000);
- 2842 0026 a033 sub a,#51
- 2843 0028 2712 jreq L1002
- 2844 002a a004 sub a,#4
- 2845 002c L7202:
- 2846 ; 48 if(wdgtim == 0){
- 2848 002c 3d00 tnz _wdgtim
- 2849 002e 2610 jrne L3302
- 2850 ; 49 REST = 0;
- 2852 0030 72175000 bres _REST
- 2853 ; 50 WAITX(1000);
- 2855 0034 35330002 mov L5771__lc,#51
- 2858 0038 ae03e8 ldw x,#1000
- 2861 003b 81 ret
- 2862 003c L1002:
- 2863 ; 51 REST = 1;
- 2867 003c 72165000 bset _REST
- 2868 0040 L3302:
- 2869 ; 53 wdgtim --;
- 2871 0040 3a00 dec _wdgtim
- 2872 ; 54 WAITX(1000);
- 2874 0042 35370002 mov L5771__lc,#55
- 2877 0046 ae03e8 ldw x,#1000
- 2880 0049 81 ret
- 2883 bsct
- 2884 0003 _ntc_adc_val5:
- 2885 0003 00000000 dc.w 0,0
- 2886 0007 _ntc_adc_val6:
- 2887 0007 00000000 dc.w 0,0
- 2888 000b _ntc_r5:
- 2889 000b 00000000 dc.w 0,0
- 2890 000f _ntc_r6:
- 2891 000f 00000000 dc.w 0,0
- 2892 0013 L5402__lc:
- 2893 0013 00 dc.b 0
- 2932 ; 65 unsigned short getvbat(void)
- 2932 ; 66 {
- 2933 switch .text
- 2934 004a _getvbat:
- 2936 004a 5204 subw sp,#4
- 2937 00000004 OFST: set 4
- 2940 ; 67 _SS
- 2942 004c b613 ld a,L5402__lc
- 2943 004e a157 cp a,#87
- 2944 0050 2700 jreq L3702
- 2947 0052 L7402:
- 2948 0052 L3702:
- 2949 ; 70 stm8_data.volBat = (((getADCValue(4)*3.3)/1024)*12)*1000;
- 2951 0052 a604 ld a,#4
- 2952 0054 cd0000 call _getADCValue
- 2954 0057 cd0000 call c_uitof
- 2956 005a ae0014 ldw x,#L3012
- 2957 005d cd0000 call c_fmul
- 2959 0060 ae0010 ldw x,#L3112
- 2960 0063 cd0000 call c_fdiv
- 2962 0066 ae000c ldw x,#L3212
- 2963 0069 cd0000 call c_fmul
- 2965 006c ae0008 ldw x,#L3312
- 2966 006f cd0000 call c_fmul
- 2968 0072 cd0000 call c_ftoi
- 2970 0075 bf01 ldw _stm8_data+1,x
- 2971 ; 72 ntc_adc_val5 = (float)getADCValue(5);
- 2973 0077 a605 ld a,#5
- 2974 0079 cd0000 call _getADCValue
- 2976 007c cd0000 call c_uitof
- 2978 007f ae0003 ldw x,#_ntc_adc_val5
- 2979 0082 cd0000 call c_rtol
- 2981 ; 73 ntc_r5 = (5100*ntc_adc_val5)/(1024-ntc_adc_val5);
- 2983 0085 ae0400 ldw x,#1024
- 2984 0088 cd0000 call c_itof
- 2986 008b ae0003 ldw x,#_ntc_adc_val5
- 2987 008e cd0000 call c_fsub
- 2989 0091 96 ldw x,sp
- 2990 0092 1c0001 addw x,#OFST-3
- 2991 0095 cd0000 call c_rtol
- 2993 0098 ae0003 ldw x,#_ntc_adc_val5
- 2994 009b cd0000 call c_ltor
- 2996 009e ae0004 ldw x,#L3412
- 2997 00a1 cd0000 call c_fmul
- 2999 00a4 96 ldw x,sp
- 3000 00a5 1c0001 addw x,#OFST-3
- 3001 00a8 cd0000 call c_fdiv
- 3003 00ab ae000b ldw x,#_ntc_r5
- 3004 00ae cd0000 call c_rtol
- 3006 ; 74 if(ntc_r5 > 50000)
- 3008 00b1 9c rvf
- 3009 00b2 aec350 ldw x,#50000
- 3010 00b5 cd0000 call c_uitof
- 3012 00b8 96 ldw x,sp
- 3013 00b9 1c0001 addw x,#OFST-3
- 3014 00bc cd0000 call c_rtol
- 3016 00bf ae000b ldw x,#_ntc_r5
- 3017 00c2 cd0000 call c_ltor
- 3019 00c5 96 ldw x,sp
- 3020 00c6 1c0001 addw x,#OFST-3
- 3021 00c9 cd0000 call c_fcmp
- 3023 00cc 2d05 jrsle L7412
- 3024 ; 75 stm8_data.keep_tmp = 0;
- 3026 00ce 5f clrw x
- 3027 00cf bf05 ldw _stm8_data+5,x
- 3029 00d1 2028 jra L1512
- 3030 00d3 L7412:
- 3031 ; 77 stm8_data.keep_tmp = (int)(TempCalculate(ntc_r5,3470,1,5100)+0.5);//3950---3470
- 3033 00d3 ae13ec ldw x,#5100
- 3034 00d6 89 pushw x
- 3035 00d7 ae0001 ldw x,#1
- 3036 00da 89 pushw x
- 3037 00db ae0d8e ldw x,#3470
- 3038 00de 89 pushw x
- 3039 00df ae000b ldw x,#_ntc_r5
- 3040 00e2 cd0000 call c_ltor
- 3042 00e5 cd0000 call c_ftoi
- 3044 00e8 cd0000 call _TempCalculate
- 3046 00eb 5b06 addw sp,#6
- 3047 00ed cd0000 call c_itof
- 3049 00f0 ae0000 ldw x,#L7512
- 3050 00f3 cd0000 call c_fadd
- 3052 00f6 cd0000 call c_ftoi
- 3054 00f9 bf05 ldw _stm8_data+5,x
- 3055 00fb L1512:
- 3056 ; 79 ntc_adc_val6 = (float)getADCValue(6);
- 3058 00fb a606 ld a,#6
- 3059 00fd cd0000 call _getADCValue
- 3061 0100 cd0000 call c_uitof
- 3063 0103 ae0007 ldw x,#_ntc_adc_val6
- 3064 0106 cd0000 call c_rtol
- 3066 ; 80 ntc_r6 = (5100*ntc_adc_val6)/(1024-ntc_adc_val6);
- 3068 0109 ae0400 ldw x,#1024
- 3069 010c cd0000 call c_itof
- 3071 010f ae0007 ldw x,#_ntc_adc_val6
- 3072 0112 cd0000 call c_fsub
- 3074 0115 96 ldw x,sp
- 3075 0116 1c0001 addw x,#OFST-3
- 3076 0119 cd0000 call c_rtol
- 3078 011c ae0007 ldw x,#_ntc_adc_val6
- 3079 011f cd0000 call c_ltor
- 3081 0122 ae0004 ldw x,#L3412
- 3082 0125 cd0000 call c_fmul
- 3084 0128 96 ldw x,sp
- 3085 0129 1c0001 addw x,#OFST-3
- 3086 012c cd0000 call c_fdiv
- 3088 012f ae000f ldw x,#_ntc_r6
- 3089 0132 cd0000 call c_rtol
- 3091 ; 81 if(ntc_r6 > 50000)
- 3093 0135 9c rvf
- 3094 0136 aec350 ldw x,#50000
- 3095 0139 cd0000 call c_uitof
- 3097 013c 96 ldw x,sp
- 3098 013d 1c0001 addw x,#OFST-3
- 3099 0140 cd0000 call c_rtol
- 3101 0143 ae000f ldw x,#_ntc_r6
- 3102 0146 cd0000 call c_ltor
- 3104 0149 96 ldw x,sp
- 3105 014a 1c0001 addw x,#OFST-3
- 3106 014d cd0000 call c_fcmp
- 3108 0150 2d05 jrsle L3612
- 3109 ; 82 stm8_data.box_tmp = 0;
- 3111 0152 5f clrw x
- 3112 0153 bf03 ldw _stm8_data+3,x
- 3114 0155 2028 jra L7612
- 3115 0157 L3612:
- 3116 ; 84 stm8_data.box_tmp = (int)(TempCalculate(ntc_r6,3470,1,5100)+0.5);//3950---3470
- 3118 0157 ae13ec ldw x,#5100
- 3119 015a 89 pushw x
- 3120 015b ae0001 ldw x,#1
- 3121 015e 89 pushw x
- 3122 015f ae0d8e ldw x,#3470
- 3123 0162 89 pushw x
- 3124 0163 ae000f ldw x,#_ntc_r6
- 3125 0166 cd0000 call c_ltor
- 3127 0169 cd0000 call c_ftoi
- 3129 016c cd0000 call _TempCalculate
- 3131 016f 5b06 addw sp,#6
- 3132 0171 cd0000 call c_itof
- 3134 0174 ae0000 ldw x,#L7512
- 3135 0177 cd0000 call c_fadd
- 3137 017a cd0000 call c_ftoi
- 3139 017d bf03 ldw _stm8_data+3,x
- 3140 017f L7612:
- 3141 ; 86 WAITX(1000);
- 3143 017f 35570013 mov L5402__lc,#87
- 3146 0183 ae03e8 ldw x,#1000
- 3149 0186 5b04 addw sp,#4
- 3150 0188 81 ret
- 3151 0189 L1502:
- 3155 0189 ac520052 jpf L3702
- 3158 bsct
- 3159 0014 _turn_order:
- 3160 0014 00 dc.b 0
- 3161 0015 _turn_sec:
- 3162 0015 00 dc.b 0
- 3163 0016 _turn_flag:
- 3164 0016 00 dc.b 0
- 3165 0017 _up_dw_flag:
- 3166 0017 00 dc.b 0
- 3167 0018 _fsl_sec:
- 3168 0018 05 dc.b 5
- 3169 0019 _cnt:
- 3170 0019 0000 dc.w 0
- 3171 001b L5712__lc:
- 3172 001b 00 dc.b 0
- 3211 ; 123 unsigned short control_task(void)
- 3211 ; 124 {
- 3212 switch .text
- 3213 018d _control_task:
- 3217 ; 125 _SS
- 3219 018d b61b ld a,L5712__lc
- 3221 ; 196 WAITX(200);
- 3222 018f a08e sub a,#142
- 3223 0191 273a jreq L1022
- 3224 0193 a00f sub a,#15
- 3225 0195 2763 jreq L3022
- 3226 0197 a01b sub a,#27
- 3227 0199 2603 jrne L41
- 3228 019b cc024b jp L5022
- 3229 019e L41:
- 3230 019e a00d sub a,#13
- 3231 01a0 L3322:
- 3232 ; 129 if(turn_order == 1 && turn_flag == 0)
- 3234 01a0 b614 ld a,_turn_order
- 3235 01a2 a101 cp a,#1
- 3236 01a4 2678 jrne L7322
- 3238 01a6 3d16 tnz _turn_flag
- 3239 01a8 2674 jrne L7322
- 3240 ; 131 turn_flag = 1;
- 3242 01aa 35010016 mov _turn_flag,#1
- 3243 ; 132 if(TURN_IN == 0)
- 3245 btst _TURN_IN
- 3246 01b3 2526 jrult L1422
- 3247 ; 136 TURN =1;
- 3249 01b5 721a500a bset _TURN
- 3250 ; 137 cnt = 0;
- 3252 01b9 5f clrw x
- 3253 01ba bf19 ldw _cnt,x
- 3255 01bc 2016 jra L5422
- 3256 01be L3422:
- 3257 ; 140 cnt++;
- 3259 01be be19 ldw x,_cnt
- 3260 01c0 1c0001 addw x,#1
- 3261 01c3 bf19 ldw _cnt,x
- 3262 ; 141 WAITX(10);
- 3264 01c5 358e001b mov L5712__lc,#142
- 3267 01c9 ae000a ldw x,#10
- 3270 01cc 81 ret
- 3271 01cd L1022:
- 3272 ; 142 if(cnt > 200) break;
- 3276 01cd be19 ldw x,_cnt
- 3277 01cf a300c9 cpw x,#201
- 3278 01d2 2407 jruge L1422
- 3281 01d4 L5422:
- 3282 ; 138 while(TURN_IN == 0)
- 3284 btst _TURN_IN
- 3285 01d9 24e3 jruge L3422
- 3286 01db L1422:
- 3287 ; 146 if(TURN_IN == 1)
- 3289 btst _TURN_IN
- 3290 01e0 243a jruge L7522
- 3291 ; 150 TURN = 1;
- 3293 01e2 721a500a bset _TURN
- 3294 ; 151 cnt = 0;
- 3296 01e6 5f clrw x
- 3297 01e7 bf19 ldw _cnt,x
- 3299 01e9 2021 jra L3622
- 3300 01eb L1622:
- 3301 ; 155 cnt++;
- 3303 01eb be19 ldw x,_cnt
- 3304 01ed 1c0001 addw x,#1
- 3305 01f0 bf19 ldw _cnt,x
- 3306 ; 156 WAITX(1);
- 3308 01f2 359d001b mov L5712__lc,#157
- 3311 01f6 ae0001 ldw x,#1
- 3314 01f9 81 ret
- 3315 01fa L3022:
- 3316 ; 158 if(cnt > (turn_sec-2)*1000) break;
- 3320 01fa b615 ld a,_turn_sec
- 3321 01fc 5f clrw x
- 3322 01fd 97 ld xl,a
- 3323 01fe 90ae03e8 ldw y,#1000
- 3324 0202 cd0000 call c_imul
- 3326 0205 1d07d0 subw x,#2000
- 3327 0208 b319 cpw x,_cnt
- 3328 020a 2507 jrult L5622
- 3331 020c L3622:
- 3332 ; 153 while(TURN_IN == 1)
- 3334 btst _TURN_IN
- 3335 0211 25d8 jrult L1622
- 3336 0213 L5622:
- 3337 ; 160 cnt = 0;
- 3339 0213 5f clrw x
- 3340 0214 bf19 ldw _cnt,x
- 3341 ; 162 TURN = 0;
- 3343 0216 721b500a bres _TURN
- 3344 ; 163 turn_order = 0;
- 3346 021a 3f14 clr _turn_order
- 3347 021c L7522:
- 3348 ; 165 turn_flag = 0;
- 3350 021c 3f16 clr _turn_flag
- 3351 021e L7322:
- 3352 ; 169 if(turn_order == 7 && turn_flag == 0)
- 3354 021e b614 ld a,_turn_order
- 3355 0220 a107 cp a,#7
- 3356 0222 264c jrne L5132
- 3358 0224 3d16 tnz _turn_flag
- 3359 0226 2648 jrne L5132
- 3360 ; 172 if (TURN_IN0 == 1)
- 3362 btst _TURN_IN0
- 3363 022d 243d jruge L7722
- 3364 ; 175 turn_flag = 1;
- 3366 022f 35010016 mov _turn_flag,#1
- 3367 ; 177 TURN = 1;
- 3369 0233 721a500a bset _TURN
- 3370 ; 178 cnt = 0;
- 3372 0237 5f clrw x
- 3373 0238 bf19 ldw _cnt,x
- 3375 023a 201e jra L3032
- 3376 023c L1032:
- 3377 ; 182 cnt++;
- 3379 023c be19 ldw x,_cnt
- 3380 023e 1c0001 addw x,#1
- 3381 0241 bf19 ldw _cnt,x
- 3382 ; 183 WAITX(1);
- 3384 0243 35b8001b mov L5712__lc,#184
- 3387 0247 ae0001 ldw x,#1
- 3390 024a 81 ret
- 3391 024b L5022:
- 3392 ; 184 if(cnt > turn_sec*1000) break;
- 3396 024b b615 ld a,_turn_sec
- 3397 024d 5f clrw x
- 3398 024e 97 ld xl,a
- 3399 024f 90ae03e8 ldw y,#1000
- 3400 0253 cd0000 call c_imul
- 3402 0256 b319 cpw x,_cnt
- 3403 0258 2507 jrult L5032
- 3406 025a L3032:
- 3407 ; 180 while(TURN_IN0 == 1)
- 3409 btst _TURN_IN0
- 3410 025f 25db jrult L1032
- 3411 0261 L5032:
- 3412 ; 186 cnt = 0;
- 3414 0261 5f clrw x
- 3415 0262 bf19 ldw _cnt,x
- 3416 ; 188 TURN = 0;
- 3418 0264 721b500a bres _TURN
- 3419 ; 189 turn_order = 0;
- 3421 0268 3f14 clr _turn_order
- 3422 ; 190 turn_flag = 0;
- 3424 026a 3f16 clr _turn_flag
- 3425 026c L7722:
- 3426 ; 193 TURN = 0;
- 3428 026c 721b500a bres _TURN
- 3429 0270 L5132:
- 3430 ; 196 WAITX(200);
- 3432 0270 35c5001b mov L5712__lc,#197
- 3435 0274 ae00c8 ldw x,#200
- 3438 0277 81 ret
- 3441 bsct
- 3442 001c L1232__lc:
- 3443 001c 00 dc.b 0
- 3480 ; 202 unsigned short fsl_task(void)
- 3480 ; 203 {
- 3481 switch .text
- 3482 0278 _fsl_task:
- 3486 ; 204 _SS
- 3488 0278 b61c ld a,L1232__lc
- 3490 ; 230 WAITX(500);
- 3491 027a a0da sub a,#218
- 3492 027c 271d jreq L5232
- 3493 027e a005 sub a,#5
- 3494 0280 272f jreq L7232
- 3495 0282 a008 sub a,#8
- 3496 0284 L5532:
- 3497 ; 213 if(up_dw_flag != 0)
- 3499 0284 3d17 tnz _up_dw_flag
- 3500 0286 272e jreq L3732
- 3501 ; 215 TG_DW();
- 3503 0288 cd0000 call _TG_DW
- 3505 ; 217 WAITX(fsl_sec * 1000);
- 3507 028b 35da001c mov L1232__lc,#218
- 3510 028f b618 ld a,_fsl_sec
- 3511 0291 5f clrw x
- 3512 0292 97 ld xl,a
- 3513 0293 90ae03e8 ldw y,#1000
- 3514 0297 cd0000 call c_imul
- 3518 029a 81 ret
- 3519 029b L5232:
- 3520 ; 219 TG_STOP();
- 3524 029b cd0000 call _TG_STOP
- 3526 ; 221 TG_UP();
- 3528 029e cd0000 call _TG_UP
- 3530 ; 222 WAITX(fsl_sec * 1000);
- 3532 02a1 35df001c mov L1232__lc,#223
- 3535 02a5 b618 ld a,_fsl_sec
- 3536 02a7 5f clrw x
- 3537 02a8 97 ld xl,a
- 3538 02a9 90ae03e8 ldw y,#1000
- 3539 02ad cd0000 call c_imul
- 3543 02b0 81 ret
- 3544 02b1 L7232:
- 3545 ; 224 TG_STOP();
- 3549 02b1 cd0000 call _TG_STOP
- 3551 ; 225 up_dw_flag = 0;
- 3553 02b4 3f17 clr _up_dw_flag
- 3554 02b6 L3732:
- 3555 ; 230 WAITX(500);
- 3557 02b6 35e7001c mov L1232__lc,#231
- 3560 02ba ae01f4 ldw x,#500
- 3563 02bd 81 ret
- 3722 xdef _fsl_task
- 3723 xdef _control_task
- 3724 xdef _cnt
- 3725 xdef _fsl_sec
- 3726 xdef _up_dw_flag
- 3727 xdef _turn_flag
- 3728 xdef _turn_sec
- 3729 xdef _turn_order
- 3730 xdef _getvbat
- 3731 xref _TempCalculate
- 3732 xdef _ntc_r6
- 3733 xdef _ntc_r5
- 3734 xdef _ntc_adc_val6
- 3735 xdef _ntc_adc_val5
- 3736 xdef _safeIot
- 3737 xdef _safeTask
- 3738 xdef _wdgtim
- 3739 xref _TG_STOP
- 3740 xref _TG_DW
- 3741 xref _TG_UP
- 3742 switch .ubsct
- 3743 0000 _stm8_data:
- 3744 0000 000000000000 ds.b 7
- 3745 xdef _stm8_data
- 3746 xref _getADCValue
- 3747 .const: section .text
- 3748 0000 L7512:
- 3749 0000 3f000000 dc.w 16128,0
- 3750 0004 L3412:
- 3751 0004 459f6000 dc.w 17823,24576
- 3752 0008 L3312:
- 3753 0008 447a0000 dc.w 17530,0
- 3754 000c L3212:
- 3755 000c 41400000 dc.w 16704,0
- 3756 0010 L3112:
- 3757 0010 44800000 dc.w 17536,0
- 3758 0014 L3012:
- 3759 0014 40533333 dc.w 16467,13107
- 3760 xref.b c_x
- 3780 xref c_imul
- 3781 xref c_fadd
- 3782 xref c_fcmp
- 3783 xref c_fsub
- 3784 xref c_itof
- 3785 xref c_ltor
- 3786 xref c_rtol
- 3787 xref c_ftoi
- 3788 xref c_fdiv
- 3789 xref c_fmul
- 3790 xref c_uitof
- 3791 end
|