changed set temperature step

This commit is contained in:
Sergey Yarkov 2023-06-29 23:09:14 +03:00
parent a164982095
commit e66ca4b295
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
6 changed files with 387 additions and 383 deletions

View File

@ -7,12 +7,12 @@
:10003A002F933F934F935F935FB74091670045308B
:10004A000CF403C0442740936700403081F493982E
:10005A00949895980EF002C00BE002C000916500DA
:10006A00002311F0929A01C09298DAD29BD14130C2
:10006A00002311F0929A01C09298DBD29BD14130C1
:10007A0081F4929894989598009164003091650063
:10008A00032B11F0939A01C0939800916400C8D28F
:10008A00032B11F0939A01C0939800916400C9D28E
:10009A0089D1423059F4929893989598949A0091FC
:1000AA006300BED2002D0F77002E7CD1433041F47D
:1000BA00929893989498959A00916600B1D272D1C9
:1000AA006300BFD2002D0F77002E7CD1433041F47C
:1000BA00929893989498959A00916600B2D272D1C8
:1000CA004395409367005FBF5F914F913F912F9196
:1000DA001F910F9118950FED0DBF0FE701BB01EEB0
:1000EA0007BB0CE108BB02E000BF05E003BF03E267
@ -22,8 +22,8 @@
:10012A006B0005E000936D0001E000936E0000276C
:10013A00009368000093690000EF00936A000FEFD4
:10014A00009371006624CED000916F00083209F442
:10015A0005C012E01093600075D201C06CD280E035
:10016A0090E00091600042D2003051F496982091BC
:10015A0005C012E01093600076D201C06DD280E033
:10016A0090E00091600043D2003051F496982091BB
:10017A006A0020936600A7D059D011E019BF38D081
:10018A00013011F4969848D1023059F7969AE9CF7E
:10019A00EE24FF1841E1001F111F4A9509F4089542
@ -46,67 +46,67 @@
:1002AA00909801C0909A07C040916E00442311F4BF
:1002BA00909A01C090987F915F914F913F912F91B1
:1002CA001F910F9108951F9361D052E135E54DEBCF
:1002DA00D4D112D010916800812F10916900912F0A
:1002EA001F9108950F9334D103E3802E46D1AFE6D0
:1002FA00B0E062D10F9108950F931F932F933F930C
:10030A004F9326D170FF3CC00CEC802E36D10EEBF9
:10031A00802E33D1A8E6B0E04FD1A9E6B0E04CD1A7
:1002DA00D5D112D010916800812F10916900912F09
:1002EA001F9108950F9335D103E3802E47D1AFE6CE
:1002FA00B0E063D10F9108950F931F932F933F930B
:10030A004F9327D170FF3CC00CEC802E37D10EEBF7
:10031A00802E34D1A8E6B0E050D1A9E6B0E04DD1A4
:10032A0010916800209169002F93287F283F11F0CF
:10033A00E89407C02F916894109520951F5F2F4F5E
:10034A0001C02F91269517952695179526951795ED
:10035A0026951795309168000EF43195432F3F701A
:10036A00432F330F330F330F440F340F369536951F
:10037A0036953695109368002093690030936A0089
:10038A004F913F912F911F910F9108950F93E0D0B4
:10039A0070FF06C00CEC802EF0D004E4802EEDD065
:10038A004F913F912F911F910F9108950F93E1D0B3
:10039A0070FF06C00CEC802EF1D004E4802EEED063
:1003AA000F9108950F930F920FB800E40EB90BE165
:1003BA000DB9769BFDCFC09AC0980F900F91089502
:1003CA000F93B49B01C01AC000917100002309F475
:1003DA0015C00027009371003CD16394162D143088
:1003EA0014F429D10BC010E019BF929893989498ED
:1003FA009598662427D110E010936000B49901C043
:1003DA0015C00027009371003DD16394162D143087
:1003EA0014F42AD10BC010E019BF929893989498EC
:1003FA009598662428D110E010936000B49901C042
:10040A0009C000917100002309F004C00FEF0093A6
:10041A0071001FD10F9108950F931F932F933F934C
:10042A004F93062D002309F002C005D16394C8DF5B
:10043A00013029F0023049F1033031F183C0000064
:10044A00B29B04C000C0B39B0AC011C002D1109174
:10045A006D00183C09F0139510936D0008C0F9D08F
:10041A00710020D10F9108950F931F932F933F934B
:10042A004F93062D002309F002C006D16394C8DF5A
:10043A00013029F0023049F1033031F184C0000063
:10044A00B29B04C000C0B39B0AC011C003D1109173
:10045A006D00183C09F0139510936D0008C0FAD08E
:10046A0010916D00113009F01A9510936D000F93D9
:10047A001F9300916D001AE09EDE802F9927F0925B
:10048A0066001F910F915EC03EC00000B29B04C07F
:10049A0000C0B39B0FC019C0DCD010916C00209132
:1004AA006B0031E0130F3327231F10936C00209346
:1004BA006B000BC0CED010916C0020916B001150D4
:10048A0066001F910F915FC03FC00000B29B04C07D
:10049A0000C0B39B0FC019C0DDD010916C00209131
:1004AA006B003AE0130F3327231F10936C0020933D
:1004BA006B000BC0CFD010916C0020916B001A50CA
:1004CA00204010936C0020936B000F931F932F937F
:1004DA003F9300916C0010916B00212F207811F44A
:1004EA00E89405C06894009510950F5F1F4F2AE0A5
:1004FA0030E04EDE802F912FE09266003F912F91DF
:10050A001F910F911FC0E894B29B04C000C0B39B17
:10051A0006C009C09ED011E010936E0004C099D0A5
:10052A0010E010936E001127812F912F20916E00F9
:10053A00222309F004C01CE01093660003C01DE0EA
:10054A00109366004F913F912F911F910F9108953B
:10055A00F894B99A33E04EEB8CD0B99830E04AE877
:10056A0088D005D033E042E384D078940895B19BD3
:10057A00716002C0B1997E7F0895F8940F931F931A
:10058A00082D18E0069508F448F0B99A30E046E7D5
:10059A0070D0B99830E042E16CD008C0B99A30E026
:1005AA004AE067D0B99830E04EE763D01A9551F720
:1005BA001F910F9178940895F8940F931F93002731
:1005CA0018E00695B99A30E04AE053D0B99830E07D
:1005DA0040E14FD0B199006830E04CE64AD01A9514
:1005EA0081F70C931F910F91789408950F935F935D
:1005FA0053E0A3E6B0E0809361009093620000911B
:10060A006100109162002AE030E0C2DDED920093B1
:10061A006100109362005A9591F75F910F910895C6
:10062A000F931F93EEEAF6E01127E00FF11F0490F3
:10063A001F910F910895C59A53E039EA4DE71DD0ED
:10064A00C5980895C59A5CE034E34DEF16D0C59875
:10065A0008950F931F932F932AE01FEF0FEF0A9528
:10066A00F1F71A95D9F72A95C1F72F911F910F9192
:10067A00089541503040E8F70895415030405040C5
:10068A00E0F708950F931F932F9326E00FEF1FEFC4
:10069A001A95F1F70A95D9F72A95C1F72F911F9163
:1006AA000F910895C0F9A4B0999282F880909CBFE6
:0206BA00C689EF
:1004FA0030E04EDE802F912F0AE0009366003F9194
:10050A002F911F910F911FC0E894B29B04C000C0A5
:10051A00B39B06C009C09ED011E010936E0004C0C0
:10052A0099D010E010936E001127812F912F2091FE
:10053A006E00222309F004C01CE01093660003C079
:10054A001DE0109366004F913F912F911F910F91DB
:10055A000895F894B99A33E04EEB8CD0B99830E00C
:10056A004AE888D005D033E042E384D078940895ED
:10057A00B19B716002C0B1997E7F0895F8940F9380
:10058A001F93082D18E0069508F448F0B99A30E050
:10059A0046E770D0B99830E042E16CD008C0B99A09
:1005AA0030E04AE067D0B99830E04EE763D01A9558
:1005BA0051F71F910F9178940895F8940F931F9310
:1005CA00002718E00695B99A30E04AE053D0B99866
:1005DA0030E040E14FD0B199006830E04CE64AD0B3
:1005EA001A9581F70C931F910F91789408950F93A0
:1005FA005F9353E0A3E6B0E08093610090936200BA
:10060A0000916100109162002AE030E0C1DDED92B4
:10061A0000936100109362005A9591F75F910F91D0
:10062A0008950F931F93E0EBF6E01127E00FF11FF7
:10063A0004901F910F910895C59A53E039EA4DE746
:10064A001DD0C5980895C59A5CE034E34DEF16D0E5
:10065A00C59808950F931F932F932AE01FEF0FEF6A
:10066A000A95F1F71A95D9F72A95C1F72F911F9193
:10067A000F91089541503040E8F7089541503040B5
:10068A005040E0F708950F931F932F9326E00FEF42
:10069A001FEF1A95F1F70A95D9F72A95C1F72F9105
:1006AA001F910F910895C0F9A4B0999282F8809091
:0406BA009CBFC68992
:00000001FF

