change hyst & temp settings

This commit is contained in:
Sergey Yarkov 2023-06-29 14:18:35 +03:00
parent 482bb3794c
commit 9950d2e13d
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
13 changed files with 1581 additions and 2040 deletions

View File

@ -1,10 +1,2 @@
ОСНОВНОЕ:
- сделать подпрограмму, которя будет опрашивать кнопки и в зависимости от нажатия переключють состояние программы
- сделать программу, которая будет сохранять уставку температуры и гистерезис в EEPROM (перед инициализации МК
необходимо чтобы данные брались из EEPROM и записывались в соответствующие ячейки)
ДОПОЛНИТЕЛЬНО (если хватит памяти):
- отправлять данные температуры в UART ("целая-часть:дробная-часть\n")
- сделать программу, которая будет сохранять уставку температуры, гистерезис и режим работы в EEPROM
(перед инициализации МК необходимо чтобы данные брались из EEPROM и записывались в соответствующие ячейки)

View File

@ -7,6 +7,7 @@
.DEF DELAY_24_r = r21
.DEF DISP_NUM_L = r24 ; LSB числа которое сейчас на индикаторе
.DEF DISP_NUM_H = r25 ; MSB числа которое сейчас на индикаторе
.DEF REPROGRAM_STEP_r = r6
.EQU DIGIT_1_PIN = PD2 ; Пин разряда индикатора 1
.EQU DIGIT_2_PIN = PD3 ; Пин разряда индикатора 2
@ -63,7 +64,7 @@
; **** СТАНДАРТНЫЕ ПАРАМЕТРЫ ***********************************
; Отдельно задается целая и дробная часть в точности до десятых
.EQU DEFAULT_TEMP = 300 ; 30 градусов
.EQU DEFAULT_TEMP = 315 ; 30 градусов
.EQU DEFAULT_HYST = 5 ; 0.5 градусов гистерезис
.EQU HEAT_MODE = 1

View File

