78K0R Assembler W1.31 Date:13 Jun 2010 Page: 1 Command: -c9F0104 -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff inter_asm\adc.asm Para-file: In-file: inter_asm\adc.asm Obj-file: adc.rel Prn-file: adc.prn Assemble list ALNO STNO ADRS OBJECT M I SOURCE STATEMENT 1 1 ; 78K0R C Compiler V2.10 Assembler Source Date:13 Jun 2010 Time:19:31:24 2 2 3 3 ; Command : -c9F0104 -yC:\Program Files\NEC Electronics Tools\DEV -_msgoff -i 4 4 ; renge -iC:\Program Files\NEC Electronics Tools\FSL78K0R_Type02ES\ 5 5 ; V1.20\inc78k0r -ms -qvjl3wt -sainter_asm -zp -no adc.c 6 6 ; In-file : adc.c 7 7 ; Asm-file : inter_asm\adc.asm 8 8 ; Para-file : 9 9 10 10 $PROCESSOR(9F0104) 11 11 $DEBUG 12 12 $NODEBUGA 13 13 $KANJICODE SJIS 14 14 $TOL_INF 03FH, 0210H, 02H, 00H, 00H, 00H, 00H 15 15 16 16 $DGS FIL_NAM, .file, 0FAH, 0FFFEH, 03FH, 067H, 01H, 00H 17 17 $DGS AUX_FIL, adc.c 18 18 $DGS MOD_NAM, adc, 00H, 0FFFEH, 00H, 077H, 00H, 00H 19 19 $DGS SEC_NAM, @@BITS, U, U, 00H, 078H, 00H, 00H 20 20 $DGS SEC_NAM, @@CNST, U, U, 00H, 078H, 00H, 00H 21 21 $DGS SEC_NAM, @@R_INIT, U, U, 00H, 078H, 00H, 00H 22 22 $DGS SEC_NAM, @@INIT, U, U, 00H, 078H, 00H, 00H 23 23 $DGS SEC_NAM, @@DATA, U, U, 00H, 078H, 00H, 00H 24 24 $DGS SEC_NAM, @@R_INIS, U, U, 00H, 078H, 00H, 00H 25 25 $DGS SEC_NAM, @@INIS, U, U, 00H, 078H, 00H, 00H 26 26 $DGS SEC_NAM, @@DATS, U, U, 00H, 078H, 00H, 00H 27 27 $DGS SEC_NAM, @@CNSTL, U, U, 00H, 078H, 00H, 00H 28 28 $DGS SEC_NAM, @@RLINIT, U, U, 00H, 078H, 00H, 00H 29 29 $DGS SEC_NAM, @@INITL, U, U, 00H, 078H, 00H, 00H 30 30 $DGS SEC_NAM, @@DATAL, U, U, 00H, 078H, 00H, 00H 31 31 $DGS SEC_NAM, @@CALT, U, U, 00H, 078H, 00H, 00H 32 32 $DGS SEC_NAM, ROM_CODE, U, U, 00H, 078H, 00H, 00H 33 33 $DGS SEC_NAM, @@CODEL, U, U, 00H, 078H, 00H, 00H 34 34 $DGS SEC_NAM, @@BASE, U, U, 00H, 078H, 00H, 00H 35 35 $DGS ENM_TAG, _pwr_state_, 00H, 0FFFEH, 0AH, 0FH, 01H, 00H 36 36 $DGS AUX_TAG, 01H, 01EH 37 37 $DGS MEB_ENM, _OFF_TRIG, 00H, 0FFFFH, 04H, 010H, 00H, 00H 38 38 $DGS MEB_ENM, _OFF, 01H, 0FFFFH, 04H, 010H, 00H, 00H 39 39 $DGS MEB_ENM, _ON_TRIG, 02H, 0FFFFH, 04H, 010H, 00H, 00H 40 40 $DGS MEB_ENM, _ON, 03H, 0FFFFH, 04H, 010H, 00H, 00H 41 41 $DGS MEB_ENM, _SLEEP_TRIG, 04H, 0FFFFH, 04H, 010H, 00H, 00H 42 42 $DGS MEB_ENM, _SLEEP, 05H, 0FFFFH, 04H, 010H, 00H, 00H 43 43 $DGS MEB_ENM, _BT_CHARGE, 06H, 0FFFFH, 04H, 010H, 00H, 00H 44 44 $DGS END_STR, .eos, 01H, 0FFFFH, 00H, 066H, 01H, 00H 45 45 $DGS AUX_EOS, 013H, 01H 46 46 $DGS ENM_TAG, _poweron_reason_, 00H, 0FFFEH, 0AH, 0FH, 01H, 00H 47 47 $DGS AUX_TAG, 01H, 025H 48 48 $DGS MEB_ENM, _NONE, 00H, 0FFFFH, 04H, 010H, 00H, 00H 49 49 $DGS MEB_ENM, _PWSW, 01H, 0FFFFH, 04H, 010H, 00H, 00H 50 50 $DGS MEB_ENM, _RTC_ALARM, 02H, 0FFFFH, 04H, 010H, 00H, 00H 51 51 $DGS END_STR, .eos, 01H, 0FFFFH, 00H, 066H, 01H, 00H 52 52 $DGS AUX_EOS, 01EH, 01H 53 53 $DGS ENM_TAG, _model_, 00H, 0FFFEH, 0AH, 0FH, 01H, 00H 54 54 $DGS AUX_TAG, 01H, 02FH 55 55 $DGS MEB_ENM, _MODEL_JIKKI, 00H, 0FFFFH, 04H, 010H, 00H, 00H 56 56 $DGS MEB_ENM, _MODEL_TS_BOARD, 01H, 0FFFFH, 04H, 010H, 00H, 00H 57 57 $DGS MEB_ENM, _MODEL_SHIROBAKO, 02H, 0FFFFH, 04H, 010H, 00H, 00H 58 58 $DGS MEB_ENM, _MODEL_RESERVED1, 03H, 0FFFFH, 04H, 010H, 00H, 00H 59 59 $DGS MEB_ENM, _MODEL_RESERVED2, 04H, 0FFFFH, 04H, 010H, 00H, 00H 60 60 $DGS MEB_ENM, _MODEL_RESERVED3, 05H, 0FFFFH, 04H, 010H, 00H, 00H 61 61 $DGS END_STR, .eos, 01H, 0FFFFH, 00H, 066H, 01H, 00H 62 62 $DGS AUX_EOS, 025H, 01H 63 63 $DGS STR_STR, .0fake, 00H, 0FFFEH, 08H, 0AH, 01H, 00H 64 64 $DGS AUX_TAG, 04H, 041H 65 65 $DGS MEB_STR, _pwr_state, 00H, 0FFFFH, 0AH, 08H, 01H, 00H 66 66 $DGS AUX_STR, 013H, 00H, 01H, 00H, 00H, 00H, 00H, 00H 67 67 $DGS MEB_STR, _poweron_reason, 01H, 0FFFFH, 0AH, 08H, 01H, 00H 68 68 $DGS AUX_STR, 01EH, 00H, 01H, 00H, 00H, 00H, 00H, 00H 69 69 $DGS BIT_FLD, _dipsw0, 010H, 0FFFFH, 0CH, 012H, 01H, 00H 70 70 $DGS AUX_BIT, 00H, 01H 71 71 $DGS BIT_FLD, _dipsw1, 011H, 0FFFFH, 0CH, 012H, 01H, 00H 72 72 $DGS AUX_BIT, 00H, 01H 73 73 $DGS BIT_FLD, _dipsw2, 012H, 0FFFFH, 0CH, 012H, 01H, 00H 74 74 $DGS AUX_BIT, 00H, 01H 75 75 $DGS BIT_FLD, _reboot, 013H, 0FFFFH, 0CH, 012H, 01H, 00H 76 76 $DGS AUX_BIT, 00H, 01H 77 77 $DGS MEB_STR, _model, 03H, 0FFFFH, 0AH, 08H, 01H, 00H 78 78 $DGS AUX_STR, 025H, 00H, 01H, 00H, 00H, 00H, 00H, 00H 79 79 $DGS END_STR, .eos, 04H, 0FFFFH, 00H, 066H, 01H, 00H 80 80 $DGS AUX_EOS, 02FH, 04H 81 81 $DGS ENM_TAG, .2fake, 00H, 0FFFEH, 0AH, 0FH, 01H, 00H 82 82 $DGS AUX_TAG, 01H, 047H 83 83 $DGS MEB_ENM, _ERR_FINISED, 00H, 0FFFFH, 04H, 010H, 00H, 00H 84 84 $DGS MEB_ENM, _ERR_CONTINUE, 01H, 0FFFFH, 04H, 010H, 00H, 00H 85 85 $DGS END_STR, .eos, 01H, 0FFFFH, 00H, 066H, 01H, 00H 86 86 $DGS AUX_EOS, 041H, 01H 87 87 $DGS LAB_SYM, bs_S0076, U, U, 00H, 06H, 00H, 00H 88 88 $DGS LAB_SYM, es_S0076, U, U, 00H, 06H, 00H, 00H 89 89 $DGS LAB_SYM, bs_F0075, U, U, 00H, 06H, 00H, 00H 90 90 $DGS LAB_SYM, es_F0075, U, U, 00H, 06H, 00H, 00H 91 91 $DGS LAB_SYM, bs_F0074, U, U, 00H, 06H, 00H, 00H 92 92 $DGS LAB_SYM, es_F0074, U, U, 00H, 06H, 00H, 00H 93 93 $DGS STA_SYM, _lpf_coeff, U, U, 05002H, 03H, 01H, 03H 94 94 $DGS AUX_STR, 00H, 00H, 02FH, 02FH, 00H, 00H, 00H, 00H 95 95 $DGS STA_SYM, _slider_to_codec, U, U, 0500CH, 03H, 01H, 03H 96 96 $DGS AUX_STR, 00H, 00H, 040H, 040H, 00H, 00H, 00H, 00H 97 97 $DGS GLV_SYM, _tsk_adc, U, U, 01H, 026H, 01H, 02H 98 98 $DGS AUX_FUN, 00H, U, U, 0B5H, 00H, 00H 99 99 $DGS BEG_FUN, ??bf_tsk_adc, U, U, 00H, 065H, 01H, 00H 100 100 $DGS AUX_BEG, 03DH, 02H, 059H 101 101 $DGS STA_SYM, _task_interval, ?L0003, U, 0CH, 03H, 00H, 00H 102 102 $DGS STA_SYM, _old_tune, ?L0004, U, 0CH, 03H, 00H, 00H 103 103 $DGS STA_SYM, _sndvol_codec, ?L0005, U, 0CH, 03H, 00H, 00H 104 104 $DGS STA_SYM, _bt_temp_old, ?L0006, U, 0CH, 03H, 00H, 00H 105 105 $DGS BEG_BLK, ??bb00_tsk_adc, U, U, 00H, 064H, 01H, 00H 106 106 $DGS AUX_BEG, 08H, 00H, 05DH 107 107 $DGS END_BLK, ??eb00_tsk_adc, U, U, 00H, 064H, 01H, 00H 108 108 $DGS AUX_END, 0AH 109 109 $DGS BEG_BLK, ??bb01_tsk_adc, U, U, 00H, 064H, 01H, 00H 110 110 $DGS AUX_BEG, 0CH, 00H, 061H 111 111 $DGS END_BLK, ??eb01_tsk_adc, U, U, 00H, 064H, 01H, 00H 112 112 $DGS AUX_END, 0EH 113 113 $DGS BEG_BLK, ??bb02_tsk_adc, U, U, 00H, 064H, 01H, 00H 114 114 $DGS AUX_BEG, 012H, 00H, 063H 115 115 $DGS BEG_BLK, ??bb03_tsk_adc, U, U, 00H, 064H, 01H, 00H 116 116 $DGS AUX_BEG, 014H, 00H, 065H 117 117 $DGS BEG_BLK, ??bb04_tsk_adc, U, U, 00H, 064H, 01H, 00H 118 118 $DGS AUX_BEG, 016H, 00H, 06DH 119 119 $DGS STA_SYM, _old_value, ?L0007, U, 0CH, 03H, 01H, 00H 120 120 $DGS AUX_STR, 00H, 01AH, 01H, 00H, 00H, 00H, 00H, 00H 121 121 $DGS STA_SYM, _diffs, ?L0008, U, 02H, 03H, 01H, 00H 122 122 $DGS AUX_STR, 00H, 01BH, 01H, 00H, 00H, 00H, 00H, 00H 123 123 $DGS REG_VAR, _temp, 06H, 0FFFFH, 010CH, 04H, 01H, 00H 124 124 $DGS AUX_STR, 00H, 01CH, 01H, 00H, 00H, 00H, 00H, 00H 125 125 $DGS BEG_BLK, ??bb05_tsk_adc, U, U, 00H, 064H, 01H, 00H 126 126 $DGS AUX_BEG, 01FH, 00H, 071H 127 127 $DGS END_BLK, ??eb05_tsk_adc, U, U, 00H, 064H, 01H, 00H 128 128 $DGS AUX_END, 02AH 129 129 $DGS BEG_BLK, ??bb06_tsk_adc, U, U, 00H, 064H, 01H, 00H 130 130 $DGS AUX_BEG, 02CH, 00H, 075H 131 131 $DGS STA_SYM, _kikan_count, ?L0009, U, 0CH, 03H, 01H, 00H 132 132 $DGS AUX_STR, 00H, 02EH, 01H, 00H, 00H, 00H, 00H, 00H 133 133 $DGS BEG_BLK, ??bb07_tsk_adc, U, U, 00H, 064H, 01H, 00H 134 134 $DGS AUX_BEG, 030H, 00H, 079H 135 135 $DGS END_BLK, ??eb07_tsk_adc, U, U, 00H, 064H, 01H, 00H 136 136 $DGS AUX_END, 032H 137 137 $DGS BEG_BLK, ??bb08_tsk_adc, U, U, 00H, 064H, 01H, 00H 138 138 $DGS AUX_BEG, 034H, 00H, 07DH 139 139 $DGS END_BLK, ??eb08_tsk_adc, U, U, 00H, 064H, 01H, 00H 140 140 $DGS AUX_END, 036H 141 141 $DGS BEG_BLK, ??bb09_tsk_adc, U, U, 00H, 064H, 01H, 00H 142 142 $DGS AUX_BEG, 039H, 00H, 07FH 143 143 $DGS BEG_BLK, ??bb0A_tsk_adc, U, U, 00H, 064H, 01H, 00H 144 144 $DGS AUX_BEG, 03BH, 00H, 083H 145 145 $DGS END_BLK, ??eb0A_tsk_adc, U, U, 00H, 064H, 01H, 00H 146 146 $DGS AUX_END, 03DH 147 147 $DGS BEG_BLK, ??bb0B_tsk_adc, U, U, 00H, 064H, 01H, 00H 148 148 $DGS AUX_BEG, 03FH, 00H, 08DH 149 149 $DGS END_BLK, ??eb0B_tsk_adc, U, U, 00H, 064H, 01H, 00H 150 150 $DGS AUX_END, 041H 151 151 $DGS END_BLK, ??eb09_tsk_adc, U, U, 00H, 064H, 01H, 00H 152 152 $DGS AUX_END, 045H 153 153 $DGS END_BLK, ??eb06_tsk_adc, U, U, 00H, 064H, 01H, 00H 154 154 $DGS AUX_END, 046H 155 155 $DGS END_BLK, ??eb04_tsk_adc, U, U, 00H, 064H, 01H, 00H 156 156 $DGS AUX_END, 047H 157 157 $DGS BEG_BLK, ??bb0C_tsk_adc, U, U, 00H, 064H, 01H, 00H 158 158 $DGS AUX_BEG, 04CH, 00H, 095H 159 159 $DGS REG_VAR, _temp, 06H, 0FFFFH, 010CH, 04H, 01H, 00H 160 160 $DGS AUX_STR, 00H, 04EH, 01H, 00H, 00H, 00H, 00H, 00H 161 161 $DGS STA_SYM, _vol_old, ?L0010, U, 0CH, 03H, 01H, 00H 162 162 $DGS AUX_STR, 00H, 04FH, 01H, 00H, 00H, 00H, 00H, 00H 163 163 $DGS STA_SYM, _force_update_vol, ?L0011, U, 0CH, 03H, 01H, 00H 164 164 $DGS AUX_STR, 00H, 050H, 01H, 00H, 00H, 00H, 00H, 00H 165 165 $DGS BEG_BLK, ??bb0D_tsk_adc, U, U, 00H, 064H, 01H, 00H 166 166 $DGS AUX_BEG, 053H, 00H, 097H 167 167 $DGS BEG_BLK, ??bb0E_tsk_adc, U, U, 00H, 064H, 01H, 00H 168 168 $DGS AUX_BEG, 055H, 00H, 09DH 169 169 $DGS END_BLK, ??eb0E_tsk_adc, U, U, 00H, 064H, 01H, 00H 170 170 $DGS AUX_END, 062H 171 171 $DGS END_BLK, ??eb0D_tsk_adc, U, U, 00H, 064H, 01H, 00H 172 172 $DGS AUX_END, 063H 173 173 $DGS BEG_BLK, ??bb0F_tsk_adc, U, U, 00H, 064H, 01H, 00H 174 174 $DGS AUX_BEG, 065H, 00H, 09FH 175 175 $DGS BEG_BLK, ??bb10_tsk_adc, U, U, 00H, 064H, 01H, 00H 176 176 $DGS AUX_BEG, 068H, 00H, 0A7H 177 177 $DGS END_BLK, ??eb10_tsk_adc, U, U, 00H, 064H, 01H, 00H 178 178 $DGS AUX_END, 070H 179 179 $DGS END_BLK, ??eb0F_tsk_adc, U, U, 00H, 064H, 01H, 00H 180 180 $DGS AUX_END, 071H 181 181 $DGS END_BLK, ??eb0C_tsk_adc, U, U, 00H, 064H, 01H, 00H 182 182 $DGS AUX_END, 072H 183 183 $DGS BEG_BLK, ??bb11_tsk_adc, U, U, 00H, 064H, 01H, 00H 184 184 $DGS AUX_BEG, 077H, 00H, 0A9H 185 185 $DGS BEG_BLK, ??bb12_tsk_adc, U, U, 00H, 064H, 01H, 00H 186 186 $DGS AUX_BEG, 079H, 00H, 00H 187 187 $DGS END_BLK, ??eb12_tsk_adc, U, U, 00H, 064H, 01H, 00H 188 188 $DGS AUX_END, 086H 189 189 $DGS END_BLK, ??eb11_tsk_adc, U, U, 00H, 064H, 01H, 00H 190 190 $DGS AUX_END, 087H 191 191 $DGS END_BLK, ??eb03_tsk_adc, U, U, 00H, 064H, 01H, 00H 192 192 $DGS AUX_END, 089H 193 193 $DGS END_BLK, ??eb02_tsk_adc, U, U, 00H, 064H, 01H, 00H 194 194 $DGS AUX_END, 08AH 195 195 $DGS END_FUN, ??ef_tsk_adc, U, U, 00H, 065H, 01H, 00H 196 196 $DGS AUX_END, 09FH 197 197 $DGS STA_SYM, _getmean3, U, U, 0CH, 03H, 01H, 02H 198 198 $DGS AUX_FUN, 00H, U, U, 0D5H, 00H, 00H 199 199 $DGS BEG_FUN, ??bf_getmean3, U, U, 00H, 065H, 01H, 00H 200 200 $DGS AUX_BEG, 0E4H, 02H, 0BBH 201 201 $DGS REG_PAR, _hist, 0103H, 0FFFFH, 010CH, 011H, 01H, 01H 202 202 $DGS AUX_STR, 00H, 00H, 02H, 00H, 00H, 00H, 00H, 01H 203 203 $DGS BEG_BLK, ??bb00_getmean3, U, U, 00H, 064H, 01H, 00H 204 204 $DGS AUX_BEG, 03H, 00H, 0BDH 205 205 $DGS BEG_BLK, ??bb01_getmean3, U, U, 00H, 064H, 01H, 00H 206 206 $DGS AUX_BEG, 05H, 00H, 0C1H 207 207 $DGS END_BLK, ??eb01_getmean3, U, U, 00H, 064H, 01H, 00H 208 208 $DGS AUX_END, 07H 209 209 $DGS BEG_BLK, ??bb02_getmean3, U, U, 00H, 064H, 01H, 00H 210 210 $DGS AUX_BEG, 09H, 00H, 0C7H 211 211 $DGS END_BLK, ??eb02_getmean3, U, U, 00H, 064H, 01H, 00H 212 212 $DGS AUX_END, 0BH 213 213 $DGS END_BLK, ??eb00_getmean3, U, U, 00H, 064H, 01H, 00H 214 214 $DGS AUX_END, 0CH 215 215 $DGS BEG_BLK, ??bb03_getmean3, U, U, 00H, 064H, 01H, 00H 216 216 $DGS AUX_BEG, 0CH, 00H, 0C9H 217 217 $DGS BEG_BLK, ??bb04_getmean3, U, U, 00H, 064H, 01H, 00H 218 218 $DGS AUX_BEG, 0EH, 00H, 0CDH 219 219 $DGS END_BLK, ??eb04_getmean3, U, U, 00H, 064H, 01H, 00H 220 220 $DGS AUX_END, 010H 221 221 $DGS BEG_BLK, ??bb05_getmean3, U, U, 00H, 064H, 01H, 00H 222 222 $DGS AUX_BEG, 012H, 00H, 00H 223 223 $DGS END_BLK, ??eb05_getmean3, U, U, 00H, 064H, 01H, 00H 224 224 $DGS AUX_END, 014H 225 225 $DGS END_BLK, ??eb03_getmean3, U, U, 00H, 064H, 01H, 00H 226 226 $DGS AUX_END, 015H 227 227 $DGS END_FUN, ??ef_getmean3, U, U, 00H, 065H, 01H, 00H 228 228 $DGS AUX_END, 016H 229 229 $DGS GLV_SYM, _int_adc, U, U, 0E001H, 026H, 01H, 02H 230 230 $DGS AUX_FUN, 00H, U, U, 0EEH, 00H, 00H 231 231 $DGS BEG_FUN, ??bf_int_adc, U, U, 00H, 065H, 01H, 00H 232 232 $DGS AUX_BEG, 0102H, 016H, 0E0H 233 233 $DGS STA_SYM, _hist_tune, ?L0055, U, 0CH, 03H, 01H, 03H 234 234 $DGS AUX_STR, 00H, 00H, 03H, 03H, 00H, 00H, 00H, 00H 235 235 $DGS STA_SYM, _hist_snd_vol, ?L0056, U, 0CH, 03H, 01H, 03H 236 236 $DGS AUX_STR, 00H, 00H, 03H, 03H, 00H, 00H, 00H, 00H 237 237 $DGS STA_SYM, _hist_bt_temp, ?L0057, U, 0CH, 03H, 01H, 03H 238 238 $DGS AUX_STR, 00H, 00H, 03H, 03H, 00H, 00H, 00H, 00H 239 239 $DGS STA_SYM, _index, ?L0058, U, 0CH, 03H, 00H, 00H 240 240 $DGS BEG_BLK, ??bb00_int_adc, U, U, 00H, 064H, 01H, 00H 241 241 $DGS AUX_BEG, 09H, 00H, 0E4H 242 242 $DGS END_BLK, ??eb00_int_adc, U, U, 00H, 064H, 01H, 00H 243 243 $DGS AUX_END, 02EH 244 244 $DGS BEG_BLK, ??bb01_int_adc, U, U, 00H, 064H, 01H, 00H 245 245 $DGS AUX_BEG, 034H, 00H, 0E8H 246 246 $DGS END_BLK, ??eb01_int_adc, U, U, 00H, 064H, 01H, 00H 247 247 $DGS AUX_END, 037H 248 248 $DGS BEG_BLK, ??bb02_int_adc, U, U, 00H, 064H, 01H, 00H 249 249 $DGS AUX_BEG, 039H, 00H, 00H 250 250 $DGS END_BLK, ??eb02_int_adc, U, U, 00H, 064H, 01H, 00H 251 251 $DGS AUX_END, 03EH 252 252 $DGS END_FUN, ??ef_int_adc, U, U, 00H, 065H, 01H, 00H 253 253 $DGS AUX_END, 03FH 254 254 $DGS GLV_SYM, _get_adc, U, U, 0CH, 026H, 01H, 02H 255 255 $DGS AUX_FUN, 00H, U, U, 0FAH, 00H, 00H 256 256 $DGS BEG_FUN, ??bf_get_adc, U, U, 00H, 065H, 01H, 00H 257 257 $DGS AUX_BEG, 0148H, 02H, 0F4H 258 258 $DGS REG_PAR, _ch, 06H, 0FFFFH, 010CH, 011H, 00H, 00H 259 259 $DGS REG_VAR, _temp, 07H, 0FFFFH, 010CH, 04H, 00H, 00H 260 260 $DGS BEG_BLK, ??bb00_get_adc, U, U, 00H, 064H, 01H, 00H 261 261 $DGS AUX_BEG, 018H, 00H, 00H 262 262 $DGS END_BLK, ??eb00_get_adc, U, U, 00H, 064H, 01H, 00H 263 263 $DGS AUX_END, 018H 264 264 $DGS END_FUN, ??ef_get_adc, U, U, 00H, 065H, 01H, 00H 265 265 $DGS AUX_END, 01DH 266 266 $DGS GLV_SYM, _adc_updated, U, U, 034CH, 027H, 00H, 00H 267 267 $DGS GLV_SYM, _adc_raw_vol, U, U, 0CH, 026H, 00H, 00H 268 268 $DGS GLV_SYM, _adc_raw_dep, U, U, 0CH, 026H, 00H, 00H 269 269 $DGS GLV_SYM, _abs, U, U, 04H, 02H, 01H, 02H 270 270 $DGS AUX_FUN, 00H, U, U, 00H, 00H, 00H 271 271 $DGS GLV_SYM, _iic_mcu_write_a_byte, U, U, 0CH, 02H, 01H, 02H 272 272 $DGS AUX_FUN, 00H, U, U, 00H, 00H, 00H 273 273 $DGS GLV_SYM, _system_status, U, U, 08H, 02H, 01H, 00H 274 274 $DGS AUX_STR, 02FH, 00H, 04H, 00H, 00H, 00H, 00H, 00H 275 275 $DGS GLV_SYM, _vreg_ctr, U, U, 0CH, 02H, 01H, 03H 276 276 $DGS AUX_STR, 00H, 00H, 01H, 01H, 00H, 00H, 00H, 00H 277 277 $DGS GLV_SYM, _vreg_twl, U, U, 0CH, 02H, 01H, 03H 278 278 $DGS AUX_STR, 00H, 00H, 01H, 01H, 00H, 00H, 00H, 00H 279 279 $DGS GLV_SYM, _@SEGAX, U, U, 00H, 02H, 00H, 00H 280 280 $DGS GLV_SYM, _raw_adc_temperature, U, U, 0CH, 02H, 00H, 00H 281 281 $DGS GLV_SYM, _PM_bt_temp_update, U, U, 0AH, 02H, 01H, 02H 282 282 $DGS AUX_FUN, 041H, U, U, 00H, 00H, 00H 283 283 $DGS GLV_SYM, _renge_task_immed_add, U, U, 0CH, 02H, 01H, 02H 284 284 $DGS AUX_FUN, 00H, U, U, 00H, 00H, 00H 285 285 $DGS GLV_SYM, _@SEGDE, U, U, 00H, 02H, 00H, 00H 286 286 $DGS GLV_SYM, _@RTARG0, U, U, 00H, 02H, 00H, 00H 287 287 288 288 EXTRN _abs 289 289 EXTRN _iic_mcu_write_a_byte 290 290 EXTRN _system_status 291 291 EXTRN _vreg_ctr 292 292 EXTRN _vreg_twl 293 293 EXTRN _@SEGAX 294 294 EXTRN _@SEGDE 295 295 EXTRN _@RTARG0 296 296 EXTRN _raw_adc_temperature 297 297 EXTRN _PM_bt_temp_update 298 298 EXTRN _renge_task_immed_add 299 299 PUBLIC _adc_updated 300 300 PUBLIC _adc_raw_vol 301 301 PUBLIC _adc_raw_dep 302 302 PUBLIC _tsk_adc 303 303 PUBLIC _int_adc 304 304 PUBLIC _get_adc 305 305 306 306 ----- @@BITS BSEG 307 307 00000.0 _adc_updated DBIT 308 308 309 309 ----- @@CNST CSEG MIRRORP 310 310 00000 01 _lpf_coeff: DB 01H ; 1 311 311 00001 02 DB 02H ; 2 312 312 00002 02 DB 02H ; 2 313 313 00003 03 DB 03H ; 3 314 314 00004 03 DB 03H ; 3 315 315 00005 02 DB 02H ; 2 316 316 00006 00 DB 00H ; 0 317 317 00007 FE DB 0FEH ; 254 318 318 00008 FB DB 0FBH ; 251 319 319 00009 F7 DB 0F7H ; 247 320 320 0000A F3 DB 0F3H ; 243 321 321 0000B F0 DB 0F0H ; 240 322 322 0000C F0 DB 0F0H ; 240 323 323 0000D F3 DB 0F3H ; 243 324 324 0000E FA DB 0FAH ; 250 325 325 0000F 04 DB 04H ; 4 326 326 00010 12 DB 012H ; 18 327 327 00011 25 DB 025H ; 37 328 328 00012 38 DB 038H ; 56 329 329 00013 4D DB 04DH ; 77 330 330 00014 5F DB 05FH ; 95 331 331 00015 6E DB 06EH ; 110 332 332 00016 77 DB 077H ; 119 333 333 00017 7A DB 07AH ; 122 334 334 00018 77 DB 077H ; 119 335 335 00019 6E DB 06EH ; 110 336 336 0001A 5F DB 05FH ; 95 337 337 0001B 4D DB 04DH ; 77 338 338 0001C 38 DB 038H ; 56 339 339 0001D 25 DB 025H ; 37 340 340 0001E 12 DB 012H ; 18 341 341 0001F 04 DB 04H ; 4 342 342 00020 FA DB 0FAH ; 250 343 343 00021 F3 DB 0F3H ; 243 344 344 00022 F0 DB 0F0H ; 240 345 345 00023 F0 DB 0F0H ; 240 346 346 00024 F3 DB 0F3H ; 243 347 347 00025 F7 DB 0F7H ; 247 348 348 00026 FB DB 0FBH ; 251 349 349 00027 FE DB 0FEH ; 254 350 350 00028 00 DB 00H ; 0 351 351 00029 02 DB 02H ; 2 352 352 0002A 03 DB 03H ; 3 353 353 0002B 03 DB 03H ; 3 354 354 0002C 02 DB 02H ; 2 355 355 0002D 02 DB 02H ; 2 356 356 0002E 01 DB 01H ; 1 357 357 0002F 7F _slider_to_codec: DB 07FH ; 127 358 358 00030 7E DB 07EH ; 126 359 359 00031 7D DB 07DH ; 125 360 360 00032 7C DB 07CH ; 124 361 361 00033 7B DB 07BH ; 123 362 362 00034 7A DB 07AH ; 122 363 363 00035 79 DB 079H ; 121 364 364 00036 78 DB 078H ; 120 365 365 00037 77 DB 077H ; 119 366 366 00038 76 DB 076H ; 118 367 367 00039 75 DB 075H ; 117 368 368 0003A 74 DB 074H ; 116 369 369 0003B 73 DB 073H ; 115 370 370 0003C 72 DB 072H ; 114 371 371 0003D 71 DB 071H ; 113 372 372 0003E 70 DB 070H ; 112 373 373 0003F 6F DB 06FH ; 111 374 374 00040 6E DB 06EH ; 110 375 375 00041 6D DB 06DH ; 109 376 376 00042 6D DB 06DH ; 109 377 377 00043 6C DB 06CH ; 108 378 378 00044 6B DB 06BH ; 107 379 379 00045 6A DB 06AH ; 106 380 380 00046 69 DB 069H ; 105 381 381 00047 68 DB 068H ; 104 382 382 00048 67 DB 067H ; 103 383 383 00049 66 DB 066H ; 102 384 384 0004A 65 DB 065H ; 101 385 385 0004B 64 DB 064H ; 100 386 386 0004C 63 DB 063H ; 99 387 387 0004D 62 DB 062H ; 98 388 388 0004E 61 DB 061H ; 97 389 389 0004F 60 DB 060H ; 96 390 390 00050 5F DB 05FH ; 95 391 391 00051 5E DB 05EH ; 94 392 392 00052 5D DB 05DH ; 93 393 393 00053 5C DB 05CH ; 92 394 394 00054 5B DB 05BH ; 91 395 395 00055 5A DB 05AH ; 90 396 396 00056 59 DB 059H ; 89 397 397 00057 58 DB 058H ; 88 398 398 00058 57 DB 057H ; 87 399 399 00059 56 DB 056H ; 86 400 400 0005A 55 DB 055H ; 85 401 401 0005B 54 DB 054H ; 84 402 402 0005C 53 DB 053H ; 83 403 403 0005D 52 DB 052H ; 82 404 404 0005E 51 DB 051H ; 81 405 405 0005F 51 DB 051H ; 81 406 406 00060 50 DB 050H ; 80 407 407 00061 4F DB 04FH ; 79 408 408 00062 4E DB 04EH ; 78 409 409 00063 4D DB 04DH ; 77 410 410 00064 4C DB 04CH ; 76 411 411 00065 4B DB 04BH ; 75 412 412 00066 4A DB 04AH ; 74 413 413 00067 49 DB 049H ; 73 414 414 00068 48 DB 048H ; 72 415 415 00069 47 DB 047H ; 71 416 416 0006A 46 DB 046H ; 70 417 417 0006B 45 DB 045H ; 69 418 418 0006C 44 DB 044H ; 68 419 419 0006D 43 DB 043H ; 67 420 420 0006E 42 DB 042H ; 66 421 421 0006F 00 DB (1) 422 422 423 423 ----- @@R_INIT CSEG UNIT64KP 424 424 00000 00 DB 00H ; 0 425 425 00001 20 DB 020H ; 32 426 426 427 427 ----- @@INIT DSEG BASEP 428 428 00000 ?L0003: DS (1) 429 429 00001 ?L0009: DS (1) 430 430 431 431 ----- @@DATA DSEG BASEP 432 432 00000 _adc_raw_vol: DS (1) 433 433 00001 _adc_raw_dep: DS (1) 434 434 00002 ?L0004: DS (1) 435 435 00003 ?L0005: DS (1) 436 436 00004 ?L0006: DS (1) 437 437 00005 ?L0007: DS (1) 438 438 00006 ?L0008: DS (1) 439 439 00007 ?L0010: DS (1) 440 440 00008 ?L0011: DS (1) 441 441 00009 ?L0055: DS (3) 442 442 0000C ?L0056: DS (3) 443 443 0000F ?L0057: DS (3) 444 444 00012 ?L0058: DS (1) 445 445 00013 DS (1) 446 446 447 447 ----- @@R_INIS CSEG UNIT64KP 448 448 449 449 ----- @@INIS DSEG SADDRP 450 450 451 451 ----- @@DATS DSEG SADDRP 452 452 453 453 ----- @@CNSTL CSEG PAGE64KP 454 454 455 455 ----- @@RLINIT CSEG UNIT64KP 456 456 457 457 ----- @@INITL DSEG UNIT64KP 458 458 459 459 ----- @@DATAL DSEG UNIT64KP 460 460 461 461 ----- @@CALT CSEG CALLT0 462 462 463 463 ; Sub-Routines created by CC78K0R 464 464 465 465 ----- ROM_CODE CSEG BASE 466 466 00000 bs_S0076: 467 467 00000 RD90000 mov x,!_adc_raw_vol ;[INF] 3, 1 468 468 00003 F1 clrb a ;[INF] 1, 1 469 469 00004 312F sarw ax,2 ;[INF] 2, 1 470 470 00006 D7 ret ;[INF] 1, 6 471 471 00007 es_S0076: 472 472 473 473 ----- ROM_CODE CSEG BASE 474 474 00007 bs_F0075: 475 475 00007 70 mov x,a ;[INF] 1, 1 476 476 00008 6131 subc a,a ;[INF] 2, 1 477 477 0000A RFD0000 call !_abs ;[INF] 3, 3 478 478 0000D 13 movw ax,bc ;[INF] 1, 1 479 479 0000E 440200 cmpw ax,#02H ; 2 ;[INF] 3, 1 480 480 00011 71FE or1 CY,a.7 ;[INF] 2, 1 481 481 00013 D7 ret ;[INF] 1, 6 482 482 00014 es_F0075: 483 483 484 484 ----- ROM_CODE CSEG BASE 485 485 00014 bs_F0074: 486 486 00014 R492F00 mov a,_slider_to_codec[bc] ;[INF] 3, 1 487 487 00017 318E shrw ax,8 ;[INF] 2, 1 488 488 00019 C1 push ax ;[INF] 1, 1 489 489 0001A 5013 mov x,#013H ; 19 ;[INF] 2, 1 490 490 0001C C1 push ax ;[INF] 1, 1 491 491 0001D 50A4 mov x,#0A4H ; 164 ;[INF] 2, 1 492 492 0001F RFD0000 call !_iic_mcu_write_a_byte ;[INF] 3, 3 493 493 00022 1004 addw sp,#04H ; 4 ;[INF] 2, 1 494 494 00024 D7 ret ;[INF] 1, 6 495 495 00025 es_F0074: 496 496 497 497 ; *** Sub-Routine Information *** 498 498 ; 499 499 ; $SUB bs_F0074 500 500 ; CODE SIZE= 17 bytes 501 501 ; 502 502 ; $SUB bs_F0075 503 503 ; CODE SIZE= 13 bytes 504 504 ; 505 505 ; $SUB bs_S0076 506 506 ; CODE SIZE= 7 bytes 507 507 508 508 ; End of Sub-Routines 509 509 510 510 ; line 1 : /* ======================================================== 511 511 ; line 2 : 藤田@開技 512 512 ; line 3 : nintendo 513 513 ; line 4 : '09 Apr 514 514 ; line 5 : ======================================================== */ 515 515 ; line 6 : #include "incs.h" 516 516 ; line 7 : #include "adc.h" 517 517 ; line 8 : #include "pm.h" 518 518 ; line 9 : 519 519 ; line 10 : #include "led.h" 520 520 ; line 11 : 521 521 ; line 12 : bit adc_updated; 522 522 ; line 13 : 523 523 ; line 14 : u8 adc_raw_vol; 524 524 ; line 15 : u8 adc_raw_dep; 525 525 ; line 16 : 526 526 ; line 17 : #define INTERVAL_TSK_ADC 3 527 527 ; line 18 : /* ======================================================== 528 528 ; line 19 : ADC設定と、開始 529 529 ; line 20 : 530 530 ; line 21 : 以下のピンは主にここで操作・監視されます。 531 531 ; line 22 : ・BT_TEMP,_P 532 532 ; line 23 : ・ADIN1 533 533 ; line 24 : ・VOL 534 534 ; line 25 : 535 535 ; line 26 : 関係ありそうですが別のところで管理しています 536 536 ; line 27 : ・PM_BT_DET,_P PM_init 537 537 ; line 28 : 538 538 ; line 29 : ・8tics毎に呼ばれ、3チャンネル分取り込むとADCを停止します。 539 539 ; line 30 :  タスク起動時、レジスタには前回の取り込み値が入っています。 540 540 ; line 31 : ======================================================== */ 541 541 ; line 32 : /* 542 542 ; line 33 : // max -4db 543 543 ; line 34 : static const u8 slider_to_codec[64] = 544 544 ; line 35 : { 545 545 ; line 36 : 127, 125, 124, 123, 121, 120, 119, 117, 546 546 ; line 37 : 116, 115, 113, 112, 111, 109, 108, 107, 547 547 ; line 38 : 105, 104, 103, 101, 100, 99, 98, 96, 548 548 ; line 39 : 95, 94, 92, 91, 90, 88, 87, 86, 549 549 ; line 40 : 84, 83, 82, 80, 79, 78, 76, 75, 550 550 ; line 41 : 74, 72, 71, 70, 69, 67, 66, 65, 551 551 ; line 42 : 63, 62, 61, 59, 58, 57, 55, 54, 552 552 ; line 43 : 53, 51, 50, 49, 47, 46, 45, 44 553 553 ; line 44 : }; 554 554 ; line 45 : */ 555 555 ; line 46 : 556 556 ; line 47 : // max -10db 557 557 ; line 48 : static const u8 slider_to_codec[64] = 558 558 ; line 49 : { 559 559 ; line 50 : 127, 126, 125, 124, 123, 122, 121, 120, 560 560 ; line 51 : 119, 118, 117, 116, 115, 114, 113, 112, 561 561 ; line 52 : 111, 110, 109, 109, 108, 107, 106, 105, 562 562 ; line 53 : 104, 103, 102, 101, 100, 99, 98, 97, 563 563 ; line 54 : 96, 95, 94, 93, 92, 91, 90, 89, 564 564 ; line 55 : 88, 87, 86, 85, 84, 83, 82, 81, 565 565 ; line 56 : 81, 80, 79, 78, 77, 76, 75, 74, 566 566 ; line 57 : 73, 72, 71, 70, 69, 68, 67, 66 567 567 ; line 58 : }; 568 568 ; line 59 : 569 569 ; line 60 : void tsk_adc( ) 570 570 ; line 61 : { 571 571 572 572 ----- ROM_CODE CSEG BASE 573 573 00025 _tsk_adc: 574 574 $DGL 1,81 575 575 00025 C7 push hl ;[INF] 1, 1 576 576 00026 ??bf_tsk_adc: 577 577 ; line 62 : static u8 task_interval = 0; 578 578 ; line 63 : static u8 old_tune; 579 579 ; line 64 : static u8 sndvol_codec; 580 580 ; line 65 : static u8 bt_temp_old; 581 581 ; line 66 : 582 582 ; line 67 : if( task_interval-- != 0 ) 583 583 $DGL 0,7 584 584 00026 R8F0000 mov a,!?L0003 ; task_interval ;[INF] 3, 1 585 585 00029 RB00000 dec !?L0003 ; task_interval ;[INF] 3, 2 586 586 0002C D1 cmp0 a ;[INF] 1, 1 587 587 0002D 61E8 skz ;[INF] 2, 1 588 588 0002F RED5B01 br !?L0002 ;[INF] 3, 3 589 589 ; line 68 : { 590 590 00032 ??bb00_tsk_adc: 591 591 ; line 69 : return; 592 592 00032 ??eb00_tsk_adc: 593 593 ; line 70 : } 594 594 ; line 71 : else 595 595 ; line 72 : { 596 596 00032 ??bb01_tsk_adc: 597 597 ; line 73 : task_interval = (u8)( INTERVAL_TSK_ADC / SYS_INTERVAL_TI 598 598 ; CK ); 599 599 $DGL 0,13 600 600 00032 RE50000 oneb !?L0003 ; task_interval ;[INF] 3, 1 601 601 00035 ??eb01_tsk_adc: 602 602 ; line 74 : } 603 603 ; line 75 : 604 604 ; line 76 : 605 605 ; line 77 : if( adc_updated ) 606 606 $DGL 0,17 607 607 00035 R31020003 bt _adc_updated,$$+7 ;[INF] 4, 5 608 608 00039 RED3C01 br !?L0016 ;[INF] 3, 3 609 609 ; line 78 : { 610 610 0003C ??bb02_tsk_adc: 611 611 ; line 79 : if( system_status.pwr_state == ON ) 612 612 $DGL 0,19 613 613 0003C R40000003 cmp !_system_status,#03H ; 3 ;[INF] 4, 1 614 614 00040 61E8 skz ;[INF] 2, 1 615 615 00042 RED3C01 br !?L0016 ;[INF] 3, 3 616 616 ; line 80 : { 617 617 00045 ??bb03_tsk_adc: 618 618 ; line 81 : // Tune /////////////////////////////////////// 619 619 ; line 82 : { 620 620 00045 ??bb04_tsk_adc: 621 621 ; line 83 : // 似非ヒステリシス V2 622 622 ; line 84 : // ガリオームには適さない 623 623 ; line 85 : #define KIKAN 32 624 624 ; line 86 : static u8 old_value; 625 625 ; line 87 : static s8 diffs; 626 626 ; line 88 : u8 temp; 627 627 ; line 89 : 628 628 ; line 90 : if( abs( adc_raw_dep - old_value ) >= 2 ) 629 629 $DGL 0,30 630 630 00045 R8F0100 mov a,!_adc_raw_dep ;[INF] 3, 1 631 631 00048 R2F0500 sub a,!?L0007 ; old_value ;[INF] 3, 1 632 632 0004B RFD0700 call !bs_F0075 ;[INF] 3, 3 633 633 0004E DC11 bc $?L0018 ;[INF] 2, 4 634 634 ; line 91 : { 635 635 00050 ??bb05_tsk_adc: 636 636 ; line 92 : // 大きく離れた 637 637 ; line 93 : vreg_ctr[ VREG_C_TUNE ] = adc_raw_dep; 638 638 $DGL 0,33 639 639 00050 R8F0100 mov a,!_adc_raw_dep ;[INF] 3, 1 640 640 00053 R9F0800 mov !_vreg_ctr+8,a ;[INF] 3, 1 641 641 ; line 94 : old_value = adc_raw_dep; 642 642 $DGL 0,34 643 643 00056 R8F0100 mov a,!_adc_raw_dep ;[INF] 3, 1 644 644 00059 R9F0500 mov !?L0007,a ; old_value ;[INF] 3, 1 645 645 ; line 95 : #if 0 646 646 ; line 96 : 割り込み入れない; 647 647 ; line 97 : 割り込みを入れるようであれば、ちゃんと変化チ 648 648 ; ェックする; 649 649 ; line 98 : 650 650 ; line 99 : set_irq( VREG_C_IRQ0, REG_BIT_VR_TUNE_CHANGE 651 651 ; ); 652 652 ; line 100 : #endif 653 653 ; line 101 : diffs = 0; 654 654 $DGL 0,41 655 655 0005C RF50600 clrb !?L0008 ; diffs ;[INF] 3, 1 656 656 0005F ??eb05_tsk_adc: 657 657 ; line 102 : } 658 658 $DGL 0,42 659 659 0005F EF5F br $?L0024 ;[INF] 2, 3 660 660 00061 ?L0018: 661 661 ; line 103 : else 662 662 ; line 104 : { 663 663 00061 ??bb06_tsk_adc: 664 664 ; line 105 : // 近所の値でも、ある期間でいっぱい偏っていた 665 665 ; らそっちに寄せる 666 666 ; line 106 : static u8 kikan_count = KIKAN; 667 667 ; line 107 : if( old_value < adc_raw_dep ) 668 668 $DGL 0,47 669 669 00061 R8F0500 mov a,!?L0007 ; old_value ;[INF] 3, 1 670 670 00064 R4F0100 cmp a,!_adc_raw_dep ;[INF] 3, 1 671 671 00067 DE05 bnc $?L0020 ;[INF] 2, 4 672 672 ; line 108 : { 673 673 00069 ??bb07_tsk_adc: 674 674 ; line 109 : diffs += 1; 675 675 $DGL 0,49 676 676 00069 RA00600 inc !?L0008 ; diffs ;[INF] 3, 2 677 677 0006C ??eb07_tsk_adc: 678 678 ; line 110 : } 679 679 $DGL 0,50 680 680 0006C EF0B br $?L0022 ;[INF] 2, 3 681 681 0006E ?L0020: 682 682 ; line 111 : else if( old_value > adc_raw_dep ) 683 683 $DGL 0,51 684 684 0006E R8F0100 mov a,!_adc_raw_dep ;[INF] 3, 1 685 685 00071 R4F0500 cmp a,!?L0007 ; old_value ;[INF] 3, 1 686 686 00074 61D8 sknc ;[INF] 2, 1 687 687 ; line 112 : { 688 688 00076 ??bb08_tsk_adc: 689 689 ; line 113 : diffs -= 1; 690 690 $DGL 0,53 691 691 00076 RB00600 dec !?L0008 ; diffs ;[INF] 3, 2 692 692 00079 ??eb08_tsk_adc: 693 693 ; line 114 : } 694 694 00079 ?L0022: 695 695 ; line 115 : 696 696 ; line 116 : if( --kikan_count == 0 ) 697 697 $DGL 0,56 698 698 00079 RB00100 dec !?L0009 ; kikan_count ;[INF] 3, 2 699 699 0007C RD50100 cmp0 !?L0009 ; kikan_count ;[INF] 3, 1 700 700 0007F DF3F bnz $?L0024 ;[INF] 2, 4 701 701 ; line 117 : { 702 702 00081 ??bb09_tsk_adc: 703 703 ; line 118 : if( diffs >= KIKAN && ( diffs < 64 )) 704 704 $DGL 0,58 705 705 00081 R8F0600 mov a,!?L0008 ; diffs ;[INF] 3, 1 706 706 00084 7C80 xor a,#080H ; 128 ;[INF] 2, 1 707 707 00086 4CA0 cmp a,#0A0H ; 160 ;[INF] 2, 1 708 708 00088 DC0E bc $?L0026 ;[INF] 2, 4 709 709 0008A R8F0600 mov a,!?L0008 ; diffs ;[INF] 3, 1 710 710 0008D 7C80 xor a,#080H ; 128 ;[INF] 2, 1 711 711 0008F 4CC0 cmp a,#0C0H ; 192 ;[INF] 2, 1 712 712 00091 DE05 bnc $?L0026 ;[INF] 2, 4 713 713 ; line 119 : { 714 714 00093 ??bb0A_tsk_adc: 715 715 ; line 120 : old_value += 1; 716 716 $DGL 0,60 717 717 00093 RA00500 inc !?L0007 ; old_value ;[INF] 3, 2 718 718 00096 ??eb0A_tsk_adc: 719 719 ; line 121 : } 720 720 $DGL 0,61 721 721 00096 EF1B br $?L0028 ;[INF] 2, 3 722 722 00098 ?L0026: 723 723 ; line 122 : else if( ( diffs <= ( 256 - KIKAN )) && 724 724 ; ( diffs > ( 128 + 64 ) )) // あらー? 725 725 $DGL 0,62 726 726 00098 R8F0600 mov a,!?L0008 ; diffs ;[INF] 3, 1 727 727 0009B 318F sarw ax,8 ;[INF] 2, 1 728 728 0009D 44E100 cmpw ax,#0E1H ; 225 ;[INF] 3, 1 729 729 000A0 71FE or1 CY,a.7 ;[INF] 2, 1 730 730 000A2 DE0F bnc $?L0028 ;[INF] 2, 4 731 731 000A4 R8F0600 mov a,!?L0008 ; diffs ;[INF] 3, 1 732 732 000A7 318F sarw ax,8 ;[INF] 2, 1 733 733 000A9 44C100 cmpw ax,#0C1H ; 193 ;[INF] 3, 1 734 734 000AC 71FE or1 CY,a.7 ;[INF] 2, 1 735 735 000AE 61C8 skc ;[INF] 2, 1 736 736 ; line 123 : { 737 737 000B0 ??bb0B_tsk_adc: 738 738 ; line 124 : old_value -= 1; 739 739 $DGL 0,64 740 740 000B0 RB00500 dec !?L0007 ; old_value ;[INF] 3, 2 741 741 000B3 ??eb0B_tsk_adc: 742 742 ; line 125 : } 743 743 000B3 ?L0028: 744 744 ; line 126 : vreg_ctr[ VREG_C_TUNE ] = old_value; 745 745 $DGL 0,66 746 746 000B3 R8F0500 mov a,!?L0007 ; old_value ;[INF] 3, 1 747 747 000B6 R9F0800 mov !_vreg_ctr+8,a ;[INF] 3, 1 748 748 ; line 127 : kikan_count = KIKAN; 749 749 $DGL 0,67 750 750 000B9 RCF010020 mov !?L0009,#020H ; kikan_count,32 ;[INF] 4, 1 751 751 ; line 128 : diffs = 0; 752 752 $DGL 0,68 753 753 000BD RF50600 clrb !?L0008 ; diffs ;[INF] 3, 1 754 754 000C0 ??eb09_tsk_adc: 755 755 ; line 129 : } 756 756 000C0 ?L0024: 757 757 000C0 ??eb06_tsk_adc: 758 758 ; line 130 : } 759 759 000C0 ??eb04_tsk_adc: 760 760 ; line 131 : } 761 761 ; line 132 : vreg_ctr[ VREG_C_DBG1 ] = vreg_ctr[ VREG_C_TUNE ]; 762 762 $DGL 0,72 763 763 000C0 R8F0800 mov a,!_vreg_ctr+8 ;[INF] 3, 1 764 764 000C3 R9F0500 mov !_vreg_ctr+5,a ;[INF] 3, 1 765 765 ; line 133 : vreg_ctr[ VREG_C_DBG2 ] = adc_raw_dep; // dbg 766 766 $DGL 0,73 767 767 000C6 R8F0100 mov a,!_adc_raw_dep ;[INF] 3, 1 768 768 000C9 R9F0600 mov !_vreg_ctr+6,a ;[INF] 3, 1 769 769 ; line 134 : 770 770 ; line 135 : // Volume ///////////////////////////////////// 771 771 ; line 136 : { 772 772 000CC ??bb0C_tsk_adc: 773 773 ; line 137 : // 似非ヒステリシスを付けて64段 774 774 ; line 138 : u8 temp; 775 775 ; line 139 : static u8 vol_old; 776 776 ; line 140 : static u8 force_update_vol; 777 777 ; line 141 : 778 778 ; line 142 : if( abs( adc_raw_vol - vol_old ) >= 2 ) // 779 779 ; 生値でこれくらいずれたら更新 780 780 $DGL 0,82 781 781 000CC R8F0000 mov a,!_adc_raw_vol ;[INF] 3, 1 782 782 000CF R2F0700 sub a,!?L0010 ; vol_old ;[INF] 3, 1 783 783 000D2 RFD0700 call !bs_F0075 ;[INF] 3, 3 784 784 000D5 DC22 bc $?L0030 ;[INF] 2, 4 785 785 ; line 143 : { 786 786 000D7 ??bb0D_tsk_adc: 787 787 ; line 144 : // if( vreg_ctr[ VREG_C_SND_VOL ] != ( adc_ra 788 788 ; w_vol / 4 ) ) 789 789 ; line 145 : { 790 790 000D7 ??bb0E_tsk_adc: 791 791 ; line 146 : vol_old = adc_raw_vol; 792 792 $DGL 0,86 793 793 000D7 R8F0000 mov a,!_adc_raw_vol ;[INF] 3, 1 794 794 000DA R9F0700 mov !?L0010,a ; vol_old ;[INF] 3, 1 795 795 ; line 147 : // レジスタ更新 796 796 ; line 148 : vreg_ctr[ VREG_C_SND_VOL ] = ( adc_raw_v 797 797 ; ol / 4 ); 798 798 $DGL 0,88 799 799 000DD RFD0000 call !bs_S0076 ;[INF] 3, 3 800 800 000E0 60 mov a,x ;[INF] 1, 1 801 801 000E1 R9F0900 mov !_vreg_ctr+9,a ;[INF] 3, 1 802 802 ; line 149 : vreg_twl[ REG_TWL_INT_ADRS_VOL ] = adc_r 803 803 ; aw_vol / ( 256 / 32 ); // ←adc値でよい 804 804 $DGL 0,89 805 805 000E4 RD90000 mov x,!_adc_raw_vol ;[INF] 3, 1 806 806 000E7 F1 clrb a ;[INF] 1, 1 807 807 000E8 313F sarw ax,3 ;[INF] 2, 1 808 808 000EA 60 mov a,x ;[INF] 1, 1 809 809 000EB R9F0600 mov !_vreg_twl+6,a ;[INF] 3, 1 810 810 ; line 150 : 811 811 ; line 151 : // codecに伝える 812 812 ; line 152 : iic_mcu_write_a_byte( IIC_SLA_CODEC, COD 813 813 ; EC_REG_VOL, slider_to_codec[ adc_raw_vol / 4 ] ); 814 814 $DGL 0,92 815 815 000EE RFD0000 call !bs_S0076 ;[INF] 3, 3 816 816 000F1 12 movw bc,ax ;[INF] 1, 1 817 817 000F2 RFD1400 call !bs_F0074 ;[INF] 3, 3 818 818 ; line 153 : #ifndef _MODEL_CTR_ 819 819 ; line 154 : iic_mcu_write_a_byte( IIC_SLA_DCP, 0, sl 820 820 ; ider_to_codec[ ( 255 - adc_raw_vol ) / 4 ] ); // todo 821 821 ; line 155 : #endif 822 822 ; line 156 : // set_irq( VREG_C_IRQ0, REG_BIT_VR_SNDVO 823 823 ; L_CHANGE ); // 割り込み廃止 824 824 ; line 157 : force_update_vol = 100; 825 825 $DGL 0,97 826 826 000F5 RCF080064 mov !?L0011,#064H ; force_update_vol,100 ;[INF] 4, 1 827 827 000F9 ??eb0E_tsk_adc: 828 828 ; line 158 : } 829 829 000F9 ??eb0D_tsk_adc: 830 830 ; line 159 : } 831 831 000F9 ?L0030: 832 832 ; line 160 : 833 833 ; line 161 : { 834 834 000F9 ??bb0F_tsk_adc: 835 835 ; line 162 : // ポーリング 836 836 ; line 163 : if( --force_update_vol == 0 ) 837 837 $DGL 0,103 838 838 000F9 RB00800 dec !?L0011 ; force_update_vol ;[INF] 3, 2 839 839 000FC RD50800 cmp0 !?L0011 ; force_update_vol ;[INF] 3, 1 840 840 000FF DF11 bnz $?L0032 ;[INF] 2, 4 841 841 ; line 164 : { 842 842 00101 ??bb10_tsk_adc: 843 843 ; line 165 : vol_old = adc_raw_vol; 844 844 $DGL 0,105 845 845 00101 R8F0000 mov a,!_adc_raw_vol ;[INF] 3, 1 846 846 00104 R9F0700 mov !?L0010,a ; vol_old ;[INF] 3, 1 847 847 ; line 166 : // レジスタ更新 848 848 ; line 167 : // vreg_ctr[ VREG_C_SND_VOL ] = temp; 849 849 ; line 168 : // vreg_twl[ REG_TWL_INT_ADRS_VOL ] = adc 850 850 ; _raw_vol / ( 256 / 32 ); // ←adc値でよい 851 851 ; line 169 : // codecに伝える 852 852 ; line 170 : iic_mcu_write_a_byte( IIC_SLA_CODEC, COD 853 853 ; EC_REG_VOL, slider_to_codec[ adc_raw_vol / 4 ] ); 854 854 $DGL 0,110 855 855 00107 RFD0000 call !bs_S0076 ;[INF] 3, 3 856 856 0010A 12 movw bc,ax ;[INF] 1, 1 857 857 0010B RFD1400 call !bs_F0074 ;[INF] 3, 3 858 858 ; line 171 : force_update_vol = 100; 859 859 $DGL 0,111 860 860 0010E RCF080064 mov !?L0011,#064H ; force_update_vol,100 ;[INF] 4, 1 861 861 00112 ??eb10_tsk_adc: 862 862 ; line 172 : } 863 863 00112 ?L0032: 864 864 00112 ??eb0F_tsk_adc: 865 865 ; line 173 : } 866 866 00112 ??eb0C_tsk_adc: 867 867 ; line 174 : } 868 868 ; line 175 : 869 869 ; line 176 : 870 870 ; line 177 : // TUNE_LED /////////////////////////////////// 871 871 ; line 178 : // ここで?仕様? 872 872 ; line 179 : { 873 873 00112 ??bb11_tsk_adc: 874 874 ; line 180 : switch ( vreg_ctr[VREG_C_LED_TUNE] ) 875 875 $DGL 0,120 876 876 00112 RD92C00 mov x,!_vreg_ctr+44 ;[INF] 3, 1 877 877 00115 F1 clrb a ;[INF] 1, 1 878 878 00116 E7 onew bc ;[INF] 1, 1 879 879 00117 240000 subw ax,#00H ; 0 ;[INF] 3, 1 880 880 0011A DD1A bz $?L0037 ;[INF] 2, 4 881 881 0011C 23 subw ax,bc ;[INF] 1, 1 882 882 0011D DD05 bz $?L0035 ;[INF] 2, 4 883 883 0011F 23 subw ax,bc ;[INF] 1, 1 884 884 00120 DD0A bz $?L0036 ;[INF] 2, 4 885 885 00122 EF12 br $?L0037 ;[INF] 2, 3 886 886 ; line 181 : { 887 887 00124 ??bb12_tsk_adc: 888 888 ; line 182 : case LED_TUNE_ILM_ON: 889 889 00124 ?L0035: 890 890 ; line 183 : LED_duty_TUNE = vreg_ctr[VREG_C_LED_BRIGHT]; 891 891 $DGL 0,123 892 892 00124 RD92800 mov x,!_vreg_ctr+40 ;[INF] 3, 1 893 893 00127 F1 clrb a ;[INF] 1, 1 894 894 00128 BD1A movw TDR01,ax ;[INF] 2, 1 895 895 ; line 184 : break; 896 896 $DGL 0,124 897 897 0012A EF0D br $?L0034 ;[INF] 2, 3 898 898 ; line 185 : 899 899 ; line 186 : case LED_TUNE_ILM_SVR: 900 900 0012C ?L0036: 901 901 ; line 187 : LED_duty_TUNE = vreg_ctr[VREG_C_TUNE] / 16; 902 902 $DGL 0,127 903 903 0012C RD90800 mov x,!_vreg_ctr+8 ;[INF] 3, 1 904 904 0012F F1 clrb a ;[INF] 1, 1 905 905 00130 314F sarw ax,4 ;[INF] 2, 1 906 906 00132 BD1A movw TDR01,ax ;[INF] 2, 1 907 907 ; line 188 : break; 908 908 $DGL 0,128 909 909 00134 EF03 br $?L0034 ;[INF] 2, 3 910 910 ; line 189 : 911 911 ; line 190 : case LED_TUNE_ILM_OFF: 912 912 00136 ?L0037: 913 913 ; line 191 : default: 914 914 ; line 192 : LED_duty_TUNE = 0; 915 915 $DGL 0,132 916 916 00136 F6 clrw ax ;[INF] 1, 1 917 917 00137 BD1A movw TDR01,ax ;[INF] 2, 1 918 918 ; line 193 : break; 919 919 00139 ??eb12_tsk_adc: 920 920 ; line 194 : } 921 921 00139 ?L0034: 922 922 00139 ??eb11_tsk_adc: 923 923 ; line 195 : } 924 924 ; line 196 : adc_updated = 0; 925 925 $DGL 0,136 926 926 00139 R710300 clr1 _adc_updated ;[INF] 3, 2 927 927 0013C ??eb03_tsk_adc: 928 928 ; line 197 : } 929 929 0013C ?L0016: 930 930 0013C ??eb02_tsk_adc: 931 931 ; line 198 : } 932 932 ; line 199 : 933 933 ; line 200 : 934 934 ; line 201 : ADCEN = 1; 935 935 $DGL 0,141 936 936 0013C 7150F000 set1 !PER0.5 ;[INF] 4, 2 937 937 ; line 202 : ADM = 0b00011011; // セレクトモード、章圧、fCLK/6 ///こ 938 938 ; こから ↓ 939 939 $DGL 0,142 940 940 00140 CE301B mov ADM,#01BH ; 27 ;[INF] 3, 1 941 941 ; line 203 : 942 942 ; line 204 : ADPC = 0x06; // ADCポートのセレクト 943 943 $DGL 0,144 944 944 00143 CF170006 mov !ADPC,#06H ; 6 ;[INF] 4, 1 945 945 ; line 205 : ADS = ADC_SEL_TUNE; 946 946 $DGL 0,145 947 947 00147 CE3106 mov ADS,#06H ; 6 ;[INF] 3, 1 948 948 ; line 206 : NOP(); 949 949 $DGL 0,146 950 950 0014A 00 nop ;[INF] 1, 1 951 951 ; line 207 : NOP(); 952 952 $DGL 0,147 953 953 0014B 00 nop ;[INF] 1, 1 954 954 ; line 208 : NOP(); 955 955 $DGL 0,148 956 956 0014C 00 nop ;[INF] 1, 1 957 957 ; line 209 : NOP(); 958 958 $DGL 0,149 959 959 0014D 00 nop ;[INF] 1, 1 960 960 ; line 210 : NOP(); 961 961 $DGL 0,150 962 962 0014E 00 nop ;[INF] 1, 1 963 963 ; line 211 : NOP(); 964 964 $DGL 0,151 965 965 0014F 00 nop ;[INF] 1, 1 966 966 ; line 212 : NOP(); 967 967 $DGL 0,152 968 968 00150 00 nop ;[INF] 1, 1 969 969 ; line 213 : NOP(); 970 970 $DGL 0,153 971 971 00151 00 nop ;[INF] 1, 1 972 972 ; line 214 : ADCS = 1; // AD開始。 /// 973 973 ; ここまで ↑ までに1us=8clk以上開ける 974 974 $DGL 0,154 975 975 00152 717A30 set1 ADM.7 ;[INF] 3, 2 976 976 ; line 215 : 977 977 ; line 216 : ADIF = 0; 978 978 $DGL 0,156 979 979 00155 710BE3 clr1 IF1H.0 ;[INF] 3, 2 980 980 ; line 217 : ADMK = 0; 981 981 $DGL 0,157 982 982 00158 710BE7 clr1 MK1H.0 ;[INF] 3, 2 983 983 ; line 218 : 984 984 ; line 219 : } 985 985 0015B ?L0002: 986 986 $DGL 0,159 987 987 0015B ??ef_tsk_adc: 988 988 0015B C6 pop hl ;[INF] 1, 1 989 989 0015C D7 ret ;[INF] 1, 6 990 990 0015D ??ee_tsk_adc: 991 991 ; line 220 : 992 992 ; line 221 : 993 993 ; line 222 : /* ======================================================== 994 994 ; line 223 :  過去3つのminでもMAXでもない値を返す 995 995 ; line 224 :  突発的なノイズを除く。 996 996 ; line 225 :  根本対策ではないが、これはこれで使い道がある。 997 997 ; line 226 : ======================================================== */ 998 998 ; line 227 : static u8 getmean3( u8 * hist ) 999 999 ; line 228 : { 1000 1000 0015D _getmean3: 1001 1001 $DGL 1,181 1002 1002 0015D C7 push hl ;[INF] 1, 1 1003 1003 0015E 16 movw hl,ax ;[INF] 1, 1 1004 1004 0015F ??bf_getmean3: 1005 1005 ; line 229 : if( *hist > *( hist + 1 ) ) 1006 1006 $DGL 0,2 1007 1007 0015F 8B mov a,[hl] ;[INF] 1, 1 1008 1008 00160 72 mov c,a ;[INF] 1, 1 1009 1009 00161 8C01 mov a,[hl+1] ;[INF] 2, 1 1010 1010 00163 614A cmp a,c ;[INF] 2, 1 1011 1011 00165 DE24 bnc $?L0043 ;[INF] 2, 4 1012 1012 ; line 230 : { 1013 1013 00167 ??bb00_getmean3: 1014 1014 ; line 231 : if( *hist > *( hist + 2 ) ) 1015 1015 $DGL 0,4 1016 1016 00167 8B mov a,[hl] ;[INF] 1, 1 1017 1017 00168 72 mov c,a ;[INF] 1, 1 1018 1018 00169 8C02 mov a,[hl+2] ;[INF] 2, 1 1019 1019 0016B 614A cmp a,c ;[INF] 2, 1 1020 1020 0016D DE16 bnc $?L0045 ;[INF] 2, 4 1021 1021 ; line 232 : { 1022 1022 0016F ??bb01_getmean3: 1023 1023 ; line 233 : return( ( *( hist + 1 ) > *( hist + 2 ) ) ? *( hist 1024 1024 ; + 1 ) : *( hist + 2 ) ); 1025 1025 $DGL 0,6 1026 1026 0016F 8C01 mov a,[hl+1] ;[INF] 2, 1 1027 1027 00171 72 mov c,a ;[INF] 1, 1 1028 1028 00172 8C02 mov a,[hl+2] ;[INF] 2, 1 1029 1029 00174 614A cmp a,c ;[INF] 2, 1 1030 1030 00176 DE06 bnc $?L0047 ;[INF] 2, 4 1031 1031 00178 8C01 mov a,[hl+1] ;[INF] 2, 1 1032 1032 0017A 318E shrw ax,8 ;[INF] 2, 1 1033 1033 0017C EF04 br $?L0048 ;[INF] 2, 3 1034 1034 0017E ?L0047: 1035 1035 0017E 8C02 mov a,[hl+2] ;[INF] 2, 1 1036 1036 00180 318E shrw ax,8 ;[INF] 2, 1 1037 1037 00182 ?L0048: 1038 1038 00182 12 movw bc,ax ;[INF] 1, 1 1039 1039 00183 EF28 br $?L0050 ;[INF] 2, 3 1040 1040 00185 ??eb01_getmean3: 1041 1041 ; line 234 : } 1042 1042 00185 ?L0045: 1043 1043 ; line 235 : else 1044 1044 ; line 236 : { 1045 1045 00185 ??bb02_getmean3: 1046 1046 ; line 237 : return( *hist ); 1047 1047 $DGL 0,10 1048 1048 00185 8B mov a,[hl] ;[INF] 1, 1 1049 1049 00186 318E shrw ax,8 ;[INF] 2, 1 1050 1050 00188 12 movw bc,ax ;[INF] 1, 1 1051 1051 00189 EF22 br $?L0050 ;[INF] 2, 3 1052 1052 0018B ??eb02_getmean3: 1053 1053 ; line 238 : } 1054 1054 ; line 239 : }else{ 1055 1055 0018B ??eb00_getmean3: 1056 1056 0018B ?L0043: 1057 1057 0018B ??bb03_getmean3: 1058 1058 ; line 240 : if( *hist > *( hist + 2 ) ) 1059 1059 $DGL 0,13 1060 1060 0018B 8B mov a,[hl] ;[INF] 1, 1 1061 1061 0018C 72 mov c,a ;[INF] 1, 1 1062 1062 0018D 8C02 mov a,[hl+2] ;[INF] 2, 1 1063 1063 0018F 614A cmp a,c ;[INF] 2, 1 1064 1064 00191 DE06 bnc $?L0049 ;[INF] 2, 4 1065 1065 ; line 241 : { 1066 1066 00193 ??bb04_getmean3: 1067 1067 ; line 242 : return( *hist ); 1068 1068 $DGL 0,15 1069 1069 00193 8B mov a,[hl] ;[INF] 1, 1 1070 1070 00194 318E shrw ax,8 ;[INF] 2, 1 1071 1071 00196 12 movw bc,ax ;[INF] 1, 1 1072 1072 00197 EF14 br $?L0050 ;[INF] 2, 3 1073 1073 00199 ??eb04_getmean3: 1074 1074 ; line 243 : } 1075 1075 00199 ?L0049: 1076 1076 ; line 244 : else 1077 1077 ; line 245 : { 1078 1078 00199 ??bb05_getmean3: 1079 1079 ; line 246 : return( ( *( hist + 1 ) < *( hist + 2 ) ) ? *( hist 1080 1080 ; + 1 ) : *( hist + 2 ) ); 1081 1081 $DGL 0,19 1082 1082 00199 8C01 mov a,[hl+1] ;[INF] 2, 1 1083 1083 0019B 72 mov c,a ;[INF] 1, 1 1084 1084 0019C 8C02 mov a,[hl+2] ;[INF] 2, 1 1085 1085 0019E 6142 cmp c,a ;[INF] 2, 1 1086 1086 001A0 DE06 bnc $?L0051 ;[INF] 2, 4 1087 1087 001A2 8C01 mov a,[hl+1] ;[INF] 2, 1 1088 1088 001A4 318E shrw ax,8 ;[INF] 2, 1 1089 1089 001A6 EF04 br $?L0052 ;[INF] 2, 3 1090 1090 001A8 ?L0051: 1091 1091 001A8 8C02 mov a,[hl+2] ;[INF] 2, 1 1092 1092 001AA 318E shrw ax,8 ;[INF] 2, 1 1093 1093 001AC ?L0052: 1094 1094 001AC 12 movw bc,ax ;[INF] 1, 1 1095 1095 001AD ??eb05_getmean3: 1096 1096 ; line 247 : } 1097 1097 001AD ?L0050: 1098 1098 001AD ??eb03_getmean3: 1099 1099 ; line 248 : } 1100 1100 ; line 249 : } 1101 1101 $DGL 0,22 1102 1102 001AD ??ef_getmean3: 1103 1103 001AD C6 pop hl ;[INF] 1, 1 1104 1104 001AE D7 ret ;[INF] 1, 6 1105 1105 001AF ??ee_getmean3: 1106 1106 ; line 250 : 1107 1107 ; line 251 : 1108 1108 ; line 252 : 1109 1109 ; line 253 : /* ======================================================== 1110 1110 ; line 254 :  自前で次のチャンネル 1111 1111 ; line 255 :   一通り終わったら止める 1112 1112 ; line 256 : ======================================================== */ 1113 1113 ; line 257 : __interrupt void int_adc( ) 1114 1114 ; line 258 : { 1115 1115 1116 1116 ----- @@BASE CSEG BASE 1117 1117 00000 _int_adc: 1118 1118 $DGL 1,213 1119 1119 00000 C1 push ax ;[INF] 1, 1 1120 1120 00001 C3 push bc ;[INF] 1, 1 1121 1121 00002 C5 push de ;[INF] 1, 1 1122 1122 00003 C7 push hl ;[INF] 1, 1 1123 1123 00004 520C mov c,#0CH ;[INF] 2, 1 1124 1124 00006 92 dec c ;[INF] 1, 1 1125 1125 00007 92 dec c ;[INF] 1, 1 1126 1126 00008 R690000 movw ax,_@SEGAX[c] ;[INF] 3, 1 1127 1127 0000B C1 push ax ;[INF] 1, 1 1128 1128 0000C DFF8 bnz $$-6 ;[INF] 2, 4 1129 1129 0000E 8EFD mov a,ES ;[INF] 2, 1 1130 1130 00010 70 mov x,a ;[INF] 1, 1 1131 1131 00011 8EFC mov a,CS ;[INF] 2, 1 1132 1132 00013 C1 push ax ;[INF] 1, 1 1133 1133 00014 ??bf_int_adc: 1134 1134 ; line 259 : static u8 hist_tune[3]; 1135 1135 ; line 260 : static u8 hist_snd_vol[3]; 1136 1136 ; line 261 : static u8 hist_bt_temp[3]; 1137 1137 ; line 262 : static u8 index; 1138 1138 ; line 263 : 1139 1139 ; line 264 : EI( ); 1140 1140 $DGL 0,7 1141 1141 00014 717AFA ei ;[INF] 3, 4 1142 1142 ; line 265 : switch ( ADS ) 1143 1143 $DGL 0,8 1144 1144 00017 8E31 mov a,ADS ;[INF] 2, 1 1145 1145 00019 318E shrw ax,8 ;[INF] 2, 1 1146 1146 0001B E7 onew bc ;[INF] 1, 1 1147 1147 0001C 240600 subw ax,#06H ; 6 ;[INF] 3, 1 1148 1148 0001F DD09 bz $?L0060 ;[INF] 2, 4 1149 1149 00021 23 subw ax,bc ;[INF] 1, 1 1150 1150 00022 DD1D bz $?L0061 ;[INF] 2, 4 1151 1151 00024 23 subw ax,bc ;[INF] 1, 1 1152 1152 00025 DD31 bz $?L0062 ;[INF] 2, 4 1153 1153 00027 23 subw ax,bc ;[INF] 1, 1 1154 1154 00028 EF49 br $?L0059 ;[INF] 2, 3 1155 1155 ; line 266 : { 1156 1156 0002A ??bb00_int_adc: 1157 1157 ; line 267 : /* 1158 1158 ; line 268 : case ( ADC_SEL_AMB_BRIT ): 1159 1159 ; line 269 : vreg_ctr[ VREG_C_AMBIENT_BRIGHTNESS ] = ADCRH; 1160 1160 ; line 270 : break; 1161 1161 ; line 271 : */ 1162 1162 ; line 272 : 1163 1163 ; line 273 : case ( ADC_SEL_TUNE ): 1164 1164 0002A ?L0060: 1165 1165 ; line 274 : hist_tune[index] = ADCRH; 1166 1166 $DGL 0,17 1167 1167 0002A RD91200 mov x,!?L0058 ; index ;[INF] 3, 1 1168 1168 0002D F1 clrb a ;[INF] 1, 1 1169 1169 0002E R040900 addw ax,#loww (?L0055) ; hist_tune ;[INF] 3, 1 1170 1170 00031 14 movw de,ax ;[INF] 1, 1 1171 1171 00032 8D1F mov a,ADCRH ;[INF] 2, 1 1172 1172 00034 99 mov [de],a ;[INF] 1, 1 1173 1173 ; line 275 : #ifdef _MODEL_WM0_ 1174 1174 ; line 276 : adc_raw_dep = 255 - getmean3( hist_tune ); 1175 1175 ; line 277 : #else 1176 1176 ; line 278 : adc_raw_dep = getmean3( hist_tune ); 1177 1177 $DGL 0,21 1178 1178 00035 R300900 movw ax,#loww (?L0055) ; hist_tune ;[INF] 3, 1 1179 1179 00038 RFD5D01 call !_getmean3 ;[INF] 3, 3 1180 1180 0003B 62 mov a,c ;[INF] 1, 1 1181 1181 0003C R9F0100 mov !_adc_raw_dep,a ;[INF] 3, 1 1182 1182 ; line 279 : #endif 1183 1183 ; line 280 : break; 1184 1184 $DGL 0,23 1185 1185 0003F EF32 br $?L0059 ;[INF] 2, 3 1186 1186 ; line 281 : 1187 1187 ; line 282 : case ( ADC_SEL_VOL ): 1188 1188 00041 ?L0061: 1189 1189 ; line 283 : hist_snd_vol[index] = ADCRH; 1190 1190 $DGL 0,26 1191 1191 00041 RD91200 mov x,!?L0058 ; index ;[INF] 3, 1 1192 1192 00044 F1 clrb a ;[INF] 1, 1 1193 1193 00045 R040C00 addw ax,#loww (?L0056) ; hist_snd_vol ;[INF] 3, 1 1194 1194 00048 14 movw de,ax ;[INF] 1, 1 1195 1195 00049 8D1F mov a,ADCRH ;[INF] 2, 1 1196 1196 0004B 99 mov [de],a ;[INF] 1, 1 1197 1197 ; line 284 : #ifdef _MODEL_CTR_JIKKI_ 1198 1198 ; line 285 : adc_raw_vol = ( 255 - getmean3( hist_snd_vol )); 1199 1199 ; line 286 : #else 1200 1200 ; line 287 : adc_raw_vol = getmean3( hist_snd_vol ); 1201 1201 $DGL 0,30 1202 1202 0004C R300C00 movw ax,#loww (?L0056) ; hist_snd_vol ;[INF] 3, 1 1203 1203 0004F RFD5D01 call !_getmean3 ;[INF] 3, 3 1204 1204 00052 62 mov a,c ;[INF] 1, 1 1205 1205 00053 R9F0000 mov !_adc_raw_vol,a ;[INF] 3, 1 1206 1206 ; line 288 : #endif 1207 1207 ; line 289 : // TWL用レジスタ(32段)の更新。アトミックな処理として扱わ 1208 1208 ; ないと不都合が。 1209 1209 ; line 290 : /// 割り込みはHorizonを通してコマンドを発行されるのを待て 1210 1210 ; ばよい 1211 1211 ; line 291 : break; 1212 1212 $DGL 0,34 1213 1213 00056 EF1B br $?L0059 ;[INF] 2, 3 1214 1214 ; line 292 : 1215 1215 ; line 293 : case ( ADC_SEL_BATT_TEMP ): 1216 1216 00058 ?L0062: 1217 1217 ; line 294 : hist_bt_temp[index] = ADCRH; 1218 1218 $DGL 0,37 1219 1219 00058 RD91200 mov x,!?L0058 ; index ;[INF] 3, 1 1220 1220 0005B F1 clrb a ;[INF] 1, 1 1221 1221 0005C R040F00 addw ax,#loww (?L0057) ; hist_bt_temp ;[INF] 3, 1 1222 1222 0005F 14 movw de,ax ;[INF] 1, 1 1223 1223 00060 8D1F mov a,ADCRH ;[INF] 2, 1 1224 1224 00062 99 mov [de],a ;[INF] 1, 1 1225 1225 ; line 295 : raw_adc_temperature = getmean3( hist_bt_temp ); 1226 1226 $DGL 0,38 1227 1227 00063 R300F00 movw ax,#loww (?L0057) ; hist_bt_temp ;[INF] 3, 1 1228 1228 00066 RFD5D01 call !_getmean3 ;[INF] 3, 3 1229 1229 00069 62 mov a,c ;[INF] 1, 1 1230 1230 0006A R9F0000 mov !_raw_adc_temperature,a ;[INF] 3, 1 1231 1231 ; line 296 : renge_task_immed_add( PM_bt_temp_update ); 1232 1232 $DGL 0,39 1233 1233 0006D R300000 movw ax,#loww (_PM_bt_temp_update) ;[INF] 3, 1 1234 1234 00070 RFD0000 call !_renge_task_immed_add ;[INF] 3, 3 1235 1235 ; line 297 : break; 1236 1236 ; line 298 : 1237 1237 ; line 299 : case ( ADC_SEL_BATT_DET ): 1238 1238 ; line 300 : // vreg_ctr[ VREG_C_DBG_BATT_DET ] = ADCRH; 1239 1239 ; line 301 : // todo 1240 1240 ; line 302 : break; 1241 1241 00073 ??eb00_int_adc: 1242 1242 ; line 303 : } 1243 1243 00073 ?L0059: 1244 1244 ; line 304 : 1245 1245 ; line 305 : 1246 1246 ; line 306 : // もっとまともな書き方がありそうだ 1247 1247 ; line 307 : // if( ADS == ADC_SEL_BATT_DET ){ 1248 1248 ; line 308 : if( ADS != ADC_SEL_BATT_TEMP ) 1249 1249 $DGL 0,51 1250 1250 00073 4031FF08 cmp !ADS,#08H ; 8 ;[INF] 4, 1 1251 1251 00077 DD08 bz $?L0066 ;[INF] 2, 4 1252 1252 ; line 309 : { // 電池判別は電源投入の一回のみ 1253 1253 00079 ??bb01_int_adc: 1254 1254 ; line 310 : ADS += 1; // 次のチャンネル 1255 1255 $DGL 0,53 1256 1256 00079 A031FF inc !ADS ;[INF] 3, 2 1257 1257 ; line 311 : BT_TEMP_P = 1; // 電池温度監視スタート 1258 1258 $DGL 0,54 1259 1259 0007C 717201 set1 P1.7 ;[INF] 3, 2 1260 1260 0007F ??eb01_int_adc: 1261 1261 ; line 312 : } 1262 1262 $DGL 0,55 1263 1263 0007F EF1C br $?L0067 ;[INF] 2, 3 1264 1264 00081 ?L0066: 1265 1265 ; line 313 : else 1266 1266 ; line 314 : { 1267 1267 00081 ??bb02_int_adc: 1268 1268 ; line 315 : ADCEN = 0; // 止めてしまう 1269 1269 $DGL 0,58 1270 1270 00081 7158F000 clr1 !PER0.5 ;[INF] 4, 2 1271 1271 ; line 316 : BT_TEMP_P = 0; // 電池温度監視スタート 1272 1272 $DGL 0,59 1273 1273 00085 717301 clr1 P1.7 ;[INF] 3, 2 1274 1274 ; line 317 : adc_updated = 1; 1275 1275 $DGL 0,60 1276 1276 00088 R710200 set1 _adc_updated ;[INF] 3, 2 1277 1277 ; line 318 : index = ( index == 2 ) ? 0 : ( index + 1 ); 1278 1278 $DGL 0,61 1279 1279 0008B R40120002 cmp !?L0058,#02H ; index,2 ;[INF] 4, 1 1280 1280 0008F DF03 bnz $?L0068 ;[INF] 2, 4 1281 1281 00091 F6 clrw ax ;[INF] 1, 1 1282 1282 00092 EF05 br $?L0069 ;[INF] 2, 3 1283 1283 00094 ?L0068: 1284 1284 00094 RD91200 mov x,!?L0058 ; index ;[INF] 3, 1 1285 1285 00097 F1 clrb a ;[INF] 1, 1 1286 1286 00098 A1 incw ax ;[INF] 1, 1 1287 1287 00099 ?L0069: 1288 1288 00099 60 mov a,x ;[INF] 1, 1 1289 1289 0009A R9F1200 mov !?L0058,a ; index ;[INF] 3, 1 1290 1290 0009D ??eb02_int_adc: 1291 1291 ; line 319 : } 1292 1292 0009D ?L0067: 1293 1293 ; line 320 : } 1294 1294 $DGL 0,63 1295 1295 0009D ??ef_int_adc: 1296 1296 0009D C0 pop ax ;[INF] 1, 1 1297 1297 0009E 9EFC mov CS,a ;[INF] 2, 1 1298 1298 000A0 60 mov a,x ;[INF] 1, 1 1299 1299 000A1 9EFD mov ES,a ;[INF] 2, 1 1300 1300 000A3 R340000 movw de,#_@SEGAX ;[INF] 3, 1 1301 1301 000A6 5206 mov c,#06H ;[INF] 2, 1 1302 1302 000A8 C0 pop ax ;[INF] 1, 1 1303 1303 000A9 B9 movw [de],ax ;[INF] 1, 1 1304 1304 000AA A5 incw de ;[INF] 1, 1 1305 1305 000AB A5 incw de ;[INF] 1, 1 1306 1306 000AC 92 dec c ;[INF] 1, 1 1307 1307 000AD DFF9 bnz $$-5 ;[INF] 2, 4 1308 1308 000AF C6 pop hl ;[INF] 1, 1 1309 1309 000B0 C4 pop de ;[INF] 1, 1 1310 1310 000B1 C2 pop bc ;[INF] 1, 1 1311 1311 000B2 C0 pop ax ;[INF] 1, 1 1312 1312 000B3 61FC reti ;[INF] 2, 6 1313 1313 000B5 ??ee_int_adc: 1314 1314 ; line 321 : 1315 1315 ; line 322 : 1316 1316 ; line 323 : 1317 1317 ; line 324 : /* ======================================================== 1318 1318 ; line 325 : tsk_adcと競合することを考慮していません。 1319 1319 ; line 326 : ======================================================== */ 1320 1320 ; line 327 : u8 get_adc( u8 ch ) 1321 1321 ; line 328 : { 1322 1322 1323 1323 ----- ROM_CODE CSEG BASE 1324 1324 001AF _get_adc: 1325 1325 $DGL 1,238 1326 1326 001AF C7 push hl ;[INF] 1, 1 1327 1327 001B0 16 movw hl,ax ;[INF] 1, 1 1328 1328 001B1 ??bf_get_adc: 1329 1329 ; line 329 : u8 temp; 1330 1330 ; line 330 : 1331 1331 ; line 331 : ADMK = 1; 1332 1332 $DGL 0,4 1333 1333 001B1 710AE7 set1 MK1H.0 ;[INF] 3, 2 1334 1334 ; line 332 : ADIF = 0; 1335 1335 $DGL 0,5 1336 1336 001B4 710BE3 clr1 IF1H.0 ;[INF] 3, 2 1337 1337 ; line 333 : 1338 1338 ; line 334 : ADCEN = 1; 1339 1339 $DGL 0,7 1340 1340 001B7 7150F000 set1 !PER0.5 ;[INF] 4, 2 1341 1341 ; line 335 : ADCS = 0; 1342 1342 $DGL 0,8 1343 1343 001BB 717B30 clr1 ADM.7 ;[INF] 3, 2 1344 1344 ; line 336 : ADM = 0b00100011; // セレクトモード、昇圧、fCLK/6 1345 1345 ; ///ここから↓ 1346 1346 $DGL 0,9 1347 1347 001BE CE3023 mov ADM,#023H ; 35 ;[INF] 3, 1 1348 1348 ; line 337 : 1349 1349 ; line 338 : ADPC = 0x06; // ADCポートのセレクト 1350 1350 $DGL 0,11 1351 1351 001C1 CF170006 mov !ADPC,#06H ; 6 ;[INF] 4, 1 1352 1352 ; line 339 : ADS = ch; 1353 1353 $DGL 0,12 1354 1354 001C5 66 mov a,l ;[INF] 1, 1 1355 1355 001C6 9E31 mov ADS,a ;[INF] 2, 1 1356 1356 ; line 340 : NOP(); 1357 1357 $DGL 0,13 1358 1358 001C8 00 nop ;[INF] 1, 1 1359 1359 ; line 341 : NOP(); 1360 1360 $DGL 0,14 1361 1361 001C9 00 nop ;[INF] 1, 1 1362 1362 ; line 342 : NOP(); 1363 1363 $DGL 0,15 1364 1364 001CA 00 nop ;[INF] 1, 1 1365 1365 ; line 343 : NOP(); 1366 1366 $DGL 0,16 1367 1367 001CB 00 nop ;[INF] 1, 1 1368 1368 ; line 344 : NOP(); 1369 1369 $DGL 0,17 1370 1370 001CC 00 nop ;[INF] 1, 1 1371 1371 ; line 345 : NOP(); 1372 1372 $DGL 0,18 1373 1373 001CD 00 nop ;[INF] 1, 1 1374 1374 ; line 346 : NOP(); 1375 1375 $DGL 0,19 1376 1376 001CE 00 nop ;[INF] 1, 1 1377 1377 ; line 347 : NOP(); 1378 1378 $DGL 0,20 1379 1379 001CF 00 nop ;[INF] 1, 1 1380 1380 ; line 348 : ADCS = 1; // AD開始。 1381 1381 ; /// ここまで↑ に、1us以上開ける 1382 1382 $DGL 0,21 1383 1383 001D0 717A30 set1 ADM.7 ;[INF] 3, 2 1384 1384 ; line 349 : 1385 1385 ; line 350 : ADMK = 0; 1386 1386 $DGL 0,23 1387 1387 001D3 710BE7 clr1 MK1H.0 ;[INF] 3, 2 1388 1388 ; line 351 : while( ADIF == 0 ){;} 1389 1389 $DGL 0,24 1390 1390 001D6 ?L0072: 1391 1391 001D6 3182E302 bt IF1H.0,$?L0073 ;[INF] 4, 5 1392 1392 001DA ??bb00_get_adc: 1393 1393 001DA ??eb00_get_adc: 1394 1394 001DA EFFA br $?L0072 ;[INF] 2, 3 1395 1395 001DC ?L0073: 1396 1396 ; line 352 : temp = ADCRH; 1397 1397 $DGL 0,25 1398 1398 001DC 8D1F mov a,ADCRH ;[INF] 2, 1 1399 1399 ; line 353 : ADCEN = 0; 1400 1400 $DGL 0,26 1401 1401 001DE 7158F000 clr1 !PER0.5 ;[INF] 4, 2 1402 1402 ; line 354 : 1403 1403 ; line 355 : return ( temp ); 1404 1404 $DGL 0,28 1405 1405 001E2 318E shrw ax,8 ;[INF] 2, 1 1406 1406 001E4 12 movw bc,ax ;[INF] 1, 1 1407 1407 ; line 356 : } 1408 1408 $DGL 0,29 1409 1409 001E5 ??ef_get_adc: 1410 1410 001E5 C6 pop hl ;[INF] 1, 1 1411 1411 001E6 D7 ret ;[INF] 1, 6 1412 1412 001E7 ??ee_get_adc: 1413 1413 1414 1414 ----- @@CODEL CSEG 1415 1415 END 1416 1416 1417 1417 1418 1418 ; *** Code Information *** 1419 1419 ; 1420 1420 ; $FILE C:\78k_data\yav-mcu-basara\branches\0.10(fix)\adc.c 1421 1421 ; 1422 1422 ; $FUNC tsk_adc(61) 1423 1423 ; void=(void) 1424 1424 ; CODE SIZE= 312 bytes, CLOCK_SIZE= 302 clocks, STACK_SIZE= 14 bytes 1425 1425 ; 1426 1426 ; $CALL abs(90) 1427 1427 ; bc=(int:ax) 1428 1428 ; 1429 1429 ; $CALL abs(142) 1430 1430 ; bc=(int:ax) 1431 1431 ; 1432 1432 ; $CALL iic_mcu_write_a_byte(152) 1433 1433 ; bc=(int:ax, int:[sp+4], int:[sp+6]) 1434 1434 ; 1435 1435 ; $CALL iic_mcu_write_a_byte(170) 1436 1436 ; bc=(int:ax, int:[sp+4], int:[sp+6]) 1437 1437 ; 1438 1438 ; $FUNC getmean3(228) 1439 1439 ; bc=(pointer hist:ax) 1440 1440 ; CODE SIZE= 82 bytes, CLOCK_SIZE= 80 clocks, STACK_SIZE= 2 bytes 1441 1441 ; 1442 1442 ; $FUNC int_adc(258) 1443 1443 ; void=(void) 1444 1444 ; CODE SIZE= 181 bytes, CLOCK_SIZE= 146 clocks, STACK_SIZE= 26 bytes 1445 1445 ; 1446 1446 ; $CALL getmean3(278) 1447 1447 ; bc=(pointer:ax) 1448 1448 ; 1449 1449 ; $CALL getmean3(287) 1450 1450 ; bc=(pointer:ax) 1451 1451 ; 1452 1452 ; $CALL getmean3(295) 1453 1453 ; bc=(pointer:ax) 1454 1454 ; 1455 1455 ; $CALL renge_task_immed_add(296) 1456 1456 ; bc=(pointer:ax) 1457 1457 ; 1458 1458 ; $FUNC get_adc(328) 1459 1459 ; bc=(unsigned char ch:x) 1460 1460 ; CODE SIZE= 56 bytes, CLOCK_SIZE= 46 clocks, STACK_SIZE= 2 bytes 1461 1461 1462 1462 ; Target chip : uPD79F0104 1463 1463 ; Device file : E1.00b Segment informations: ADRS LEN NAME 00000 00000H.1 @@BITS 00000 00070H @@CNST 00000 00002H @@R_INIT 00000 00002H @@INIT 00000 00014H @@DATA 00000 00000H @@R_INIS 00000 00000H @@INIS 00000 00000H @@DATS 00000 00000H @@CNSTL 00000 00000H @@RLINIT 00000 00000H @@INITL 00000 00000H @@DATAL 00000 00000H @@CALT 00000 001E7H ROM_CODE 00000 000B5H @@BASE 00000 00000H @@CODEL Target chip : uPD79F0104 Device file : E1.00b Assembly complete, 0 error(s) and 0 warning(s) found. ( 0)