View File

@ -1,5 +1,5 @@
AVRASM ver. 2.2.7 main.asm Thu Jun 29 22:49:03 2023
AVRASM ver. 2.2.7 main.asm Thu Jun 29 23:01:33 2023
[builtin](2): Including file '/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/avrasm/inc\tn2313Adef.inc'
main.asm(15): Including file 'definitions.asm'
@ -997,7 +997,7 @@ main.asm(297): Including file 'mpy16u.asm'
000037 9a92 sbi PORTD, DIGIT_1_PIN
000038 c001 rjmp PC+2
000039 9892 cbi PORTD, DIGIT_1_PIN
00003a d2da rcall DISPLAY_DECODER
00003a d2db rcall DISPLAY_DECODER
00003b d19b rcall USI_TRANSMIT
_indicate_2:
@ -1015,7 +1015,7 @@ main.asm(297): Including file 'mpy16u.asm'
000048 c001 rjmp PC+2
000049 9893 cbi PORTD, DIGIT_2_PIN
00004a 9100 0064 lds TEMP_REG_A, DIGITS+1
00004c d2c8 rcall DISPLAY_DECODER
00004c d2c9 rcall DISPLAY_DECODER
00004d d189 rcall USI_TRANSMIT
_indicate_3:
@ -1027,7 +1027,7 @@ main.asm(297): Including file 'mpy16u.asm'
000052 9895 cbi PORTD, DIGIT_4_PIN
000053 9a94 sbi PORTD, DIGIT_3_PIN
000054 9100 0063 lds TEMP_REG_A, DIGITS
000056 d2be rcall DISPLAY_DECODER
000056 d2bf rcall DISPLAY_DECODER
; зажигаем точку
000057 2d00 mov r16, r0
000058 770f cbr r16, (1<<7)
@ -1043,7 +1043,7 @@ main.asm(297): Including file 'mpy16u.asm'
00005f 9894 cbi PORTD, DIGIT_3_PIN
000060 9a95 sbi PORTD, DIGIT_4_PIN
000061 9100 0066 lds TEMP_REG_A, DIGITS+3
000063 d2b1 rcall DISPLAY_DECODER
000063 d2b2 rcall DISPLAY_DECODER
000064 d172 rcall USI_TRANSMIT
_indicate_exit:
@ -1147,10 +1147,10 @@ main.asm(297): Including file 'mpy16u.asm'
ERR_FAMILY_CODE:
0000ae e012 ldi r17, MCU_STATE_ERROR
0000af 9310 0060 sts MCU_STATE, r17
0000b1 d275 rcall BEEP_LONG
0000b1 d276 rcall BEEP_LONG
0000b2 c001 rjmp PC+2
START_PROGRAM:
0000b3 d26c rcall BEEP_SHORT
0000b3 d26d rcall BEEP_SHORT
0000b4 e080
0000b5 e090 display_load 0
//</editor-fold>
@ -1159,7 +1159,7 @@ main.asm(297): Including file 'mpy16u.asm'
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
LOOP:
0000b6 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК
0000b8 d242 rcall DISPLAY_UPD_DIGITS
0000b8 d243 rcall DISPLAY_UPD_DIGITS
_STATE_DEFAULT:
0000b9 3000 cpi r16, MCU_STATE_DEFAULT
0000ba f451 brne _STATE_PROGRAM
@ -1476,7 +1476,7 @@ main.asm(297): Including file 'mpy16u.asm'
00016a e152
00016b e535
00016c eb4d
00016d d1d4 DELAY24 751000
00016d d1d5 DELAY24 751000
00016e d012 rcall TEMP_RD
; обновляем данные в ячейках
@ -1492,14 +1492,14 @@ main.asm(297): Including file 'mpy16u.asm'
RD_F_CODE:
000177 930f push r16
000178 d134 rcall OW_PRESENCE
000178 d135 rcall OW_PRESENCE
000179 e303 ldi r16, DS18B20_CMD_READROM
00017a 2e80 mov OW_CMD_r, r16
00017b d146 rcall OW_SEND_BYTE
00017b d147 rcall OW_SEND_BYTE
00017c e6af ldi XL, LOW(DEVICE_FAMILY_CODE)
00017d e0b0 ldi XH, HIGH(DEVICE_FAMILY_CODE)
00017e d162 rcall OW_RD_BYTE
00017e d163 rcall OW_RD_BYTE
00017f 910f pop r16
000180 9508 ret//</editor-fold>
@ -1512,25 +1512,25 @@ main.asm(297): Including file 'mpy16u.asm'
000184 933f push r19
000185 934f push r20
000186 d126 rcall OW_PRESENCE
000186 d127 rcall OW_PRESENCE
000187 ff70 sbrs OWFR, OWPRF
000188 c03c rjmp _TEMP_RD_EXIT
000189 ec0c ldi r16, DS18B20_CMD_SKIPROM
00018a 2e80 mov OW_CMD_r, r16
00018b d136 rcall OW_SEND_BYTE
00018b d137 rcall OW_SEND_BYTE
00018c eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
00018d 2e80 mov OW_CMD_r, r16
00018e d133 rcall OW_SEND_BYTE
00018e d134 rcall OW_SEND_BYTE
00018f e6a8 ldi XL, LOW(TEMP_L)
000190 e0b0 ldi XH, HIGH(TEMP_L)
000191 d14f rcall OW_RD_BYTE
000191 d150 rcall OW_RD_BYTE
000192 e6a9 ldi XL, LOW(TEMP_H)
000193 e0b0 ldi XH, HIGH(TEMP_H)
000194 d14c rcall OW_RD_BYTE
000194 d14d rcall OW_RD_BYTE
000195 9110 0068 lds r17, TEMP_L
000197 9120 0069 lds r18, TEMP_H
@ -1604,17 +1604,17 @@ main.asm(297): Including file 'mpy16u.asm'
TEMP_CONV:
0001cb 930f push r16
0001cc d0e0 rcall OW_PRESENCE
0001cc d0e1 rcall OW_PRESENCE
0001cd ff70 sbrs OWFR, OWPRF
0001ce c006 rjmp _TEMP_CONV_EXIT
0001cf ec0c ldi r16, DS18B20_CMD_SKIPROM
0001d0 2e80 mov OW_CMD_r, r16
0001d1 d0f0 rcall OW_SEND_BYTE
0001d1 d0f1 rcall OW_SEND_BYTE
0001d2 e404 ldi r16, DS18B20_CMD_CONVERTTEMP
0001d3 2e80 mov OW_CMD_r, r16
0001d4 d0ed rcall OW_SEND_BYTE
0001d4 d0ee rcall OW_SEND_BYTE
_TEMP_CONV_EXIT:
0001d5 910f pop r16
@ -1670,12 +1670,12 @@ main.asm(297): Including file 'mpy16u.asm'
_SW_SET_FROM_0_TO_1:
0001ee 2700 clr r16
0001ef 9300 0071 sts SW_DATA, r16
0001f1 d13c rcall DEBOUNCE_SW
0001f1 d13d rcall DEBOUNCE_SW
0001f2 9463 inc REPROGRAM_STEP_r
0001f3 2d16 mov r17, REPROGRAM_STEP_r
0001f4 3014 cpi r17, 4
0001f5 f414 brge _SAVE_SETTINGS
0001f6 d129 rcall BEEP_SHORT
0001f6 d12a rcall BEEP_SHORT
0001f7 c00b rjmp _SW_CHECK_ON_1
_SAVE_SETTINGS:
0001f8 e010
@ -1685,7 +1685,7 @@ main.asm(297): Including file 'mpy16u.asm'
0001fc 9894 cbi PORTD, DIGIT_3_PIN
0001fd 9895 cbi PORTD, DIGIT_4_PIN
0001fe 2466 clr REPROGRAM_STEP_r
0001ff d127 rcall BEEP_LONG
0001ff d128 rcall BEEP_LONG
000200 e010 ldi r17, MCU_STATE_DEFAULT
000201 9310 0060 sts MCU_STATE, r17
_SW_CHECK_ON_1:
@ -1700,7 +1700,7 @@ main.asm(297): Including file 'mpy16u.asm'
_SW_SET_FROM_1_TO_0:
00020b ef0f ser r16
00020c 9300 0071 sts SW_DATA, r16
00020e d11f rcall DEBOUNCE_SW
00020e d120 rcall DEBOUNCE_SW
_BUTTON_PROCESS_END:
00020f 910f pop r16
000210 9508 ret
@ -1719,7 +1719,7 @@ main.asm(297): Including file 'mpy16u.asm'
000218 f009 breq _INTO
000219 c002 rjmp _REPROGRAM_SETTINGS_LOOP
_INTO:
00021a d105 rcall BEEP_SHORT
00021a d106 rcall BEEP_SHORT
00021b 9463 inc REPROGRAM_STEP_r
_REPROGRAM_SETTINGS_LOOP:
00021c dfc8 rcall BUTTON_PROCESS
@ -1730,7 +1730,7 @@ main.asm(297): Including file 'mpy16u.asm'
000220 f149 breq _STEP_2
000221 3003 cpi r16, 3
000222 f131 breq _S3_JMP
000223 c083 rjmp _REPROGRAM_SETTINGS_END
000223 c084 rjmp _REPROGRAM_SETTINGS_END
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 1">
_STEP_1: ; установка и отображение гистерезиса
@ -1744,7 +1744,7 @@ main.asm(297): Including file 'mpy16u.asm'
000229 c00a rjmp _DECREASE_HYST
00022a c011 rjmp _SHOW_HYST
_INCREASE_HYST:
00022b d102 rcall DEBOUNCE_SW
00022b d103 rcall DEBOUNCE_SW
00022c 9110 006d lds r17, SETTING_HYST
00022e 3c18 cpi r17, MAX_HYST
00022f f009 breq PC+2
@ -1752,7 +1752,7 @@ main.asm(297): Including file 'mpy16u.asm'
000231 9310 006d sts SETTING_HYST, r17
000233 c008 rjmp _SHOW_HYST
_DECREASE_HYST:
000234 d0f9 rcall DEBOUNCE_SW
000234 d0fa rcall DEBOUNCE_SW
000235 9110 006d lds r17, SETTING_HYST
000237 3011 cpi r17, MIN_HYST
000238 f009 breq PC+2
@ -1769,11 +1769,11 @@ main.asm(297): Including file 'mpy16u.asm'
000244 92f0 0066 sts DIGITS+3, drem8u
000246 911f pop dv8u
000247 910f pop dd8u
000248 c05e rjmp _REPROGRAM_SETTINGS_END
000248 c05f rjmp _REPROGRAM_SETTINGS_END
//</editor-fold>
_S3_JMP: ; просто прыжок на _STEP_3
000249 c03e rjmp _STEP_3
000249 c03f rjmp _STEP_3
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 2">
_STEP_2:
@ -1787,10 +1787,10 @@ main.asm(297): Including file 'mpy16u.asm'
00024f c00f rjmp _DECREASE_TEMP
000250 c019 rjmp _SHOW_TEMP
_INCREASE_TEMP:
000251 d0dc rcall DEBOUNCE_SW
000251 d0dd rcall DEBOUNCE_SW
000252 9110 006c lds r17, SETTING_TEMP_L
000254 9120 006b lds r18, SETTING_TEMP_H
000256 e031 ldi r19, 1
000256 e03a ldi r19, 10
000257 0f13 add r17, r19
000258 2733 clr r19
000259 1f23 adc r18, r19
@ -1798,10 +1798,10 @@ main.asm(297): Including file 'mpy16u.asm'
00025c 9320 006b sts SETTING_TEMP_H, r18
00025e c00b rjmp _SHOW_TEMP
_DECREASE_TEMP:
00025f d0ce rcall DEBOUNCE_SW
00025f d0cf rcall DEBOUNCE_SW
000260 9110 006c lds r17, SETTING_TEMP_L
000262 9120 006b lds r18, SETTING_TEMP_H
000264 5011 subi r17, 1
000264 501a subi r17, 10
000265 4020 sbci r18, 0
000266 9310 006c sts SETTING_TEMP_L, r17
000268 9320 006b sts SETTING_TEMP_H, r18
@ -1831,60 +1831,62 @@ main.asm(297): Including file 'mpy16u.asm'
00027e de4e rcall div16u
00027f 2f80 mov DISP_NUM_L, dres16uL
000280 2f91 mov DISP_NUM_H, dres16uH
000281 92e0 0066 sts DIGITS+3, drem16uL
000283 913f pop dv16uH
000284 912f pop dv16uL
000285 911f pop dd16uH
000286 910f pop dd16uL
000287 c01f rjmp _REPROGRAM_SETTINGS_END
000281 e00a ldi r16, 10
000282 9300 0066 sts DIGITS+3, r16 ; значок градуса
000284 913f pop dv16uH
000285 912f pop dv16uL
000286 911f pop dd16uH
000287 910f pop dd16uL
000288 c01f rjmp _REPROGRAM_SETTINGS_END
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 3">
_STEP_3:
000288 94e8 clt
000289 94e8 clt
_S3_CHECK_PLUS:
000289 9bb2 sbis SW_PIN, SW_PLUS_PIN
00028a c004 rjmp _SET_HEAT_MODE
00028b c000 rjmp _S3_CHECK_MINUS
00028a 9bb2 sbis SW_PIN, SW_PLUS_PIN
00028b c004 rjmp _SET_HEAT_MODE
00028c c000 rjmp _S3_CHECK_MINUS
_S3_CHECK_MINUS:
00028c 9bb3 sbis SW_PIN, SW_MINUS_PIN
00028d c006 rjmp _SET_COOLING_MODE
00028e c009 rjmp _SHOW_MODE
00028d 9bb3 sbis SW_PIN, SW_MINUS_PIN
00028e c006 rjmp _SET_COOLING_MODE
00028f c009 rjmp _SHOW_MODE
_SET_HEAT_MODE:
00028f d09e rcall DEBOUNCE_SW
000290 e011 ldi r17, HEAT_MODE
000291 9310 006e sts SETTING_MODE, r17
000293 c004 rjmp _SHOW_MODE
000290 d09e rcall DEBOUNCE_SW
000291 e011 ldi r17, HEAT_MODE
000292 9310 006e sts SETTING_MODE, r17
000294 c004 rjmp _SHOW_MODE
_SET_COOLING_MODE:
000294 d099 rcall DEBOUNCE_SW
000295 e010 ldi r17, COOLING_MODE
000296 9310 006e sts SETTING_MODE, r17
000295 d099 rcall DEBOUNCE_SW
000296 e010 ldi r17, COOLING_MODE
000297 9310 006e sts SETTING_MODE, r17
_SHOW_MODE:
000298 2711 clr r17
000299 2f81 mov DISP_NUM_L, r17
00029a 2f91 mov DISP_NUM_H, r17
00029b 9120 006e lds r18, SETTING_MODE
00029d 2322 tst r18
00029e f009 breq _SHOW_COOLING
00029f c004 rjmp _SHOW_HEATING
000299 2711 clr r17
00029a 2f81 mov DISP_NUM_L, r17
00029b 2f91 mov DISP_NUM_H, r17
00029c 9120 006e lds r18, SETTING_MODE
00029e 2322 tst r18
00029f f009 breq _SHOW_COOLING
0002a0 c004 rjmp _SHOW_HEATING
_SHOW_COOLING:
0002a0 e01c ldi r17, 12
0002a1 9310 0066 sts DIGITS+3, r17
0002a3 c003 rjmp _REPROGRAM_SETTINGS_END
0002a1 e01c ldi r17, 12
0002a2 9310 0066 sts DIGITS+3, r17
0002a4 c003 rjmp _REPROGRAM_SETTINGS_END
_SHOW_HEATING:
0002a4 e01d ldi r17, 13
0002a5 9310 0066 sts DIGITS+3, r17
0002a5 e01d ldi r17, 13
0002a6 9310 0066 sts DIGITS+3, r17
//</editor-fold>
_REPROGRAM_SETTINGS_END:
0002a7 914f pop r20
0002a8 913f pop r19
0002a9 912f pop r18
0002aa 911f pop r17
0002ab 910f pop r16
0002ac 9508 ret
0002a8 914f pop r20
0002a9 913f pop r19
0002aa 912f pop r18
0002ab 911f pop r17
0002ac 910f pop r16
0002ad 9508 ret
//</editor-fold>
;DBG_LED_TOGGLE:
@ -1902,21 +1904,21 @@ main.asm(297): Including file 'mpy16u.asm'
//<editor-fold defaultstate="collapsed" desc="1-Wire: опрос присутствия">
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
OW_PRESENCE:
0002ad 94f8 cli
0002ae 9ab9 ow_pull
0002af e033
0002b0 eb4e
0002b1 d08c DELAY16 480
0002b2 98b9 ow_release
0002b3 e030
0002b4 e84a
0002b5 d088 DELAY16 70
0002b6 d005 rcall OW_CHECK_PRESENCE
0002b7 e033
0002b8 e342
0002b9 d084 DELAY16 410
0002ba 9478 sei
0002bb 9508 ret
0002ae 94f8 cli
0002af 9ab9 ow_pull
0002b0 e033
0002b1 eb4e
0002b2 d08c DELAY16 480
0002b3 98b9 ow_release
0002b4 e030
0002b5 e84a
0002b6 d088 DELAY16 70
0002b7 d005 rcall OW_CHECK_PRESENCE
0002b8 e033
0002b9 e342
0002ba d084 DELAY16 410
0002bb 9478 sei
0002bc 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="1-Wire: проверка наличия устройства">
@ -1924,83 +1926,83 @@ main.asm(297): Including file 'mpy16u.asm'
; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов
;
OW_CHECK_PRESENCE:
0002bc 9bb1 sbis OW_PIN, OW_LINE
0002bd 6071 sbr OWFR, (1<<OWPRF)
0002be c002 rjmp _EXIT
0002bf 99b1 sbic OW_PIN, OW_LINE
0002c0 7f7e cbr OWFR, (1<<OWPRF)
0002bd 9bb1 sbis OW_PIN, OW_LINE
0002be 6071 sbr OWFR, (1<<OWPRF)
0002bf c002 rjmp _EXIT
0002c0 99b1 sbic OW_PIN, OW_LINE
0002c1 7f7e cbr OWFR, (1<<OWPRF)
_EXIT:
0002c1 9508 ret
0002c2 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="1-Wire: отправка байта">
OW_SEND_BYTE:
0002c2 94f8 cli
0002c3 930f push r16
0002c4 931f push r17
0002c5 2d08 mov r16, OW_CMD_r
0002c6 e018 ldi r17, 8
0002c3 94f8 cli
0002c4 930f push r16
0002c5 931f push r17
0002c6 2d08 mov r16, OW_CMD_r
0002c7 e018 ldi r17, 8
_OW_SEND_BYTE_LOOP:
0002c7 9506 lsr r16
0002c8 f408 brcc _OW_SEND_0
0002c9 f048 brcs _OW_SEND_1
0002c8 9506 lsr r16
0002c9 f408 brcc _OW_SEND_0
0002ca f048 brcs _OW_SEND_1
_OW_SEND_0:
0002ca 9ab9 ow_pull
0002cb e030
0002cc e746
0002cd d070 DELAY16 60
0002ce 98b9 ow_release
0002cf e030
0002d0 e142
0002d1 d06c DELAY16 10
0002d2 c008 rjmp _OW_SEND_BYTE_END
0002cb 9ab9 ow_pull
0002cc e030
0002cd e746
0002ce d070 DELAY16 60
0002cf 98b9 ow_release
0002d0 e030
0002d1 e142
0002d2 d06c DELAY16 10
0002d3 c008 rjmp _OW_SEND_BYTE_END
_OW_SEND_1:
0002d3 9ab9 ow_pull
0002d4 e030
0002d5 e04a
0002d6 d067 DELAY16 6
0002d7 98b9 ow_release
0002d8 e030
0002d9 e74e
0002da d063 DELAY16 64
0002d4 9ab9 ow_pull
0002d5 e030
0002d6 e04a
0002d7 d067 DELAY16 6
0002d8 98b9 ow_release
0002d9 e030
0002da e74e
0002db d063 DELAY16 64
_OW_SEND_BYTE_END:
0002db 951a dec r17
0002dc f751 brne _OW_SEND_BYTE_LOOP
0002dd 911f pop r17
0002de 910f pop r16
0002df 9478 sei
0002e0 9508 ret
0002dc 951a dec r17
0002dd f751 brne _OW_SEND_BYTE_LOOP
0002de 911f pop r17
0002df 910f pop r16
0002e0 9478 sei
0002e1 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="1-Wire: чтение байта">
OW_RD_BYTE:
0002e1 94f8 cli
0002e2 930f push r16
0002e3 931f push r17
0002e4 2700 clr r16
0002e5 e018 ldi r17, 8
0002e2 94f8 cli
0002e3 930f push r16
0002e4 931f push r17
0002e5 2700 clr r16
0002e6 e018 ldi r17, 8
_OW_RD_BYTE_LP:
0002e6 9506 lsr r16
0002e7 9ab9 ow_pull
0002e8 e030
0002e9 e04a
0002ea d053 DELAY16 6
0002eb 98b9 ow_release
0002ec e030
0002ed e140
0002ee d04f DELAY16 9
0002ef 99b1 sbic OW_PIN, OW_LINE
0002f0 6800 sbr r16, (1<<7)
0002f1 e030
0002f2 e64c
0002f3 d04a DELAY16 55
0002f4 951a dec r17
0002f5 f781 brne _OW_RD_BYTE_LP
0002f6 930c st X, r16
0002f7 911f pop r17
0002f8 910f pop r16
0002f9 9478 sei
0002fa 9508 ret
0002e7 9506 lsr r16
0002e8 9ab9 ow_pull
0002e9 e030
0002ea e04a
0002eb d053 DELAY16 6
0002ec 98b9 ow_release
0002ed e030
0002ee e140
0002ef d04f DELAY16 9
0002f0 99b1 sbic OW_PIN, OW_LINE
0002f1 6800 sbr r16, (1<<7)
0002f2 e030
0002f3 e64c
0002f4 d04a DELAY16 55
0002f5 951a dec r17
0002f6 f781 brne _OW_RD_BYTE_LP
0002f7 930c st X, r16
0002f8 911f pop r17
0002f9 910f pop r16
0002fa 9478 sei
0002fb 9508 ret
//</editor-fold>
//</editor-fold>
@ -2009,163 +2011,163 @@ main.asm(297): Including file 'mpy16u.asm'
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
; путем деления этого числа несколько раз
DISPLAY_UPD_DIGITS:
0002fb 930f push r16
0002fc 935f push r21
0002fd e053 ldi r21, 3
0002fc 930f push r16
0002fd 935f push r21
0002fe e053 ldi r21, 3
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
0002fe e6a3 ldi XL, LOW(DIGITS)
0002ff e0b0 ldi XH, HIGH(DIGITS)
0002ff e6a3 ldi XL, LOW(DIGITS)
000300 e0b0 ldi XH, HIGH(DIGITS)
.equ dividend = SRAM_TEMP_1 ; число которе будем делить
.equ divisor = 10 ; на что делим
; загружаем число которое хотим поделить в адрес SRAM делимого
000300 9380 0061 sts dividend, DISP_NUM_L
000302 9390 0062 sts dividend+1, DISP_NUM_H
000301 9380 0061 sts dividend, DISP_NUM_L
000303 9390 0062 sts dividend+1, DISP_NUM_H
; четыре раза производим деление для получения остатков
DIV_LOOP:
; заполняем нужные регистры
000304 9100 0061 lds dd16uL, dividend
000306 9110 0062 lds dd16uH, dividend+1
000308 e02a ldi dv16uL, LOW(divisor)
000309 e030 ldi dv16uH, HIGH(divisor)
000305 9100 0061 lds dd16uL, dividend
000307 9110 0062 lds dd16uH, dividend+1
000309 e02a ldi dv16uL, LOW(divisor)
00030a e030 ldi dv16uH, HIGH(divisor)
00030a ddc2 rcall div16u ; делим
00030b ddc1 rcall div16u ; делим
00030b 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
00030c 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
; обновляем делимое
00030c 9300 0061 sts dividend, dres16uL
00030e 9310 0062 sts dividend+1, dres16uH
00030d 9300 0061 sts dividend, dres16uL
00030f 9310 0062 sts dividend+1, dres16uH
000310 955a dec r21 ; декрементируем счетчик цикла
000311 f791 brne DIV_LOOP ; делим еще раз если не 0
000312 915f pop r21
000313 910f pop r16
000314 9508 ret
000311 955a dec r21 ; декрементируем счетчик цикла
000312 f791 brne DIV_LOOP ; делим еще раз если не 0
000313 915f pop r21
000314 910f pop r16
000315 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
DISPLAY_DECODER:
000315 930f push r16
000316 931f push r17
000316 930f push r16
000317 931f push r17
000317 eaee ldi ZL, LOW(2*DISPLAY_SYMBOLS)
000318 e0f6 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
000318 ebe0 ldi ZL, LOW(2*DISPLAY_SYMBOLS)
000319 e0f6 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
000319 2711 clr TEMP_REG_B
00031a 0fe0 add ZL, TEMP_REG_A
00031b 1ff1 adc ZH, TEMP_REG_B
00031a 2711 clr TEMP_REG_B
00031b 0fe0 add ZL, TEMP_REG_A
00031c 1ff1 adc ZH, TEMP_REG_B
00031c 9004 lpm r0, Z
00031d 911f pop r17
00031e 910f pop r16
00031f 9508 ret
00031d 9004 lpm r0, Z
00031e 911f pop r17
00031f 910f pop r16
000320 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: короткий писк">
BEEP_SHORT:
000320 9ac5 sbi BUZZER_PORT, BUZZER_PIN
000321 e053
000322 ea39
000323 e74d
000324 d01d DELAY24 150000
000325 98c5 cbi BUZZER_PORT, BUZZER_PIN
000326 9508 ret
000321 9ac5 sbi BUZZER_PORT, BUZZER_PIN
000322 e053
000323 ea39
000324 e74d
000325 d01d DELAY24 150000
000326 98c5 cbi BUZZER_PORT, BUZZER_PIN
000327 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: длинный писк">
BEEP_LONG:
000327 9ac5 sbi BUZZER_PORT, BUZZER_PIN
000328 e05c
000329 e334
00032a ef4d
00032b d016 DELAY24 500000
00032c 98c5 cbi BUZZER_PORT, BUZZER_PIN
00032d 9508 ret
000328 9ac5 sbi BUZZER_PORT, BUZZER_PIN
000329 e05c
00032a e334
00032b ef4d
00032c d016 DELAY24 500000
00032d 98c5 cbi BUZZER_PORT, BUZZER_PIN
00032e 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
DEBOUNCE_SW:
00032e 930f push r16
00032f 931f push r17
000330 932f push r18
00032f 930f push r16
000330 931f push r17
000331 932f push r18
000331 e02a ldi r18, 10
000332 e02a ldi r18, 10
_loop_2:
000332 ef1f ldi r17, 255
000333 ef1f ldi r17, 255
_loop_0:
000333 ef0f ldi r16, 255
000334 ef0f ldi r16, 255
_dec_0:
000334 950a dec r16
000335 f7f1 brne _dec_0
000335 950a dec r16
000336 f7f1 brne _dec_0
_loop_1:
000336 951a dec r17
000337 f7d9 brne _loop_0
000337 951a dec r17
000338 f7d9 brne _loop_0
_loop_3:
000338 952a dec r18
000339 f7c1 brne _loop_2
000339 952a dec r18
00033a f7c1 brne _loop_2
00033a 912f pop r18
00033b 911f pop r17
00033c 910f pop r16
00033d 9508 ret//</editor-fold>
00033b 912f pop r18
00033c 911f pop r17
00033d 910f pop r16
00033e 9508 ret//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (16бит макс число)">
DELAY_LOOP_16:
00033e 5041 subi DELAY_8_r, 1
00033f 4030 sbci DELAY_16_r, 0
000340 f7e8 brcc DELAY_LOOP_16
000341 9508 ret
00033f 5041 subi DELAY_8_r, 1
000340 4030 sbci DELAY_16_r, 0
000341 f7e8 brcc DELAY_LOOP_16
000342 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (24бит макс число)">
DELAY_LOOP_24:
000342 5041 subi DELAY_8_r, 1
000343 4030 sbci DELAY_16_r, 0
000344 4050 sbci DELAY_24_r, 0
000345 f7e0 brcc DELAY_LOOP_24
000346 9508 ret
000343 5041 subi DELAY_8_r, 1
000344 4030 sbci DELAY_16_r, 0
000345 4050 sbci DELAY_24_r, 0
000346 f7e0 brcc DELAY_LOOP_24
000347 9508 ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка">
DELAY:
000347 930f push r16
000348 931f push r17
000349 932f push r18
000348 930f push r16
000349 931f push r17
00034a 932f push r18
00034a e026 ldi r18, 6
00034b e026 ldi r18, 6
_DELAY_0:
00034b ef0f ldi r16, 255
00034c ef0f ldi r16, 255
_DELAY_1:
00034c ef1f ldi r17, 255
00034d ef1f ldi r17, 255
_DELAY_2:
00034d 951a dec r17
00034e f7f1 brne _DELAY_2
00034e 951a dec r17
00034f f7f1 brne _DELAY_2
00034f 950a dec r16
000350 f7d9 brne _DELAY_1
000351 952a dec r18
000352 f7c1 brne _DELAY_0
000350 950a dec r16
000351 f7d9 brne _DELAY_1
000352 952a dec r18
000353 f7c1 brne _DELAY_0
000353 912f pop r18
000354 911f pop r17
000355 910f pop r16
000356 9508 ret //</editor-fold>
000354 912f pop r18
000355 911f pop r17
000356 910f pop r16
000357 9508 ret //</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
DISPLAY_SYMBOLS:
; HGFEDCBA HGFEDCBA
000357 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
000358 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
000359 9299 .DB 0b10011001, 0b10010010 ; 4, 5
00035a f882 .DB 0b10000010, 0b11111000 ; 6, 7
00035b 9080 .DB 0b10000000, 0b10010000 ; 8, 9
00035c bf9c .DB 0b10011100, 0b10111111 ; °, -
00035d 89c6 .DB 0b11000110, 0b10001001 ; C, H
000358 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
000359 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
00035a 9299 .DB 0b10011001, 0b10010010 ; 4, 5
00035b f882 .DB 0b10000010, 0b11111000 ; 6, 7
00035c 9080 .DB 0b10000000, 0b10010000 ; 8, 9
00035d bf9c .DB 0b10011100, 0b10111111 ; °, -
00035e 89c6 .DB 0b11000110, 0b10001001 ; C, H
//</editor-fold>
//</editor-fold>
@ -2199,7 +2201,7 @@ counted separately from r26..r31 here.
"ATtiny2313A" register use summary:
x : 2 y : 0 z : 1 r0 : 6 r1 : 2 r2 : 0 r3 : 0 r4 : 0
r5 : 6 r6 : 6 r7 : 0 r8 : 6 r9 : 0 r10: 2 r11: 2 r12: 2
r13: 2 r14: 6 r15: 11 r16: 165 r17: 110 r18: 55 r19: 55 r20: 53
r13: 2 r14: 5 r15: 11 r16: 167 r17: 110 r18: 55 r19: 55 r20: 53
r21: 24 r22: 5 r23: 10 r24: 6 r25: 6 r26: 4 r27: 4 r28: 0
r29: 0 r30: 2 r31: 2
Registers used: 27 out of 35 (77.1%)
@ -2214,7 +2216,7 @@ brvs : 0 bset : 0 bst : 0 cbi : 29 cbr : 3 clc : 2
clh : 0 cli : 3 cln : 0 clr : 18 cls : 0 clt : 3
clv : 0 clz : 0 com : 6 cp : 2 cpc : 2 cpi : 16
cpse : 0 dec : 14 eor : 0 icall : 0 ijmp : 0 in : 4
inc : 4 ld : 0 ldd : 0 ldi : 99 lds : 39 lpm : 2
inc : 4 ld : 0 ldd : 0 ldi : 100 lds : 39 lpm : 2
lsl : 4 lsr : 11 mov : 31 movw : 0 neg : 1 nop : 2
or : 1 ori : 0 out : 21 pop : 57 push : 56 rcall : 64
ret : 25 reti : 3 rjmp : 58 rol : 6 ror : 9 sbc : 2
@ -2228,7 +2230,7 @@ Instructions used: 57 out of 105 (54.3%)
"ATtiny2313A" memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x0006bc 1690 14 1704 2048 83.2%
[.cseg] 0x000000 0x0006be 1692 14 1706 2048 83.3%
[.dseg] 0x000060 0x000072 0 18 18 128 14.1%
[.eseg] 0x000000 0x000005 0 5 5 128 3.9%