@ -1,85 +1,105 @@
:020000020000FC
:0200000073C0CB
:0200160018953B
:10001A0015C00F931F932F933F930FB7B49908C03E
:10002A0020916000203009F003C011E010936000B5
:10003A000FBF3F912F911F910F9118954F935F9387
:10004A000F931F935FB74091670045300CF403C0CC
:10005A00442740936700403081F493989498959888
:10006A000EF002C00BE002C000916500002311F0FF
:10007A00929A01C092980FD28CD1413081F4929811
:10008A00949895980091640030916500032B11F0C3
:10009A00939A01C0939800916400FDD17AD14230BD
:1000AA0059F4929893989598949A00916300F3D191
:1000BA00002D0F77002E6DD1433041F4929893981A
:1000CA009498959A00916B00E6D163D14395409339
:1000DA0067005FBF1F910F915F914F9118950FEDC8
:1000EA000DBF0FE701BB01EE07BB0CE108BB02E045
:1000FA0000BF05E003BF09E106BF00E20BBF0CE148
:10010A0000BD03E309B900E002B908E00AB906E054
:10011A0003B911241092670000E0009360000CE21A
:10012A0000936D0001E000936C0005E000936E00FF
:10013A0001E000936F0000270093690000936A00B2
:10014A0000EF00936B00C5D000917000083209F4EB
:10015A0005C012E010936000ADD101C0A7D180E0C4
:10016A0090E000916000003039F496987AD1A2D0DC
:10017A0001E009BF50D039D0013019F4969871D1F5
:10018A0014D1023071F7969AECCFEE24FF1841E1B0
:10019A00001F111F4A9509F40895EE1CFF1CE21A6C
:1001AA00F30A20F4E20EF31E8894F2CF0894F0CFFB
:1001BA00FF1829E0001F2A9509F40895FF1CF11A77
:1001CA0018F4F10E8894F6CF0894F4CF55274427F3
:1001DA0060E13695279510F4400F511F57954795C2
:1001EA00379527956A95B9F708950F930091690095
:1001FA00502E0DD000916B00502E09D000B3017023
:10020A00502E05D004E0502E02D00F9108955D9B28
:10021A00FECF5CB808950F931F932F933F934F938C
:10022A005F930091690010916A002AE030E0CEDF06
:10023A00022F132F20916B003327020F131F1093E5
:10024A0071000093720040916D0050916C006091B2
:10025A006E004F935F937727461B570BB42EA52E3C
:10026A005F914F917727460F571FD42EC52E0EF058
:10027A0004C0009510950F5F1F4FB016A10624F415
:10028A000D151C054CF40FC040916F00442311F466
:10029A00909801C0909A07C040916F00442311F4CE
:1002AA00909A01C090985F914F913F912F911F9121
:1002BA000F9108951F9361D053E137E84DEF15D19F
:1002CA0012D010916900812F10916A00912F1F910D
:1002DA0008950F9378D003E3802E8AD0A0E7B0E088
:1002EA00A6D00F9108950F931F932F933F934F9387
:1002FA006AD070FF3CC00CEC802E7AD00EEB802EB8
:10030A0077D0A9E6B0E093D0AAE6B0E090D01091F9
:10031A00690020916A002F93287F283F11F0E89402
:10032A0007C02F916894109520951F5F2F4F01C029
:10033A002F91269517952695179526951795269503
:10034A001795309169000EF43195432F3F70432F72
:10035A00330F330F330F440F340F369536953695D6
:10036A0036951093690020936A0030936B004F9181
:10037A003F912F911F910F9108950F9324D070FFF1
:10038A0006C00CEC802E34D004E4802E31D00F91BC
:10039A0008950F930FB800E40EB90BE10DB9769BDF
:1003AA00FDCFC09AC0980F9108950F938AD0B29B3F
:1003BA000196B39B0197B49B01C003C000E0009370
:1003CA0060000F910895F894B99A33E04EEB89D002
:1003DA00B99830E04AE885D005D033E042E381D0CD
:1003EA0078940895B19B716002C0B1997E7F089597
:1003FA000F931F93F894082D18E0069508F448F017
:10040A00B99A30E046E76DD0B99830E042E169D058
:10041A0008C0B99A30E04AE064D0B99830E04EE7B3
:10042A0060D01A9551F778941F910F9108950F9300
:10043A001F93F894002718E00695B99A30E04AE02D
:10044A0050D0B99830E040E14CD0B199006830E022
:10045A004CE647D01A9581F70C9378941F910F9127
:10046A000895F8945F9354E0A3E6B0E080936100A6
:10047A009093620000916100109162002AE030E0DE
:10048A0084DEED9200936100109362005A9591F711
:10049A005F91789408950F931F93EEE1F5E0112789
:1004AA00E00FF11F04901F910F910895C59A22D071
:1004BA00C5980895C59A1ED01DD01CD01BD0C598CA
:1004CA0008950F931F932F932AE01FEF0FEF0A95BA
:1004DA00F1F71A95D9F72A95C1F72F911F910F9124
:1004EA00089541503040E8F7089541503040504057
:1004FA00E0F708950F931F932F9326E00FEF1FEF56
:10050A001A95F1F70A95D9F72A95C1F72F911F91F4
:10051A000F910895C0F9A4B0999282F880909CBF77
:020000006FC0CF
:02000800189549
:0200160002C026
:10001A000DC00F931F930FB716B31C7019F411E09C
:10002A00109360000FBF1F910F9118950F931F93A4
:10003A002F933F934F935F935FB74091670045308B
:10004A000CF403C0442740936700403081F493982E
:10005A00949895980EF002C00BE002C000916500DA
:10006A00002311F0929A01C09298A3D29BD14130F9
:10007A0081F4929894989598009164003091650063
:10008A00032B11F0939A01C093980091640091D2C6
:10009A0089D1423059F4929893989598949A0091FC
:1000AA00630087D2002D0F77002E7CD1433041F4B4
:1000BA00929893989498959A009166007AD272D100
:1000CA004395409367005FBF5F914F913F912F9196
:1000DA001F910F9118950FED0DBF0FE701BB01EEB0
:1000EA0007BB0CE108BB02E000BF05E003BF09E162
:1000FA0006BF00E20BBF0CE100BD03E309B900E053
:10010A0002B908E00AB906E003B91124109267009F
:10011A0000E0009360000BE300936C0001E00093A1
:10012A006B0005E000936D0001E000936E0000276C
:10013A00009368000093690000EF00936A000FEFD4
:10014A00009371006624CED000916F00083209F442
:10015A0005C012E0109360003ED201C035D280E0A3
:10016A0090E0009160000BD2003051F496982091F3
:10017A006A0020936600A7D059D011E019BF38D081
:10018A00013011F4969842D1023059F7969AE9CF84
:10019A00EE24FF1841E1001F111F4A9509F4089542
:1001AA00EE1CFF1CE21AF30A20F4E20EF31E8894F6
:1001BA00F2CF0894F0CFFF1829E0001F2A9509F41E
:1001CA000895FF1CF11A18F4F10E8894F6CF0894DA
:1001DA00F4CF5527442760E13695279510F4400F50
:1001EA00511F57954795379527956A95B9F70895F9
:1001FA000F931F9300916800502E14D000916A004B
:10020A00502E10D000B30170502E0CD004E0502EA6
:10021A0009D00027502E1CE005D01A95E9F71F9146
:10022A000F9108955D9BFECF5CB808950F931F93BD
:10023A002F933F934F935F937F93009168001091A0
:10024A0069002AE030E0C5DF022F132F20916A00EF
:10025A003327020F131F40916C0050916B0060917D
:10026A006D004F935F937727461B570BB42EA52E2D
:10027A005F914F917727460F571FD42EC52E0EF048
:10028A0004C0009510950F5F1F4FB016A10624F405
:10029A000D151C054CF40FC040916E00442311F457
:1002AA00909801C0909A07C040916E00442311F4BF
:1002BA00909A01C090987F915F914F913F912F91B1
:1002CA001F910F9108951F9361D052E135E54DEBCF
:1002DA009DD112D010916800812F10916900912F41
:1002EA001F9108950F93FDD003E3802E0FD1AFE63F
:1002FA00B0E02BD10F9108950F931F932F933F9343
:10030A004F93EFD070FF3CC00CEC802EFFD00EEB69
:10031A00802EFCD0A8E6B0E018D1A9E6B0E015D14D
:10032A0010916800209169002F93287F283F11F0CF
:10033A00E89407C02F916894109520951F5F2F4F5E
:10034A0001C02F91269517952695179526951795ED
:10035A0026951795309168000EF43195432F3F701A
:10036A00432F330F330F330F440F340F369536951F
:10037A0036953695109368002093690030936A0089
:10038A004F913F912F911F910F9108950F93A9D0EB
:10039A0070FF06C00CEC802EB9D004E4802EB6D0D3
:1003AA000F9108950F930F920FB800E40EB90BE165
:1003BA000DB9769BFDCFC09AC0980F900F91089502
:1003CA000F93B49B01C014C000917100002309F47B
:1003DA000FC000270093710005D16394162D1430C5
:1003EA0014F4F2D005C06624F6D010E01093600031
:1003FA00B49901C009C000917100002309F004C03A
:10040A000FEF00937100EED00F9108950F931F9391
:10041A002F933F934F93062D002309F002C0639454
:10042A00D3D0CEDF013019F0023011F154C00000F0
:10043A00B29B04C000C0B39B08C00DC0D3D01091BA
:10044A006D00139510936D0006C0CCD010916D000D
:10045A001A9510936D000F931F9300916D001AE087
:10046A00AADE802F9927F09266001F910F9133C060
:10047A000000B29B04C000C0B39B0FC019C0B2D029
:10048A0010916C0020916B0031E0130F3327231F6A
:10049A0010936C0020936B000BC0A4D010916C00D9
:1004AA0020916B001150204010936C0020936B0038
:1004BA000F931F932F933F9300916C0010916B0041
:1004CA002AE030E065DE802F912FE09266003F91AE
:1004DA002F911F910F914F913F912F911F910F9142
:1004EA000895F894B99A33E04EEB8CD0B99830E07D
:1004FA004AE888D005D033E042E384D0789408955E
:10050A00B19B716002C0B1997E7F0895F8940F93F0
:10051A001F93082D18E0069508F448F0B99A30E0C0
:10052A0046E770D0B99830E042E16CD008C0B99A79
:10053A0030E04AE067D0B99830E04EE763D01A95C8
:10054A0051F71F910F9178940895F8940F931F9380
:10055A00002718E00695B99A30E04AE053D0B998D6
:10056A0030E040E14FD0B199006830E04CE64AD023
:10057A001A9581F70C931F910F91789408950F9310
:10058A005F9353E0A3E6B0E080936100909362002A
:10059A0000916100109162002AE030E0F9DDED92ED
:1005AA0000936100109362005A9591F75F910F9141
:1005BA0008950F931F93E0E4F6E01127E00FF11F6F
:1005CA0004901F910F910895C59A53E039EA4DE7B7
:1005DA001DD0C5980895C59A5CE034E34DEF16D056
:1005EA00C59808950F931F932F932AE01FEF0FEFDB
:1005FA000A95F1F71A95D9F72A95C1F72F911F9104
:10060A000F91089541503040E8F708954150304025
:10061A005040E0F708950F931F932F9326E00FEFB2
:10062A001FEF1A95F1F70A95D9F72A95C1F72F9175
:10063A001F910F910895C0F9A4B0999282F8809001
:04064A009CBFC68902
:00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
AVRASM ver. 2.2.7 main.asm Mon Jun 26 12:19:45 2023
AVRASM ver. 2.2.7 main.asm Thu Jun 29 14:17:58 2023
EQU SIGNATURE_000 0000001e
@ -486,6 +486,7 @@ DEF DELAY_8_r r20
DEF DELAY_24_r r21
DEF DISP_NUM_L r24
DEF DISP_NUM_H r25
DEF REPROGRAM_STEP_r r6
EQU DIGIT_1_PIN 00000002
EQU DIGIT_2_PIN 00000003
EQU DIGIT_3_PIN 00000004
@ -526,12 +527,12 @@ EQU UART_TX_PIN 00000001
EQU MCU_STATE_DEFAULT 00000000
EQU MCU_STATE_PROGRAM 00000001
EQU MCU_STATE_ERROR 00000002
EQU DEFAULT_TEMP 0000012c
EQU DEFAULT_TEMP 0000013b
EQU DEFAULT_HYST 00000005
EQU HEAT_MODE 00000001
EQU COOLING_MODE 00000000
EQU DEFAULT_MODE 00000001
EQU DEFAULT_SETTING_TEMP_L 0000002c
EQU DEFAULT_SETTING_TEMP_L 0000003b
EQU DEFAULT_SETTING_TEMP_H 00000001
EQU DEFAULT_SETTING_HYST 00000005
EQU DEFAULT_SETTING_MODE 00000001
@ -539,45 +540,44 @@ DSEG MCU_STATE 00000060
DSEG SRAM_TEMP_1 00000061
DSEG DIGITS 00000063
DSEG CURRENT_DIGIT 00000067
DSEG SW_FLAGS 00000068
DSEG TEMP_L 00000069
DSEG TEMP_H 0000006a
DSEG TEMP_F 0000006b
DSEG SETTING_TEMP_H 0000006c
DSEG SETTING_TEMP_L 0000006d
DSEG SETTING_HYST 0000006e
DSEG SETTING_MODE 0000006f
DSEG DEVICE_FAMILY_CODE 00000070
DSEG SRAM_TEMP_2 00000071
DSEG SRAM_TEMP_3 00000072
CSEG RESET_vect 00000074
CSEG TIMER0_COMPA_vect 00000023
DSEG TEMP_L 00000068
DSEG TEMP_H 00000069
DSEG TEMP_F 0000006a
DSEG SETTING_TEMP_H 0000006b
DSEG SETTING_TEMP_L 0000006c
DSEG SETTING_HYST 0000006d
DSEG SETTING_MODE 0000006e
DSEG DEVICE_FAMILY_CODE 0000006f
DSEG PROGRAM_STEPS 00000070
DSEG SW_DATA 00000071
CSEG RESET_vect 00000070
CSEG PCINT0_vect 0000000e
CSEG _PCINT0_vect_end 0000001d
CSEG _INTO_PROGRAM_STATE 0000001a
CSEG _CLR_CURRENT_DIGIT 0000002d
CSEG _indicate_1 00000030
CSEG _indicate_2 00000042
CSEG DISPLAY_DECODER 00000250
CSEG USI_TRANSMIT 000001ce
CSEG _indicate_3 00000054
CSEG _indicate_4 00000061
CSEG _indicate_exit 0000006b
CSEG MCU_INIT 00000076
CSEG RD_F_CODE 0000016e
CSEG TIMER0_COMPA_vect 0000001b
CSEG _PCINT0_vect_end 00000017
CSEG _INTO_PROGRAM_STATE 00000014
CSEG _CLR_CURRENT_DIGIT 00000027
CSEG _indicate_1 0000002a
CSEG _indicate_2 0000003c
CSEG DISPLAY_DECODER 000002de
CSEG USI_TRANSMIT 000001d7
CSEG _indicate_3 0000004e
CSEG _indicate_4 0000005b
CSEG _indicate_exit 00000065
CSEG MCU_INIT 00000072
CSEG RD_F_CODE 00000177
CSEG ERR_FAMILY_CODE 000000ae
CSEG START_PROGRAM 000000b3
CSEG BEEP_LONG 0000025f
CSEG BEEP_SHORT 0000025b
CSEG BEEP_LONG 000002f0
CSEG BEEP_SHORT 000002e9
CSEG LOOP 000000b6
CSEG _STATE_DEFAULT 000000b8
CSEG _STATE_PROGRAM 000000c1
CSEG DISPLAY_UPD_DIGITS 00000236
CSEG TEMP_UPD 0000015f
CSEG TEMP_COMPARSION 00000110
CSEG TEMP_SEND_UART 000000fa
CSEG _STATE_ERROR 000000c6
CSEG SW_CHECK_PROCESS 000001da
CSEG DISPLAY_UPD_DIGITS 000002c4
CSEG _STATE_DEFAULT 000000b9
CSEG _STATE_PROGRAM 000000c5
CSEG TEMP_UPD 00000168
CSEG TEMP_COMPARSION 0000011b
CSEG TEMP_SEND_UART 000000fd
CSEG _STATE_ERROR 000000c9
CSEG REPROGRAM_SETTINGS 0000020b
DEF drem16uL r14
DEF drem16uH r15
DEF dres16uL r16
@ -587,19 +587,19 @@ DEF dd16uH r17
DEF dv16uL r18
DEF dv16uH r19
DEF dcnt16u r20
CSEG div16u 000000ca
CSEG d16u_1 000000cd
CSEG d16u_2 000000d2
CSEG d16u_3 000000db
CSEG div16u 000000cd
CSEG d16u_1 000000d0
CSEG d16u_2 000000d5
CSEG d16u_3 000000de
DEF drem8u r15
DEF dres8u r16
DEF dd8u r16
DEF dv8u r17
DEF dcnt8u r18
CSEG div8u 000000dd
CSEG d8u_1 000000df
CSEG d8u_2 000000e3
CSEG d8u_3 000000e9
CSEG div8u 000000e0
CSEG d8u_1 000000e2
CSEG d8u_2 000000e6
CSEG d8u_3 000000ec
DEF mc16uL r16
DEF mc16uH r17
DEF mp16uL r18
@ -609,54 +609,78 @@ DEF m16u1 r19
DEF m16u2 r20
DEF m16u3 r21
DEF mcnt16u r22
CSEG mpy16u 000000eb
CSEG m16u_1 000000f0
CSEG noad8 000000f3
CSEG UART_WR_BYTE 0000010c
CSEG mpy16u 000000ee
CSEG m16u_1 000000f3
CSEG noad8 000000f6
CSEG UART_WR_BYTE 00000117
CSEG _TEMP_SEND_UART_L 00000111
DEF temp_r_l r16
DEF temp_r_h r17
DEF min_r_trhd_l r11
DEF min_r_trhd_h r10
DEF max_r_trhd_l r13
DEF max_r_trhd_h r12
CSEG _NEGATE_TEMP 0000013e
CSEG _COMPARE 00000142
CSEG _MIN_THRESHOLD 00000149
CSEG _MAX_THRESHOLD 00000151
CSEG _COMPARSION_EXIT 00000158
CSEG TEMP_CONV 000001c2
CSEG DELAY_LOOP_24 0000027a
CSEG TEMP_RD 00000178
CSEG OW_PRESENCE 000001e8
CSEG OW_SEND_BYTE 000001fd
CSEG OW_RD_BYTE 0000021c
CSEG _TEMP_RD_EXIT 000001bc
CSEG _TEMP_RD_TO_UNSIGNED 00000196
CSEG _TEMP_RD_CONTINUE 0000019d
CSEG _TEMP_RD_END 000001a6
CSEG _TEMP_CONV_EXIT 000001cc
CSEG _USI_TRANSMIT_LOOP 000001d3
CSEG DEBOUNCE_SW 00000266
CSEG _INTO_DEFAULT_STATE 000001e3
CSEG _SW_CHECK_PROCESS_END 000001e6
CSEG DELAY_LOOP_16 00000276
CSEG OW_CHECK_PRESENCE 000001f7
CSEG _EXIT 000001fc
CSEG _OW_SEND_BYTE_LOOP 00000202
CSEG _OW_SEND_0 00000205
CSEG _OW_SEND_1 0000020e
CSEG _OW_SEND_BYTE_END 00000216
CSEG _OW_RD_BYTE_LP 00000221
CSEG _NEGATE_TEMP 00000146
CSEG _COMPARE 0000014a
CSEG _MIN_THRESHOLD 00000151
CSEG _MAX_THRESHOLD 00000159
CSEG _COMPARSION_EXIT 00000160
CSEG TEMP_CONV 000001cb
CSEG DELAY_LOOP_24 0000030b
CSEG TEMP_RD 00000181
CSEG OW_PRESENCE 00000276
CSEG OW_SEND_BYTE 0000028b
CSEG OW_RD_BYTE 000002aa
CSEG _TEMP_RD_EXIT 000001c5
CSEG _TEMP_RD_TO_UNSIGNED 0000019f
CSEG _TEMP_RD_CONTINUE 000001a6
CSEG _TEMP_RD_END 000001af
CSEG _TEMP_CONV_EXIT 000001d5
CSEG _USI_TRANSMIT_LOOP 000001dd
CSEG BUTTON_PROCESS 000001e5
CSEG _SW_CHECK_ON_0 000001e6
CSEG _SW_SET_0 000001e9
CSEG _SW_CHECK_ON_1 000001fd
CSEG _SW_SET_FROM_0_TO_1 000001ee
CSEG DEBOUNCE_SW 000002f7
CSEG _SAVE_SETTINGS 000001f8
CSEG _SW_SET_1 00000200
CSEG _BUTTON_PROCESS_END 00000209
CSEG _SW_SET_FROM_1_TO_0 00000205
CSEG _INTO 00000214
CSEG _REPROGRAM_SETTINGS_LOOP 00000216
CSEG _CHECK_STEP 00000217
CSEG _STEP_1 0000021c
CSEG _STEP_2 0000023d
CSEG _REPROGRAM_SETTINGS_END 00000270
CSEG _S1_CHECK_PLUS 0000021d
CSEG _INCREASE_HYST 00000223
CSEG _S1_CHECK_MINUS 00000220
CSEG _DECREASE_HYST 0000022a
CSEG _SHOW_HYST 00000230
CSEG _S2_CHECK_PLUS 0000023e
CSEG _INCREASE_TEMP 00000244
CSEG _S2_CHECK_MINUS 00000241
CSEG _DECREASE_TEMP 00000252
CSEG _SHOW_TEMP 0000025d
CSEG DELAY_LOOP_16 00000307
CSEG OW_CHECK_PRESENCE 00000285
CSEG _EXIT 0000028a
CSEG _OW_SEND_BYTE_LOOP 00000290
CSEG _OW_SEND_0 00000293
CSEG _OW_SEND_1 0000029c
CSEG _OW_SEND_BYTE_END 000002a4
CSEG _OW_RD_BYTE_LP 000002af
EQU dividend 00000061
EQU divisor 0000000a
CSEG DIV_LOOP 0000023f
CSEG DISPLAY_SYMBOLS 0000028f
CSEG DELAY 0000027f
CSEG _loop_2 0000026a
CSEG _loop_0 0000026b
CSEG _dec_0 0000026c
CSEG _loop_1 0000026e
CSEG _loop_3 00000270
CSEG _DELAY_0 00000283
CSEG _DELAY_1 00000284
CSEG _DELAY_2 00000285
CSEG DIV_LOOP 000002cd
CSEG DISPLAY_SYMBOLS 00000320
CSEG _loop_2 000002fb
CSEG _loop_0 000002fc
CSEG _dec_0 000002fd
CSEG _loop_1 000002ff
CSEG _loop_3 00000301
CSEG DELAY 00000310
CSEG _DELAY_0 00000314
CSEG _DELAY_1 00000315
CSEG _DELAY_2 00000316