View File

@ -1,5 +1,5 @@
AVRASM ver. 2.2.7 main.asm Thu Jun 29 22:49:03 2023
AVRASM ver. 2.2.7 main.asm Thu Jun 29 23:01:33 2023
EQU SIGNATURE_000 0000001e
@ -560,7 +560,7 @@ CSEG _INTO_PROGRAM_STATE 00000014
CSEG _CLR_CURRENT_DIGIT 00000027
CSEG _indicate_1 0000002a
CSEG _indicate_2 0000003c
CSEG DISPLAY_DECODER 00000315
CSEG DISPLAY_DECODER 00000316
CSEG USI_TRANSMIT 000001d7
CSEG _indicate_3 0000004e
CSEG _indicate_4 0000005b
@ -569,10 +569,10 @@ CSEG MCU_INIT 00000072
CSEG RD_F_CODE 00000177
CSEG ERR_FAMILY_CODE 000000ae
CSEG START_PROGRAM 000000b3
CSEG BEEP_LONG 00000327
CSEG BEEP_SHORT 00000320
CSEG BEEP_LONG 00000328
CSEG BEEP_SHORT 00000321
CSEG LOOP 000000b6
CSEG DISPLAY_UPD_DIGITS 000002fb
CSEG DISPLAY_UPD_DIGITS 000002fc
CSEG _STATE_DEFAULT 000000b9
CSEG _STATE_PROGRAM 000000c5
CSEG TEMP_UPD 00000168
@ -628,11 +628,11 @@ CSEG _MIN_THRESHOLD 00000151
CSEG _MAX_THRESHOLD 00000159
CSEG _COMPARSION_EXIT 00000160
CSEG TEMP_CONV 000001cb
CSEG DELAY_LOOP_24 00000342
CSEG DELAY_LOOP_24 00000343
CSEG TEMP_RD 00000181
CSEG OW_PRESENCE 000002ad
CSEG OW_SEND_BYTE 000002c2
CSEG OW_RD_BYTE 000002e1
CSEG OW_PRESENCE 000002ae
CSEG OW_SEND_BYTE 000002c3
CSEG OW_RD_BYTE 000002e2
CSEG _TEMP_RD_EXIT 000001c5
CSEG _TEMP_RD_TO_UNSIGNED 0000019f
CSEG _TEMP_RD_CONTINUE 000001a6
@ -644,7 +644,7 @@ CSEG _SW_CHECK_ON_0 000001e6
CSEG _SW_SET_0 000001e9
CSEG _SW_CHECK_ON_1 00000203
CSEG _SW_SET_FROM_0_TO_1 000001ee
CSEG DEBOUNCE_SW 0000032e
CSEG DEBOUNCE_SW 0000032f
CSEG _SAVE_SETTINGS 000001f8
CSEG _SW_SET_1 00000206
CSEG _BUTTON_PROCESS_END 0000020f
@ -655,13 +655,13 @@ CSEG _CHECK_STEP 0000021d
CSEG _STEP_1 00000224
CSEG _STEP_2 0000024a
CSEG _S3_JMP 00000249
CSEG _REPROGRAM_SETTINGS_END 000002a7
CSEG _REPROGRAM_SETTINGS_END 000002a8
CSEG _S1_CHECK_PLUS 00000225
CSEG _INCREASE_HYST 0000022b
CSEG _S1_CHECK_MINUS 00000228
CSEG _DECREASE_HYST 00000234
CSEG _SHOW_HYST 0000023c
CSEG _STEP_3 00000288
CSEG _STEP_3 00000289
CSEG _S2_CHECK_PLUS 0000024b
CSEG _INCREASE_TEMP 00000251
CSEG _S2_CHECK_MINUS 0000024e
@ -669,34 +669,34 @@ CSEG _DECREASE_TEMP 0000025f
CSEG _SHOW_TEMP 0000026a
CSEG _NEGATE_SET_TEMP 00000277
CSEG _DIVIDE_SET_TEMP 0000027c
CSEG _S3_CHECK_PLUS 00000289
CSEG _SET_HEAT_MODE 0000028f
CSEG _S3_CHECK_MINUS 0000028c
CSEG _SET_COOLING_MODE 00000294
CSEG _SHOW_MODE 00000298
CSEG _SHOW_COOLING 000002a0
CSEG _SHOW_HEATING 000002a4
CSEG DELAY_LOOP_16 0000033e
CSEG OW_CHECK_PRESENCE 000002bc
CSEG _EXIT 000002c1
CSEG _OW_SEND_BYTE_LOOP 000002c7
CSEG _OW_SEND_0 000002ca
CSEG _OW_SEND_1 000002d3
CSEG _OW_SEND_BYTE_END 000002db
CSEG _OW_RD_BYTE_LP 000002e6
CSEG _S3_CHECK_PLUS 0000028a
CSEG _SET_HEAT_MODE 00000290
CSEG _S3_CHECK_MINUS 0000028d
CSEG _SET_COOLING_MODE 00000295
CSEG _SHOW_MODE 00000299
CSEG _SHOW_COOLING 000002a1
CSEG _SHOW_HEATING 000002a5
CSEG DELAY_LOOP_16 0000033f
CSEG OW_CHECK_PRESENCE 000002bd
CSEG _EXIT 000002c2
CSEG _OW_SEND_BYTE_LOOP 000002c8
CSEG _OW_SEND_0 000002cb
CSEG _OW_SEND_1 000002d4
CSEG _OW_SEND_BYTE_END 000002dc
CSEG _OW_RD_BYTE_LP 000002e7
EQU dividend 00000061
EQU divisor 0000000a
CSEG DIV_LOOP 00000304
CSEG DISPLAY_SYMBOLS 00000357
CSEG _loop_2 00000332
CSEG _loop_0 00000333
CSEG _dec_0 00000334
CSEG _loop_1 00000336
CSEG _loop_3 00000338
CSEG DELAY 00000347
CSEG _DELAY_0 0000034b
CSEG _DELAY_1 0000034c
CSEG _DELAY_2 0000034d
CSEG DIV_LOOP 00000305
CSEG DISPLAY_SYMBOLS 00000358
CSEG _loop_2 00000333
CSEG _loop_0 00000334
CSEG _dec_0 00000335
CSEG _loop_1 00000337
CSEG _loop_3 00000339
CSEG DELAY 00000348
CSEG _DELAY_0 0000034c
CSEG _DELAY_1 0000034d
CSEG _DELAY_2 0000034e
ESEG E_SETTING_TEMP_H 00000000
ESEG E_SETTING_TEMP_L 00000001
ESEG E_SETTING_HYST 00000002