View File

@ -30,45 +30,44 @@
<SRAM_TEMP_1><FILE>main.asm</FILE><LINE>25</LINE></SRAM_TEMP_1>
<DIGITS><FILE>main.asm</FILE><LINE>26</LINE></DIGITS>
<CURRENT_DIGIT><FILE>main.asm</FILE><LINE>27</LINE></CURRENT_DIGIT>
<SW_FLAGS><FILE>main.asm</FILE><LINE>28</LINE></SW_FLAGS>
<TEMP_L><FILE>main.asm</FILE><LINE>29</LINE></TEMP_L>
<TEMP_H><FILE>main.asm</FILE><LINE>30</LINE></TEMP_H>
<TEMP_F><FILE>main.asm</FILE><LINE>31</LINE></TEMP_F>
<SETTING_TEMP_H><FILE>main.asm</FILE><LINE>32</LINE></SETTING_TEMP_H>
<SETTING_TEMP_L><FILE>main.asm</FILE><LINE>33</LINE></SETTING_TEMP_L>
<SETTING_HYST><FILE>main.asm</FILE><LINE>34</LINE></SETTING_HYST>
<SETTING_MODE><FILE>main.asm</FILE><LINE>35</LINE></SETTING_MODE>
<DEVICE_FAMILY_CODE><FILE>main.asm</FILE><LINE>36</LINE></DEVICE_FAMILY_CODE>
<SRAM_TEMP_2><FILE>main.asm</FILE><LINE>37</LINE></SRAM_TEMP_2>
<SRAM_TEMP_3><FILE>main.asm</FILE><LINE>38</LINE></SRAM_TEMP_3>
<RESET_vect><FILE>main.asm</FILE><LINE>191</LINE></RESET_vect>
<TIMER0_COMPA_vect><FILE>main.asm</FILE><LINE>96</LINE></TIMER0_COMPA_vect>
<PCINT0_vect><FILE>main.asm</FILE><LINE>59</LINE></PCINT0_vect>
<_PCINT0_vect_end><FILE>main.asm</FILE><LINE>86</LINE></_PCINT0_vect_end>
<_INTO_PROGRAM_STATE><FILE>main.asm</FILE><LINE>82</LINE></_INTO_PROGRAM_STATE>
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>108</LINE></_CLR_CURRENT_DIGIT>
<_indicate_1><FILE>main.asm</FILE><LINE>112</LINE></_indicate_1>
<_indicate_2><FILE>main.asm</FILE><LINE>132</LINE></_indicate_2>
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>778</LINE></DISPLAY_DECODER>
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>595</LINE></USI_TRANSMIT>
<_indicate_3><FILE>main.asm</FILE><LINE>150</LINE></_indicate_3>
<_indicate_4><FILE>main.asm</FILE><LINE>166</LINE></_indicate_4>
<_indicate_exit><FILE>main.asm</FILE><LINE>178</LINE></_indicate_exit>
<MCU_INIT><FILE>main.asm</FILE><LINE>197</LINE></MCU_INIT>
<RD_F_CODE><FILE>main.asm</FILE><LINE>457</LINE></RD_F_CODE>
<ERR_FAMILY_CODE><FILE>main.asm</FILE><LINE>253</LINE></ERR_FAMILY_CODE>
<START_PROGRAM><FILE>main.asm</FILE><LINE>258</LINE></START_PROGRAM>
<BEEP_LONG><FILE>main.asm</FILE><LINE>802</LINE></BEEP_LONG>
<BEEP_SHORT><FILE>main.asm</FILE><LINE>794</LINE></BEEP_SHORT>
<LOOP><FILE>main.asm</FILE><LINE>267</LINE></LOOP>
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>271</LINE></_STATE_DEFAULT>
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>280</LINE></_STATE_PROGRAM>
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>737</LINE></DISPLAY_UPD_DIGITS>
<TEMP_UPD><FILE>main.asm</FILE><LINE>441</LINE></TEMP_UPD>
<TEMP_COMPARSION><FILE>main.asm</FILE><LINE>334</LINE></TEMP_COMPARSION>
<TEMP_L><FILE>main.asm</FILE><LINE>28</LINE></TEMP_L>
<TEMP_H><FILE>main.asm</FILE><LINE>29</LINE></TEMP_H>
<TEMP_F><FILE>main.asm</FILE><LINE>30</LINE></TEMP_F>
<SETTING_TEMP_H><FILE>main.asm</FILE><LINE>31</LINE></SETTING_TEMP_H>
<SETTING_TEMP_L><FILE>main.asm</FILE><LINE>32</LINE></SETTING_TEMP_L>
<SETTING_HYST><FILE>main.asm</FILE><LINE>33</LINE></SETTING_HYST>
<SETTING_MODE><FILE>main.asm</FILE><LINE>34</LINE></SETTING_MODE>
<DEVICE_FAMILY_CODE><FILE>main.asm</FILE><LINE>35</LINE></DEVICE_FAMILY_CODE>
<PROGRAM_STEPS><FILE>main.asm</FILE><LINE>36</LINE></PROGRAM_STEPS>
<SW_DATA><FILE>main.asm</FILE><LINE>37</LINE></SW_DATA>
<RESET_vect><FILE>main.asm</FILE><LINE>184</LINE></RESET_vect>
<PCINT0_vect><FILE>main.asm</FILE><LINE>61</LINE></PCINT0_vect>
<TIMER0_COMPA_vect><FILE>main.asm</FILE><LINE>84</LINE></TIMER0_COMPA_vect>
<_PCINT0_vect_end><FILE>main.asm</FILE><LINE>75</LINE></_PCINT0_vect_end>
<_INTO_PROGRAM_STATE><FILE>main.asm</FILE><LINE>71</LINE></_INTO_PROGRAM_STATE>
<_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>926</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>
<_indicate_exit><FILE>main.asm</FILE><LINE>168</LINE></_indicate_exit>
<MCU_INIT><FILE>main.asm</FILE><LINE>190</LINE></MCU_INIT>
<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>952</LINE></BEEP_LONG>
<BEEP_SHORT><FILE>main.asm</FILE><LINE>944</LINE></BEEP_SHORT>
<LOOP><FILE>main.asm</FILE><LINE>266</LINE></LOOP>
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>885</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>
<TEMP_COMPARSION><FILE>main.asm</FILE><LINE>345</LINE></TEMP_COMPARSION>
<TEMP_SEND_UART><FILE>main.asm</FILE><LINE>300</LINE></TEMP_SEND_UART>
<_STATE_ERROR><FILE>main.asm</FILE><LINE>286</LINE></_STATE_ERROR>
<SW_CHECK_PROCESS><FILE>main.asm</FILE><LINE>626</LINE></SW_CHECK_PROCESS>
<REPROGRAM_SETTINGS><FILE>main.asm</FILE><LINE>670</LINE></REPROGRAM_SETTINGS>
<div16u><FILE>div16u.asm</FILE><LINE>32</LINE></div16u>
<d16u_1><FILE>div16u.asm</FILE><LINE>36</LINE></d16u_1>
<d16u_2><FILE>div16u.asm</FILE><LINE>42</LINE></d16u_2>
@ -80,45 +79,69 @@
<mpy16u><FILE>mpy16u.asm</FILE><LINE>31</LINE></mpy16u>
<m16u_1><FILE>mpy16u.asm</FILE><LINE>37</LINE></m16u_1>
<noad8><FILE>mpy16u.asm</FILE><LINE>40</LINE></noad8>
<UART_WR_BYTE><FILE>main.asm</FILE><LINE>327</LINE></UART_WR_BYTE>
<UART_WR_BYTE><FILE>main.asm</FILE><LINE>338</LINE></UART_WR_BYTE>
<_TEMP_SEND_UART_L><FILE>main.asm</FILE><LINE>327</LINE></_TEMP_SEND_UART_L>
<_NEGATE_TEMP><FILE>main.asm</FILE><LINE>399</LINE></_NEGATE_TEMP>
<_COMPARE><FILE>main.asm</FILE><LINE>405</LINE></_COMPARE>
<_MIN_THRESHOLD><FILE>main.asm</FILE><LINE>415</LINE></_MIN_THRESHOLD>
<_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>571</LINE></TEMP_CONV>
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>846</LINE></DELAY_LOOP_24>
<TEMP_RD><FILE>main.asm</FILE><LINE>473</LINE></TEMP_RD>
<OW_PRESENCE><FILE>main.asm</FILE><LINE>650</LINE></OW_PRESENCE>
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>677</LINE></OW_SEND_BYTE>
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>708</LINE></OW_RD_BYTE>
<_TEMP_RD_EXIT><FILE>main.asm</FILE><LINE>563</LINE></_TEMP_RD_EXIT>
<TEMP_CONV><FILE>main.asm</FILE><LINE>570</LINE></TEMP_CONV>
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>994</LINE></DELAY_LOOP_24>
<TEMP_RD><FILE>main.asm</FILE><LINE>474</LINE></TEMP_RD>
<OW_PRESENCE><FILE>main.asm</FILE><LINE>798</LINE></OW_PRESENCE>
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>825</LINE></OW_SEND_BYTE>
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>856</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>
<_TEMP_RD_END><FILE>main.asm</FILE><LINE>534</LINE></_TEMP_RD_END>
<_TEMP_CONV_EXIT><FILE>main.asm</FILE><LINE>588</LINE></_TEMP_CONV_EXIT>
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>613</LINE></_USI_TRANSMIT_LOOP>
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>812</LINE></DEBOUNCE_SW>
<_INTO_DEFAULT_STATE><FILE>main.asm</FILE><LINE>639</LINE></_INTO_DEFAULT_STATE>
<_SW_CHECK_PROCESS_END><FILE>main.asm</FILE><LINE>642</LINE></_SW_CHECK_PROCESS_END>
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>838</LINE></DELAY_LOOP_16>
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>666</LINE></OW_CHECK_PRESENCE>
<_EXIT><FILE>main.asm</FILE><LINE>672</LINE></_EXIT>
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>683</LINE></_OW_SEND_BYTE_LOOP>
<_OW_SEND_0><FILE>main.asm</FILE><LINE>687</LINE></_OW_SEND_0>
<_OW_SEND_1><FILE>main.asm</FILE><LINE>693</LINE></_OW_SEND_1>
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>698</LINE></_OW_SEND_BYTE_END>
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>714</LINE></_OW_RD_BYTE_LP>
<DIV_LOOP><FILE>main.asm</FILE><LINE>754</LINE></DIV_LOOP>
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>880</LINE></DISPLAY_SYMBOLS>
<DELAY><FILE>main.asm</FILE><LINE>855</LINE></DELAY>
<_loop_2><FILE>main.asm</FILE><LINE>818</LINE></_loop_2>
<_loop_0><FILE>main.asm</FILE><LINE>820</LINE></_loop_0>
<_dec_0><FILE>main.asm</FILE><LINE>822</LINE></_dec_0>
<_loop_1><FILE>main.asm</FILE><LINE>825</LINE></_loop_1>
<_loop_3><FILE>main.asm</FILE><LINE>828</LINE></_loop_3>
<_DELAY_0><FILE>main.asm</FILE><LINE>861</LINE></_DELAY_0>
<_DELAY_1><FILE>main.asm</FILE><LINE>863</LINE></_DELAY_1>
<_DELAY_2><FILE>main.asm</FILE><LINE>865</LINE></_DELAY_2>
<_TEMP_CONV_EXIT><FILE>main.asm</FILE><LINE>585</LINE></_TEMP_CONV_EXIT>
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>611</LINE></_USI_TRANSMIT_LOOP>
<BUTTON_PROCESS><FILE>main.asm</FILE><LINE>625</LINE></BUTTON_PROCESS>
<_SW_CHECK_ON_0><FILE>main.asm</FILE><LINE>627</LINE></_SW_CHECK_ON_0>
<_SW_SET_0><FILE>main.asm</FILE><LINE>631</LINE></_SW_SET_0>
<_SW_CHECK_ON_1><FILE>main.asm</FILE><LINE>651</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>960</LINE></DEBOUNCE_SW>
<_SAVE_SETTINGS><FILE>main.asm</FILE><LINE>646</LINE></_SAVE_SETTINGS>
<_SW_SET_1><FILE>main.asm</FILE><LINE>655</LINE></_SW_SET_1>
<_BUTTON_PROCESS_END><FILE>main.asm</FILE><LINE>664</LINE></_BUTTON_PROCESS_END>
<_SW_SET_FROM_1_TO_0><FILE>main.asm</FILE><LINE>660</LINE></_SW_SET_FROM_1_TO_0>
<_INTO><FILE>main.asm</FILE><LINE>681</LINE></_INTO>
<_REPROGRAM_SETTINGS_LOOP><FILE>main.asm</FILE><LINE>684</LINE></_REPROGRAM_SETTINGS_LOOP>
<_CHECK_STEP><FILE>main.asm</FILE><LINE>686</LINE></_CHECK_STEP>
<_STEP_1><FILE>main.asm</FILE><LINE>693</LINE></_STEP_1>
<_STEP_2><FILE>main.asm</FILE><LINE>727</LINE></_STEP_2>
<_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>775</LINE></_REPROGRAM_SETTINGS_END>
<_S1_CHECK_PLUS><FILE>main.asm</FILE><LINE>695</LINE></_S1_CHECK_PLUS>
<_INCREASE_HYST><FILE>main.asm</FILE><LINE>703</LINE></_INCREASE_HYST>
<_S1_CHECK_MINUS><FILE>main.asm</FILE><LINE>699</LINE></_S1_CHECK_MINUS>
<_DECREASE_HYST><FILE>main.asm</FILE><LINE>709</LINE></_DECREASE_HYST>
<_SHOW_HYST><FILE>main.asm</FILE><LINE>714</LINE></_SHOW_HYST>
<_S2_CHECK_PLUS><FILE>main.asm</FILE><LINE>729</LINE></_S2_CHECK_PLUS>
<_INCREASE_TEMP><FILE>main.asm</FILE><LINE>737</LINE></_INCREASE_TEMP>
<_S2_CHECK_MINUS><FILE>main.asm</FILE><LINE>733</LINE></_S2_CHECK_MINUS>
<_DECREASE_TEMP><FILE>main.asm</FILE><LINE>748</LINE></_DECREASE_TEMP>
<_SHOW_TEMP><FILE>main.asm</FILE><LINE>756</LINE></_SHOW_TEMP>
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>986</LINE></DELAY_LOOP_16>
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>814</LINE></OW_CHECK_PRESENCE>
<_EXIT><FILE>main.asm</FILE><LINE>820</LINE></_EXIT>
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>831</LINE></_OW_SEND_BYTE_LOOP>
<_OW_SEND_0><FILE>main.asm</FILE><LINE>835</LINE></_OW_SEND_0>
<_OW_SEND_1><FILE>main.asm</FILE><LINE>841</LINE></_OW_SEND_1>
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>846</LINE></_OW_SEND_BYTE_END>
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>862</LINE></_OW_RD_BYTE_LP>
<DIV_LOOP><FILE>main.asm</FILE><LINE>902</LINE></DIV_LOOP>
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1028</LINE></DISPLAY_SYMBOLS>
<_loop_2><FILE>main.asm</FILE><LINE>966</LINE></_loop_2>
<_loop_0><FILE>main.asm</FILE><LINE>968</LINE></_loop_0>
<_dec_0><FILE>main.asm</FILE><LINE>970</LINE></_dec_0>
<_loop_1><FILE>main.asm</FILE><LINE>973</LINE></_loop_1>
<_loop_3><FILE>main.asm</FILE><LINE>976</LINE></_loop_3>
<DELAY><FILE>main.asm</FILE><LINE>1003</LINE></DELAY>
<_DELAY_0><FILE>main.asm</FILE><LINE>1009</LINE></_DELAY_0>
<_DELAY_1><FILE>main.asm</FILE><LINE>1011</LINE></_DELAY_1>
<_DELAY_2><FILE>main.asm</FILE><LINE>1013</LINE></_DELAY_2>
</LABELS>
</ASSEMBLER_INFO>

342
main.asm
View File

@ -25,7 +25,6 @@ MCU_STATE: .BYTE 1 ; Текущее состояние
SRAM_TEMP_1: .BYTE 2 ; Хранения временного 16-бит числа в ячейке
DIGITS: .BYTE 4 ; Ячейки, где хранятся символы, для вывода на индикатор
CURRENT_DIGIT: .BYTE 1 ; Номер разряда индикатора, который сейчас горит
SW_FLAGS: .BYTE 1 ; Состояние кнопок
TEMP_L: .BYTE 1 ; Младший байт температуры
TEMP_H: .BYTE 1 ; Старший байт температуры
TEMP_F: .BYTE 1 ; Дробная часть
@ -34,8 +33,8 @@ SETTING_TEMP_L: .BYTE 1 ; Уставка температуры (млад
SETTING_HYST: .BYTE 1 ; Гистерезис: отклонение от уставки
SETTING_MODE: .BYTE 1 ; Режим работы: '1' - нагрев; '0' - 'охлаждение'
DEVICE_FAMILY_CODE: .BYTE 1 ; Должно быть 0x10 для DS18B20
SRAM_TEMP_2: .BYTE 1
SRAM_TEMP_3: .BYTE 1
PROGRAM_STEPS: .BYTE 1 ; Текущий "шаг" для настройки (0 - ничего; 1 - уставка T; 2 - гистерезис)
SW_DATA: .BYTE 1
;//</editor-fold>
@ -47,37 +46,27 @@ SRAM_TEMP_3: .BYTE 1
.ORG 0x00
rjmp RESET_vect
.ORG 0x000B
; rjmp PCINT0_vect
.ORG 0x04
reti
.ORG 0x000B
rjmp PCINT0_vect
.ORG 0x000D
rjmp TIMER0_COMPA_vect
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Прерывание: изменение состояния пина">
PCINT0_vect:
push r16
push r17
push r18
push r19
in r16, SREG
in r17, SW_PIN
; display_off
; in r17, SW_PIN
; clr r18
; ldi r18, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN)
; and r17, r18
; cp r17, r18
; breq _PCINT0_vect_end
sbic SW_PIN, SW_SET_PIN
rjmp _PCINT0_vect_end
lds r18, MCU_STATE
cpi r18, MCU_STATE_DEFAULT
breq _INTO_PROGRAM_STATE
rjmp _PCINT0_vect_end
; если нажаты две кнопки то входим в режим программирования
andi r17, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN)
brne _PCINT0_vect_end
_INTO_PROGRAM_STATE:
ldi r17, MCU_STATE_PROGRAM
@ -85,19 +74,20 @@ _INTO_PROGRAM_STATE:
_PCINT0_vect_end:
out SREG, r16
pop r19
pop r18
pop r17
pop r16
reti//</editor-fold>
reti
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Прерывание: динамическая индикация">
; **** ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ ************************************
TIMER0_COMPA_vect:
push r20
push r21
push r16
push r17
push r16
push r17
push r18
push r19
push r20
push r21
in r21, SREG
lds r20, CURRENT_DIGIT
@ -171,19 +161,22 @@ _indicate_4:
cbi PORTD, DIGIT_2_PIN
cbi PORTD, DIGIT_3_PIN
sbi PORTD, DIGIT_4_PIN
lds TEMP_REG_A, TEMP_F
lds TEMP_REG_A, DIGITS+3
rcall DISPLAY_DECODER
rcall USI_TRANSMIT
_indicate_exit:
inc r20
sts CURRENT_DIGIT, r20
out SREG, r21
pop r17
pop r16
pop r21
pop r21
pop r20
pop r19
pop r18
pop r17
pop r16
reti
;//</editor-fold>
@ -200,20 +193,23 @@ MCU_INIT:
outi r16, DDRB, (1<<USI_CLK_PIN) | (1<<USI_DO_PIN) | (1<<USI_LATCH_PIN) | (0<<SW_PLUS_PIN) | (0<<SW_MINUS_PIN) | (0<<SW_SET_PIN) | (1<<BUZZER_PIN)
outi r16, PORTB, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN) | (1<<SW_SET_PIN)
; **** ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА 0 **********************************
; **** ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА 0 (8 бит) *************************
outi r16, TCCR0A, (1<<WGM01) ; режим CTC Compare A
outi r16, TCCR0B, (1<<CS02) | (1<<CS00) ; 1024 делитель
outi r16, OCR0A, 25 ; число для сравнения. (60Hz)
; **** ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА 1 (16 бит) *************************
; outi r16, TCCR1A
; **** ПРЕРЫВАНИЕ ПО ИЗМЕНЕНИЮ СОСТОЯНИЯ ПИНОВ ******************
outi r16, GIMSK, (1<<PCIE0)
outi r16, PCMSK0, (1<<PCINT2) | (1<<PCINT3) | (1<<PCINT4) ; для кнопок
; **** ИНИЦИАЛИЗАЦИЯ USART **************************************
outi r16, UBRRL, LOW(51) ; 9600 БОД
outi r16, UBRRH, HIGH(51) ; 9600 БОД
outi r16, UCSRB, (1<<TXEN) ; Включение передачии
outi r16, UCSRC, (1<<UCSZ1) | (1<<UCSZ0) ; Асинхронный режим, 8 бит фрейм, 1 стоповый бит
outi r16, UBRRL, LOW(51) ; 9600 БОД
outi r16, UBRRH, HIGH(51) ; 9600 БОД
outi r16, UCSRB, (1<<TXEN) ; Включение передачии
outi r16, UCSRC, (1<<UCSZ1) | (1<<UCSZ0) ; Асинхронный режим, 8 бит фрейм, 1 стоповый бит
; **** ИНИЦИАЛИЗАЦИЯ ДАННЫХ В ОЗУ ******************************
clr r1
@ -241,6 +237,11 @@ MCU_INIT:
ldi r16, 0xf0
sts TEMP_F, r16
ser r16
sts SW_DATA, r16
clr REPROGRAM_STEP_r
; **** СТАРТУЕМ ************************************************
rcall RD_F_CODE ; проверяем что датчик есть на шине
@ -258,31 +259,30 @@ ERR_FAMILY_CODE:
START_PROGRAM:
rcall BEEP_SHORT
display_load 0
; sei
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Главный цикл">
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
LOOP:
; rcall DISPLAY_UPD_DIGITS
lds r16, MCU_STATE ; получаем текущее состояние МК
rcall DISPLAY_UPD_DIGITS
_STATE_DEFAULT:
cpi r16, MCU_STATE_DEFAULT
brne _STATE_PROGRAM
cbi LED_ERR_PORT, LED_ERR_PIN
rcall DISPLAY_UPD_DIGITS
lds r18, TEMP_F
sts DIGITS+3, r18
rcall TEMP_UPD ; обновление данных о температуре
outi r16, TIMSK, (1<<OCIE0A) ; вкл. индикатор
rcall TEMP_COMPARSION ; логика термостата
outi r17, TIMSK, (1<<OCIE0A) ; вкл. индикатор
rcall TEMP_SEND_UART ; отпрака данных в UART
_STATE_PROGRAM:
cpi r16, MCU_STATE_PROGRAM
brne _STATE_ERROR
cbi LED_ERR_PORT, LED_ERR_PIN
rcall DISPLAY_UPD_DIGITS
rcall SW_CHECK_PROCESS
rcall REPROGRAM_SETTINGS
_STATE_ERROR:
cpi r16, MCU_STATE_ERROR
brne LOOP
@ -299,6 +299,8 @@ _STATE_ERROR:
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: отправка данных в UART">
TEMP_SEND_UART:
push r16
push r17
; целая часть
lds r16, TEMP_L
mov r5, r16
@ -319,6 +321,15 @@ TEMP_SEND_UART:
mov r5, r16
rcall UART_WR_BYTE
clr r16
mov r5, r16
ldi r17, 12
_TEMP_SEND_UART_L:
rcall UART_WR_BYTE
dec r17
brne _TEMP_SEND_UART_L
pop r17
pop r16
ret
//</editor-fold>
@ -338,17 +349,8 @@ TEMP_COMPARSION:
push r19
push r20
push r21
;
; lds dd8u, SETTING_HYST
; ldi dv8u, 10
; rcall div8u
;
; ; определение нижнего и верхнего порого срабатывания
; lds r19, SETTING_INT
; mov r20, r19
; sub r19, dres8u ; MIN = SET - HYST_INT
; add r20, dres8u ; MAX = SET + HYST_INT
;
push r23
.DEF temp_r_l = r16
.DEF temp_r_h = r17
@ -370,8 +372,6 @@ TEMP_COMPARSION:
clr r19
add temp_r_l, r18
adc temp_r_h, r19
sts SRAM_TEMP_2, temp_r_h
sts SRAM_TEMP_3, temp_r_l
; определяем нижний и верхний пороги
lds r20, SETTING_TEMP_L
@ -429,6 +429,7 @@ _MAX_THRESHOLD:
rjmp PC+2
relay_off
_COMPARSION_EXIT:
pop r23
pop r21
pop r20
pop r19
@ -441,7 +442,7 @@ _COMPARSION_EXIT:
TEMP_UPD:
push r17
rcall TEMP_CONV
DELAY24 800000
DELAY24 751000
rcall TEMP_RD
; обновляем данные в ячейках
@ -476,7 +477,6 @@ TEMP_RD:
push r18
push r19
push r20
; cli
rcall OW_PRESENCE
sbrs OWFR, OWPRF
@ -559,7 +559,6 @@ _TEMP_RD_END:
sts TEMP_H, r18
sts TEMP_F, r19
; sei
_TEMP_RD_EXIT:
pop r20
pop r19
@ -570,7 +569,6 @@ _TEMP_RD_EXIT:
;
TEMP_CONV:
push r16
; cli
rcall OW_PRESENCE
sbrs OWFR, OWPRF
@ -584,7 +582,6 @@ TEMP_CONV:
mov OW_CMD_r, r16
rcall OW_SEND_BYTE
; sei
_TEMP_CONV_EXIT:
pop r16
ret
@ -594,6 +591,7 @@ _TEMP_CONV_EXIT:
; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР *************************
USI_TRANSMIT:
push r16
push r0
out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR.
; Enable USI Overflow Interrupt Flag (will be 0 if transfer is not compeleted)
@ -619,33 +617,183 @@ _USI_TRANSMIT_LOOP: ; Execute loop when USIOIF is 0
; This will copy byte from 74hc595 shift register into 74hc595 storage register
sbi PORTB, USI_LATCH_PIN
cbi PORTB, USI_LATCH_PIN
pop r0
pop r16
ret//</editor-fold>
ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: опрос кнопок">
SW_CHECK_PROCESS:
BUTTON_PROCESS:
push r16
rcall DEBOUNCE_SW
sbis SW_PIN, SW_PLUS_PIN
adiw DISP_NUM_L, 1
sbis SW_PIN, SW_MINUS_PIN
sbiw DISP_NUM_L, 1
_SW_CHECK_ON_0:
sbis SW_PIN, SW_SET_PIN
rjmp _INTO_DEFAULT_STATE
rjmp _SW_CHECK_PROCESS_END
rjmp _SW_SET_0
rjmp _SW_CHECK_ON_1
_SW_SET_0:
lds r16, SW_DATA
tst r16
brne _SW_SET_FROM_0_TO_1
rjmp _SW_CHECK_ON_1
_SW_SET_FROM_0_TO_1:
clr r16
sts SW_DATA, r16
rcall DEBOUNCE_SW
inc REPROGRAM_STEP_r
mov r17, REPROGRAM_STEP_r
cpi r17, 4
brge _SAVE_SETTINGS
rcall BEEP_SHORT
rjmp _SW_CHECK_ON_1
_SAVE_SETTINGS:
clr REPROGRAM_STEP_r
rcall BEEP_LONG
ldi r17, MCU_STATE_DEFAULT
sts MCU_STATE, r17
_SW_CHECK_ON_1:
sbic SW_PIN, SW_SET_PIN
rjmp _SW_SET_1
rjmp _BUTTON_PROCESS_END
_SW_SET_1:
lds r16, SW_DATA
tst r16
breq _SW_SET_FROM_1_TO_0
rjmp _BUTTON_PROCESS_END
_SW_SET_FROM_1_TO_0:
ser r16
sts SW_DATA, r16
rcall DEBOUNCE_SW
_BUTTON_PROCESS_END:
pop r16
ret
_INTO_DEFAULT_STATE:
ldi r16, MCU_STATE_DEFAULT
sts MCU_STATE, r16
_SW_CHECK_PROCESS_END:
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: перепрограммирование параметров">
REPROGRAM_SETTINGS:
push r16
push r17
push r18
push r19
push r20
mov r16, REPROGRAM_STEP_r
tst r16
breq _INTO
rjmp _REPROGRAM_SETTINGS_LOOP
_INTO:
inc REPROGRAM_STEP_r
rcall BEEP_SHORT
_REPROGRAM_SETTINGS_LOOP:
rcall BUTTON_PROCESS
_CHECK_STEP:
cpi r16, 1
breq _STEP_1
cpi r16, 2
breq _STEP_2
rjmp _REPROGRAM_SETTINGS_END
_STEP_1: ; установка и отображение гистерезиса
nop
_S1_CHECK_PLUS:
sbis SW_PIN, SW_PLUS_PIN
rjmp _INCREASE_HYST
rjmp _S1_CHECK_MINUS
_S1_CHECK_MINUS:
sbis SW_PIN, SW_MINUS_PIN
rjmp _DECREASE_HYST
rjmp _SHOW_HYST
_INCREASE_HYST:
rcall DEBOUNCE_SW
lds r17, SETTING_HYST
inc r17
sts SETTING_HYST, r17
rjmp _SHOW_HYST
_DECREASE_HYST:
rcall DEBOUNCE_SW
lds r17, SETTING_HYST
dec r17
sts SETTING_HYST, r17
_SHOW_HYST:
push dd8u
push dv8u
lds dd8u, SETTING_HYST
ldi dv8u, 10
rcall div8u
mov DISP_NUM_L, dres8u
clr DISP_NUM_H ; гистерезис 8 битный так что ноль пишем в старший байт
sts DIGITS+3, drem8u
pop dv8u
pop dd8u
rjmp _REPROGRAM_SETTINGS_END
_STEP_2:
nop
_S2_CHECK_PLUS:
sbis SW_PIN, SW_PLUS_PIN
rjmp _INCREASE_TEMP
rjmp _S2_CHECK_MINUS
_S2_CHECK_MINUS:
sbis SW_PIN, SW_MINUS_PIN
rjmp _DECREASE_TEMP
rjmp _SHOW_TEMP
_INCREASE_TEMP:
rcall DEBOUNCE_SW
lds r17, SETTING_TEMP_L
lds r18, SETTING_TEMP_H
ldi r19, 1
add r17, r19
clr r19
adc r18, r19
sts SETTING_TEMP_L, r17
sts SETTING_TEMP_H, r18
rjmp _SHOW_TEMP
_DECREASE_TEMP:
rcall DEBOUNCE_SW
lds r17, SETTING_TEMP_L
lds r18, SETTING_TEMP_H
subi r17, 1
sbci r18, 0
sts SETTING_TEMP_L, r17
sts SETTING_TEMP_H, r18
_SHOW_TEMP:
push dd16uL
push dd16uH
push dv16uL
push dv16uH
lds dd16uL, SETTING_TEMP_L
lds dd16uH, SETTING_TEMP_H
ldi dv16uL, LOW(10)
ldi dv16uH, HIGH(10)
rcall div16u
mov DISP_NUM_L, dres16uL
mov DISP_NUM_H, dres16uH
sts DIGITS+3, drem16uL
pop dv16uH
pop dv16uL
pop dd16uH
pop dd16uL
_REPROGRAM_SETTINGS_END:
pop r20
pop r19
pop r18
pop r17
pop r16
ret
//</editor-fold>
;DBG_LED_TOGGLE:
; push r18
; push r19
; in r18, PIND
; ldi r19, (1<<PD0)
; eor r18, r19
; out PORTD, r18
; pop r19
; pop r18
; ret
//<editor-fold defaultstate="collapsed" desc="Реализация интерфеса 1-Wire">
//<editor-fold defaultstate="collapsed" desc="1-Wire: оспрос присутствия">
//<editor-fold defaultstate="collapsed" desc="1-Wire: опрос присутствия">
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
OW_PRESENCE:
cli
@ -675,9 +823,9 @@ _EXIT:
//<editor-fold defaultstate="collapsed" desc="1-Wire: отправка байта">
OW_SEND_BYTE:
cli
push r16
push r17
cli
mov r16, OW_CMD_r
ldi r17, 8
_OW_SEND_BYTE_LOOP:
@ -698,17 +846,17 @@ _OW_SEND_1:
_OW_SEND_BYTE_END:
dec r17
brne _OW_SEND_BYTE_LOOP
sei
pop r17
pop r16
sei
ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="1-Wire: чтение байта">
OW_RD_BYTE:
cli
push r16
push r17
cli
clr r16
ldi r17, 8
_OW_RD_BYTE_LP:
@ -723,9 +871,9 @@ _OW_RD_BYTE_LP:
dec r17
brne _OW_RD_BYTE_LP
st X, r16
sei
pop r17
pop r16
sei
ret
//</editor-fold>
//</editor-fold>
@ -735,9 +883,9 @@ _OW_RD_BYTE_LP:
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
; путем деления этого числа несколько раз
DISPLAY_UPD_DIGITS:
cli
push r16
push r21
ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный
ldi r21, 3
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
ldi XL, LOW(DIGITS)
@ -769,7 +917,7 @@ DIV_LOOP:
dec r21 ; декрементируем счетчик цикла
brne DIV_LOOP ; делим еще раз если не 0
pop r21
sei
pop r16
ret
//</editor-fold>
@ -778,6 +926,7 @@ DIV_LOOP:
DISPLAY_DECODER:
push r16
push r17
ldi ZL, LOW(2*DISPLAY_SYMBOLS)
ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
@ -788,12 +937,13 @@ DISPLAY_DECODER:
lpm r0, Z
pop r17
pop r16
ret//</editor-fold>
ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: короткий писк">
BEEP_SHORT:
sbi BUZZER_PORT, BUZZER_PIN
rcall DELAY
DELAY24 150000
cbi BUZZER_PORT, BUZZER_PIN
ret
//</editor-fold>
@ -801,12 +951,10 @@ BEEP_SHORT:
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: длинный писк">
BEEP_LONG:
sbi BUZZER_PORT, BUZZER_PIN
rcall DELAY
rcall DELAY
rcall DELAY
rcall DELAY
DELAY24 500000
cbi BUZZER_PORT, BUZZER_PIN
ret//</editor-fold>
ret
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
DEBOUNCE_SW:
@ -884,7 +1032,9 @@ DISPLAY_SYMBOLS:
.DB 0b10011001, 0b10010010 ; 4, 5
.DB 0b10000010, 0b11111000 ; 6, 7
.DB 0b10000000, 0b10010000 ; 8, 9
.DB 0b10011100, 0b10111111 ; °, -//</editor-fold>
.DB 0b10011100, 0b10111111 ; °, -
.DB 0b11000110, 0b10001001 ; C, H
//</editor-fold>
//</editor-fold>