View File

@ -48,7 +48,7 @@
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>98</LINE></_CLR_CURRENT_DIGIT>
<_indicate_1><FILE>main.asm</FILE><LINE>102</LINE></_indicate_1>
<_indicate_2><FILE>main.asm</FILE><LINE>122</LINE></_indicate_2>
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>994</LINE></DISPLAY_DECODER>
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>996</LINE></DISPLAY_DECODER>
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>592</LINE></USI_TRANSMIT>
<_indicate_3><FILE>main.asm</FILE><LINE>140</LINE></_indicate_3>
<_indicate_4><FILE>main.asm</FILE><LINE>156</LINE></_indicate_4>
@ -57,10 +57,10 @@
<RD_F_CODE><FILE>main.asm</FILE><LINE>458</LINE></RD_F_CODE>
<ERR_FAMILY_CODE><FILE>main.asm</FILE><LINE>254</LINE></ERR_FAMILY_CODE>
<START_PROGRAM><FILE>main.asm</FILE><LINE>259</LINE></START_PROGRAM>
<BEEP_LONG><FILE>main.asm</FILE><LINE>1020</LINE></BEEP_LONG>
<BEEP_SHORT><FILE>main.asm</FILE><LINE>1012</LINE></BEEP_SHORT>
<BEEP_LONG><FILE>main.asm</FILE><LINE>1022</LINE></BEEP_LONG>
<BEEP_SHORT><FILE>main.asm</FILE><LINE>1014</LINE></BEEP_SHORT>
<LOOP><FILE>main.asm</FILE><LINE>266</LINE></LOOP>
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>953</LINE></DISPLAY_UPD_DIGITS>
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>955</LINE></DISPLAY_UPD_DIGITS>
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>269</LINE></_STATE_DEFAULT>
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>281</LINE></_STATE_PROGRAM>
<TEMP_UPD><FILE>main.asm</FILE><LINE>442</LINE></TEMP_UPD>
@ -87,11 +87,11 @@
<_MAX_THRESHOLD><FILE>main.asm</FILE><LINE>424</LINE></_MAX_THRESHOLD>
<_COMPARSION_EXIT><FILE>main.asm</FILE><LINE>431</LINE></_COMPARSION_EXIT>
<TEMP_CONV><FILE>main.asm</FILE><LINE>570</LINE></TEMP_CONV>
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>1062</LINE></DELAY_LOOP_24>
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>1064</LINE></DELAY_LOOP_24>
<TEMP_RD><FILE>main.asm</FILE><LINE>474</LINE></TEMP_RD>
<OW_PRESENCE><FILE>main.asm</FILE><LINE>866</LINE></OW_PRESENCE>
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>893</LINE></OW_SEND_BYTE>
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>924</LINE></OW_RD_BYTE>
<OW_PRESENCE><FILE>main.asm</FILE><LINE>868</LINE></OW_PRESENCE>
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>895</LINE></OW_SEND_BYTE>
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>926</LINE></OW_RD_BYTE>
<_TEMP_RD_EXIT><FILE>main.asm</FILE><LINE>562</LINE></_TEMP_RD_EXIT>
<_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>511</LINE></_TEMP_RD_TO_UNSIGNED>
<_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>524</LINE></_TEMP_RD_CONTINUE>
@ -103,7 +103,7 @@
<_SW_SET_0><FILE>main.asm</FILE><LINE>631</LINE></_SW_SET_0>
<_SW_CHECK_ON_1><FILE>main.asm</FILE><LINE>656</LINE></_SW_CHECK_ON_1>
<_SW_SET_FROM_0_TO_1><FILE>main.asm</FILE><LINE>636</LINE></_SW_SET_FROM_0_TO_1>
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>1028</LINE></DEBOUNCE_SW>
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>1030</LINE></DEBOUNCE_SW>
<_SAVE_SETTINGS><FILE>main.asm</FILE><LINE>646</LINE></_SAVE_SETTINGS>
<_SW_SET_1><FILE>main.asm</FILE><LINE>660</LINE></_SW_SET_1>
<_BUTTON_PROCESS_END><FILE>main.asm</FILE><LINE>669</LINE></_BUTTON_PROCESS_END>
@ -114,13 +114,13 @@
<_STEP_1><FILE>main.asm</FILE><LINE>701</LINE></_STEP_1>
<_STEP_2><FILE>main.asm</FILE><LINE>744</LINE></_STEP_2>
<_S3_JMP><FILE>main.asm</FILE><LINE>740</LINE></_S3_JMP>
<_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>843</LINE></_REPROGRAM_SETTINGS_END>
<_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>845</LINE></_REPROGRAM_SETTINGS_END>
<_S1_CHECK_PLUS><FILE>main.asm</FILE><LINE>703</LINE></_S1_CHECK_PLUS>
<_INCREASE_HYST><FILE>main.asm</FILE><LINE>711</LINE></_INCREASE_HYST>
<_S1_CHECK_MINUS><FILE>main.asm</FILE><LINE>707</LINE></_S1_CHECK_MINUS>
<_DECREASE_HYST><FILE>main.asm</FILE><LINE>719</LINE></_DECREASE_HYST>
<_SHOW_HYST><FILE>main.asm</FILE><LINE>726</LINE></_SHOW_HYST>
<_STEP_3><FILE>main.asm</FILE><LINE>806</LINE></_STEP_3>
<_STEP_3><FILE>main.asm</FILE><LINE>808</LINE></_STEP_3>
<_S2_CHECK_PLUS><FILE>main.asm</FILE><LINE>746</LINE></_S2_CHECK_PLUS>
<_INCREASE_TEMP><FILE>main.asm</FILE><LINE>754</LINE></_INCREASE_TEMP>
<_S2_CHECK_MINUS><FILE>main.asm</FILE><LINE>750</LINE></_S2_CHECK_MINUS>
@ -128,36 +128,36 @@
<_SHOW_TEMP><FILE>main.asm</FILE><LINE>773</LINE></_SHOW_TEMP>
<_NEGATE_SET_TEMP><FILE>main.asm</FILE><LINE>786</LINE></_NEGATE_SET_TEMP>
<_DIVIDE_SET_TEMP><FILE>main.asm</FILE><LINE>790</LINE></_DIVIDE_SET_TEMP>
<_S3_CHECK_PLUS><FILE>main.asm</FILE><LINE>808</LINE></_S3_CHECK_PLUS>
<_SET_HEAT_MODE><FILE>main.asm</FILE><LINE>816</LINE></_SET_HEAT_MODE>
<_S3_CHECK_MINUS><FILE>main.asm</FILE><LINE>812</LINE></_S3_CHECK_MINUS>
<_SET_COOLING_MODE><FILE>main.asm</FILE><LINE>821</LINE></_SET_COOLING_MODE>
<_SHOW_MODE><FILE>main.asm</FILE><LINE>825</LINE></_SHOW_MODE>
<_SHOW_COOLING><FILE>main.asm</FILE><LINE>834</LINE></_SHOW_COOLING>
<_SHOW_HEATING><FILE>main.asm</FILE><LINE>838</LINE></_SHOW_HEATING>
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>1054</LINE></DELAY_LOOP_16>
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>882</LINE></OW_CHECK_PRESENCE>
<_EXIT><FILE>main.asm</FILE><LINE>888</LINE></_EXIT>
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>899</LINE></_OW_SEND_BYTE_LOOP>
<_OW_SEND_0><FILE>main.asm</FILE><LINE>903</LINE></_OW_SEND_0>
<_OW_SEND_1><FILE>main.asm</FILE><LINE>909</LINE></_OW_SEND_1>
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>914</LINE></_OW_SEND_BYTE_END>
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>930</LINE></_OW_RD_BYTE_LP>
<DIV_LOOP><FILE>main.asm</FILE><LINE>970</LINE></DIV_LOOP>
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1096</LINE></DISPLAY_SYMBOLS>
<_loop_2><FILE>main.asm</FILE><LINE>1034</LINE></_loop_2>
<_loop_0><FILE>main.asm</FILE><LINE>1036</LINE></_loop_0>
<_dec_0><FILE>main.asm</FILE><LINE>1038</LINE></_dec_0>
<_loop_1><FILE>main.asm</FILE><LINE>1041</LINE></_loop_1>
<_loop_3><FILE>main.asm</FILE><LINE>1044</LINE></_loop_3>
<DELAY><FILE>main.asm</FILE><LINE>1071</LINE></DELAY>
<_DELAY_0><FILE>main.asm</FILE><LINE>1077</LINE></_DELAY_0>
<_DELAY_1><FILE>main.asm</FILE><LINE>1079</LINE></_DELAY_1>
<_DELAY_2><FILE>main.asm</FILE><LINE>1081</LINE></_DELAY_2>
<E_SETTING_TEMP_H><FILE>main.asm</FILE><LINE>1113</LINE></E_SETTING_TEMP_H>
<E_SETTING_TEMP_L><FILE>main.asm</FILE><LINE>1114</LINE></E_SETTING_TEMP_L>
<E_SETTING_HYST><FILE>main.asm</FILE><LINE>1115</LINE></E_SETTING_HYST>
<E_SETTING_MODE><FILE>main.asm</FILE><LINE>1116</LINE></E_SETTING_MODE>
<E_FIRST_TIME_RUN><FILE>main.asm</FILE><LINE>1117</LINE></E_FIRST_TIME_RUN>
<_S3_CHECK_PLUS><FILE>main.asm</FILE><LINE>810</LINE></_S3_CHECK_PLUS>
<_SET_HEAT_MODE><FILE>main.asm</FILE><LINE>818</LINE></_SET_HEAT_MODE>
<_S3_CHECK_MINUS><FILE>main.asm</FILE><LINE>814</LINE></_S3_CHECK_MINUS>
<_SET_COOLING_MODE><FILE>main.asm</FILE><LINE>823</LINE></_SET_COOLING_MODE>
<_SHOW_MODE><FILE>main.asm</FILE><LINE>827</LINE></_SHOW_MODE>
<_SHOW_COOLING><FILE>main.asm</FILE><LINE>836</LINE></_SHOW_COOLING>
<_SHOW_HEATING><FILE>main.asm</FILE><LINE>840</LINE></_SHOW_HEATING>
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>1056</LINE></DELAY_LOOP_16>
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>884</LINE></OW_CHECK_PRESENCE>
<_EXIT><FILE>main.asm</FILE><LINE>890</LINE></_EXIT>
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>901</LINE></_OW_SEND_BYTE_LOOP>
<_OW_SEND_0><FILE>main.asm</FILE><LINE>905</LINE></_OW_SEND_0>
<_OW_SEND_1><FILE>main.asm</FILE><LINE>911</LINE></_OW_SEND_1>
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>916</LINE></_OW_SEND_BYTE_END>
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>932</LINE></_OW_RD_BYTE_LP>
<DIV_LOOP><FILE>main.asm</FILE><LINE>972</LINE></DIV_LOOP>
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1098</LINE></DISPLAY_SYMBOLS>
<_loop_2><FILE>main.asm</FILE><LINE>1036</LINE></_loop_2>
<_loop_0><FILE>main.asm</FILE><LINE>1038</LINE></_loop_0>
<_dec_0><FILE>main.asm</FILE><LINE>1040</LINE></_dec_0>
<_loop_1><FILE>main.asm</FILE><LINE>1043</LINE></_loop_1>
<_loop_3><FILE>main.asm</FILE><LINE>1046</LINE></_loop_3>
<DELAY><FILE>main.asm</FILE><LINE>1073</LINE></DELAY>
<_DELAY_0><FILE>main.asm</FILE><LINE>1079</LINE></_DELAY_0>
<_DELAY_1><FILE>main.asm</FILE><LINE>1081</LINE></_DELAY_1>
<_DELAY_2><FILE>main.asm</FILE><LINE>1083</LINE></_DELAY_2>
<E_SETTING_TEMP_H><FILE>main.asm</FILE><LINE>1115</LINE></E_SETTING_TEMP_H>
<E_SETTING_TEMP_L><FILE>main.asm</FILE><LINE>1116</LINE></E_SETTING_TEMP_L>
<E_SETTING_HYST><FILE>main.asm</FILE><LINE>1117</LINE></E_SETTING_HYST>
<E_SETTING_MODE><FILE>main.asm</FILE><LINE>1118</LINE></E_SETTING_MODE>
<E_FIRST_TIME_RUN><FILE>main.asm</FILE><LINE>1119</LINE></E_FIRST_TIME_RUN>
</LABELS>
</ASSEMBLER_INFO>

View File

@ -755,7 +755,7 @@ _INCREASE_TEMP:
rcall DEBOUNCE_SW
lds r17, SETTING_TEMP_L
lds r18, SETTING_TEMP_H
ldi r19, 1
ldi r19, 10
add r17, r19
clr r19
adc r18, r19
@ -766,7 +766,7 @@ _DECREASE_TEMP:
rcall DEBOUNCE_SW
lds r17, SETTING_TEMP_L
lds r18, SETTING_TEMP_H
subi r17, 1
subi r17, 10
sbci r18, 0
sts SETTING_TEMP_L, r17
sts SETTING_TEMP_H, r18
@ -793,7 +793,9 @@ _DIVIDE_SET_TEMP:
rcall div16u
mov DISP_NUM_L, dres16uL
mov DISP_NUM_H, dres16uH
sts DIGITS+3, drem16uL
ldi r16, 10
sts DIGITS+3, r16 ; значок градуса
pop dv16uH
pop dv16uL