177
main.hex
View File

@ -1,83 +1,98 @@
:020000020000FC
:0200000073C0CB
:0200160018953B
:10001A0015C00F931F932F933F930FB7B49908C03E
:10002A0020916000203009F003C011E010936000B5
:10003A000FBF3F912F911F910F9118954F935F9387
:10004A000F931F935FB74091670045300CF403C0CC
:10005A00442740936700403081F493989498959888
:10006A000EF002C00BE002C000916500002311F0FF
:10007A00929A01C09298FED17BD1413081F4929834
:10008A00949895980091640030916500032B11F0C3
:10009A00939A01C0939800916400ECD169D14230DF
:1000AA0059F4929893989598949A00916300E2D1A2
:1000BA00002D0F77002E5CD1433041F4929893982B
:1000CA009498959A00916B00D5D152D1439540935B
:1000DA0067005FBF1F910F915F914F9118950FEDC8
:1000EA000DBF0FE701BB01EE07BB0CE108BB02E045
:1000FA0000BF05E003BF09E106BF00E20BBF0CE148
:10010A0000BD11241092670000E0009360000CE229
:10011A0000936D0001E000936C0005E000936E000F
:10012A0001E000936F0000270093690000936A00C2
:10013A0000EF00936B0053E137E84DEFC5D15CE067
:10014A0034E34DEFC1D1B2D000917000083209F406
:10015A0005C012E0109360009CD101C096D180E0E6
:10016A0090E000916000003031F4969869D18BD00C
:10017A0001E009BF39D0013019F4969861D104D150
:10018A00023079F7969AEDCFEE24FF1841E1001F6D
:10019A00111F4A9509F40895EE1CFF1CE21AF30A8E
:1001AA0020F4E20EF31E8894F2CF0894F0CFFF18E1
:1001BA0029E0001F2A9509F40895FF1CF11A18F482
:1001CA00F10E8894F6CF0894F4CF5527442760E1BE
:1001DA003695279510F4400F511F57954795379537
:1001EA0027956A95B9F708950F931F932F933F9315
:1001FA004F935F930091690010916A002AE030E002
:10020A00E4DF022F132F20916B003327020F131FF5
:10021A00109371000093720040916D0050916C0030
:10022A0060916E004F935F937727461B570BB42E4E
:10023A00A52E5F914F917727460F571FD42EC52EB3
:10024A000EF004C0009510950F5F1F4FB016A1065F
:10025A0024F40D151C054CF40FC040916F00442383
:10026A0011F4909801C0909A07C040916F004423FE
:10027A0011F4909A01C090985F914F913F912F91FC
:10028A001F910F9108951F9367D05CE034E34DEFFF
:10029A001BD15CE034E34DEF17D112D01091690005
:1002AA00812F10916A00912F1F9108950F937AD090
:1002BA0003E3802E8CD0A0E7B0E0A8D00F91089578
:1002CA000F931F932F933F934F936CD070FF3EC0B1
:1002DA000CEC802E7CD00EEB802E79D0A9E6B0E013
:1002EA0095D0AAE6B0E092D01091690020916A00F8
:1002FA002F93287F283F11F0E89409C02F91689422
:10030A001095209531E0130F30E0231F01C02F9183
:10031A002695179526951795269517952695179537
:10032A00309169000EF43195432F3F70432F330FFC
:10033A00330F330F440F340F36953695369536956D
:10034A001093690020936A0030936B004F913F919C
:10035A002F911F910F9108950F9324D070FF06C01B
:10036A000CEC802E34D004E4802E31D00F91089505
:10037A000F930FB800E40EB90BE10DB9769BFDCFD0
:10038A00C09AC0980F9108950F938AD0B29B019694
:10039A00B39B0197B49B01C003C000E000936000C7
:1003AA000F910895F894B99A33E04EEB89D0B99831
:1003BA0030E04AE885D005D033E042E381D0789432
:1003CA000895B19B716002C0B1997E7F08950F9321
:1003DA001F93F894082D18E0069508F448F0B99A86
:1003EA0030E046E76DD0B99830E042E169D008C004
:1003FA00B99A30E04AE064D0B99830E04EE760D06C
:10040A001A9551F778941F910F9108950F931F939E
:10041A00F894002718E00695B99A30E04AE050D0DF
:10042A00B99830E040E14CD0B199006830E04CE630
:10043A0047D01A9581F70C9378941F910F910895DC
:10044A00F8945F9354E0A3E6B0E080936100909340
:10045A00620000916100109162002AE030E094DEAF
:10046A00ED9200936100109362005A9591F75F91A3
:10047A00789408950F931F93ECEFF4E01127E00F9F
:10048A00F11F04901F910F910895C59A22D0C59823
:10049A000895C59A1ED01DD01CD01BD0C5980895AA
:1004AA000F931F932F932AE01FEF0FEF0A95F1F78F
:1004BA001A95D9F72A95C1F72F911F910F9108958F
:1004CA0041503040E8F70895415030405040E0F73D
:1004DA0008950F931F932F9326E00FEF1FEF1A959E
:1004EA00F1F70A95D9F72A95C1F72F911F910F9124
:0E04FA000895C0F9A4B0999282F880909CBF3A
:020000007AC0C4
:02000800189549
:0200160002C026
:10001A0018C00F931F932F933F930FB716B3212F37
:10002A002C71309171002327209371001C7019F4F0
:10003A0011E0109360000FBF3F912F911F910F9114
:10004A0018950F931F932F933F934F935F935FB727
:10005A004091670045300CF403C044274093670081
:10006A00403081F49398949895980EF002C00BE072
:10007A0002C000916500002311F0929A01C0929883
:10008A0060D29BD1413081F49298949895980091CE
:10009A00640030916500032B11F0939A01C0939884
:1000AA00009164004ED289D1423059F492989398C3
:1000BA009598949A0091630044D2002D0F77002EF0
:1000CA007CD1433041F4929893989498959A0091F0
:1000DA00660037D272D14395409367005FBF5F9144
:1000EA004F913F912F911F910F9118950FED0DBFD1
:1000FA000FE701BB01EE07BB0CE108BB02E000BF42
:10010A0005E003BF09E106BF00E20BBF0CE100BD39
:10011A0003E309B900E002B908E00AB906E003B945
:10012A0011241092670000E0009360000CE2009333
:10013A006C0001E000936B0005E000936D0001E0A4
:10014A0000936E000027009368000093690000EF97
:10015A0000936A0000E0009371006624CED00091FB
:10016A006F00083209F405C012E010936000FBD159
:10017A0001C0F2D180E090E000916000C8D1003067
:10018A0051F4969820916A0020936600A7D011E056
:10019A0019BF57D038D0013011F496981CD10230CB
:1001AA0059F7969AE9CFEE24FF1841E1001F111F73
:1001BA004A9509F40895EE1CFF1CE21AF30A20F48A
:1001CA00E20EF31E8894F2CF0894F0CFFF1829E0CC
:1001DA00001F2A9509F40895FF1CF11A18F4F10E6C
:1001EA008894F6CF0894F4CF5527442760E13695D2
:1001FA00279510F4400F511F579547953795279526
:10020A006A95B9F708950F931F9300916800502ECD
:10021A0014D000916A00502E10D000B30170502EF5
:10022A000CD004E0502E09D00027502E1CE005D037
:10023A001A95E9F71F910F9108955D9BFECF5CB85F
:10024A0008950F931F932F933F934F935F937F9339
:10025A0000916800109169002AE030E0C5DF022FA2
:10026A00132F20916A003327020F131F40916C004D
:10027A0050916B0060916D004F935F937727461BF7
:10028A00570BB42EA52E5F914F917727460F571F14
:10029A00D42EC52E0EF004C0009510950F5F1F4F87
:1002AA00B016A10624F40D151C054CF40FC040919C
:1002BA006E00442311F4909801C0909A07C04091AF
:1002CA006E00442311F4909A01C090987F915F9137
:1002DA004F913F912F911F910F9108951F9361D0D4
:1002EA0052E135E54DEB5AD112D010916800812FB9
:1002FA0010916900912F1F9108950F93BAD003E3CB
:10030A00802ECCD0AFE6B0E0E8D00F9108950F93DD
:10031A001F932F933F934F93ACD070FF3CC00CECCC
:10032A00802EBCD00EEB802EB9D0A8E6B0E0D5D096
:10033A00A9E6B0E0D2D010916800209169002F930D
:10034A00287F283F11F0E89407C02F9168941095F0
:10035A0020951F5F2F4F01C02F912695179526953F
:10036A0017952695179526951795309168000EF4DE
:10037A003195432F3F70432F330F330F330F440F01
:10038A00340F369536953695369510936800209336
:10039A00690030936A004F913F912F911F910F91FD
:1003AA0008950F9366D070FF06C00CEC802E76D0AD
:1003BA0004E4802E73D00F9108950F930F920FB813
:1003CA0000E40EB90BE10DB9769BFDCFC09AC09837
:1003DA000F900F9108950F931F932F93062D0023CB
:1003EA0009F002C06394B8D0013009F00CC00F9331
:1003FA001F9300916D001AE0E9DE802F9927F09291
:10040A0066001F910F910091710004FF01C015C091
:10041A00B49B01C02AC01091710010611093710041
:10042A00A9D06394162D143011F096D01EC06624FC
:10043A009AD010E01093600018C0B29B03C0B39B1F
:10044A000BC013C057E032E54DEFA8D020916D00E4
:10045A00239520936D0009C057E032E54DEF9ED0F9
:10046A0020916D002A9520936D002F911F910F9175
:10047A000895F894B99A33E04EEB8CD0B99830E0ED
:10048A004AE888D005D033E042E384D078940895CE
:10049A00B19B716002C0B1997E7F0895F8940F9361
:1004AA001F93082D18E0069508F448F0B99A30E031
:1004BA0046E770D0B99830E042E16CD008C0B99AEA
:1004CA0030E04AE067D0B99830E04EE763D01A9539
:1004DA0051F71F910F9178940895F8940F931F93F1
:1004EA00002718E00695B99A30E04AE053D0B99847
:1004FA0030E040E14FD0B199006830E04CE64AD094
:10050A001A9581F70C931F910F91789408950F9380
:10051A005F9353E0A3E6B0E080936100909362009A
:10052A0000916100109162002AE030E03CDEED9219
:10053A0000936100109362005A9591F75F910F91B1
:10054A0008950F931F93E0EDF5E01127E00FF11FD7
:10055A0004901F910F910895C59A53E039EA4DE727
:10056A001DD0C5980895C59A5CE034E34DEF16D0C6
:10057A00C59808950F931F932F932AE01FEF0FEF4B
:10058A000A95F1F71A95D9F72A95C1F72F911F9174
:10059A000F91089541503040E8F708954150304096
:1005AA005040E0F708950F931F932F9326E00FEF23
:1005BA001FEF1A95F1F70A95D9F72A95C1F72F91E6
:1005CA001F910F910895C0F9A4B0999282F8809072
:0405DA009CBFC68973
:00000001FF

View File

@ -1,13 +1,13 @@
#
#Sun Jun 25 21:34:52 MSK 2023
#Wed Jun 28 17:31:11 MSK 2023
default.languagetoolchain.version=2.2.7
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
default.com-microchip-mplab-mdbcore-simulator-Simulator.md5=19e4dc0f223322f74cda227c3c12c71c
conf.ids=default
default.languagetoolchain.dir=/usr/bin
host.id=2l3s-yrgx-1d
configurations-xml=6a01ab9659d148a99244ed826cfd39c3
host.id=cf4f-twrn-b
configurations-xml=85db3bcfcc45f311e22a744cb34722f8
default.com-microchip-mplab-nbide-toolchain-avrasm-AVRASMLanguageToolchain.md5=0e94da8ed93e9650ffef50929833a79f
default.com-microchip-mplab-mdbcore-snap-SnapToolImpl.md5=eaa336cefb7fc46db8b50b7b2b6e54ca
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b
user-defined-mime-resolver-xml=none
proj.dir=/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
<defaultConf>0</defaultConf>
<confs>
<conf name="default" type="2">
<platformToolSN></platformToolSN>
<platformToolSN>:=MPLABComm-USB-Microchip:=&lt;vid>03EB:=&lt;pid>2180:=&lt;rev>0100:=&lt;man>Microchip Technology Incorporated:=&lt;prod>MPLAB Snap ICD CMSIS-DAP:=&lt;sn>BUR205073320:=&lt;drv>x:=&lt;xpt>h:=end</platformToolSN>
<languageToolchainDir>/usr/bin</languageToolchainDir>
<mdbdebugger version="1">
<placeholder1>place holder 1</placeholder1>

View File

@ -3,11 +3,12 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="1"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/mpy16u.asm</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/NOTES.md</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/main.asm</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/README.md</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/macros.asm</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/README.md</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/NOTES.md</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/mpy16u.asm</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/div16u.asm</file>
<file>file:/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny2313a_thermostat.X/definitions.asm</file>
</group>
</open-files>