diff --git a/dist/default/production/attiny2313a_thermostat.X.production.hex b/dist/default/production/attiny2313a_thermostat.X.production.hex
index e00c816..ce9e02e 100644
--- a/dist/default/production/attiny2313a_thermostat.X.production.hex
+++ b/dist/default/production/attiny2313a_thermostat.X.production.hex
@@ -1,49 +1,59 @@
:020000020000FC
-:0200000049C0F5
-:10001A0000C04F935F930F935FB7409167004530DD
-:10002A000CF403C0442740936700403041F493988E
-:10003A0094989598929A009166002BD1B6D0413047
-:10004A0041F4929894989598939A0091650021D1D9
-:10005A00ACD0423041F4929893989598949A009132
-:10006A00640017D1A2D0433041F49298939894989F
-:10007A00959A009163000DD198D0439540936700FB
-:10008A005FBF0F915F914F9118950FED0DBF0EE76E
-:10009A0001BB01EC07BB0CE108BB02E000BF05E0B5
-:1000AA0003BF09E106BF01E009BF112410926700EE
-:1000BA0000E000936000002700936A0000936B0041
-:1000CA0080E090E000916A00802F90E0009160004B
-:1000DA00003089F4C4D070FD969A70FF969859D072
-:1000EA00E3D0E2D0E1D0E0D02ED010916A00812F87
-:1000FA0010916B00912F013011F4B1D062D002300F
-:10010A0029F71BE0109363001093640010936500B5
-:10011A00109366000000DACFEE24FF1841E1001FB9
-:10012A00111F4A9509F40895EE1CFF1CE21AF30AFE
-:10013A0020F4E20EF31E8894F2CF0894F0CF4150D7
-:10014A003040E8F708950F931F932F93F8943FD008
-:10015A000CEC802E4FD00EEB802E4CD0AAE6B0E0ED
-:10016A0066D0ABE6B0E063D010916A0020916B00D4
-:10017A0026951795269517952695179526951795D9
-:10018A0010936A0020936B0078942F911F910F911E
-:10019A0008950F93F8941BD00CEC802E2BD004E416
-:1001AA00802E28D078940F9108950F930FB800E409
-:1001BA000EB90BE10DB9769BFDCFC09AC0980F918D
-:1001CA00089572D0B29B0196B39B01970895B99A8C
-:1001DA0033E04EEBB4DFB99830E04AE8B0DF04D040
-:1001EA0033E042E3ACDF0895B19B716002C0B1997C
-:1001FA007E7F08950F931F93082D18E0069508F443
-:10020A0048F0B99A30E046E79ADFB99830E042E11F
-:10021A0096DF08C0B99A30E04AE091DFB99830E039
-:10022A004EE78DDF1A9551F71F910F9108950F939D
-:10023A001F93002718E00695B99A30E04AE07FDF5D
-:10024A00B99830E040E17BDFB199006830E04CE6D4
-:10025A0076DF1A9581F70C931F910F910895F89400
-:10026A005F9354E0A3E6B0E080936100909362004C
-:10027A0000916100109162002AE030E04DDFED92BA
-:10028A0000936100109362005A9591F75F917894F8
-:10029A0008950F931F93EEEEF2E01127E00FF11F7E
-:1002AA0004901F910F9108950F931F932F932AE0A3
-:1002BA001FEF0FEF0A95F1F71A95D9F72A95C1F7AB
-:1002CA002F911F910F9108950F931F930FEF1FEF17
-:1002DA001A95000000000000D9F70A95C1F71F918E
-:1002EA000F910895C0F9A4B0999282F880909CBFAA
+:0200000068C0D6
+:0200160018953B
+:10001A0015C00F931F932F933F930FB7B49908C03E
+:10002A0020916000203009F003C011E010936000B5
+:10003A000FBF3F912F911F910F9118954F935F9387
+:10004A000F935FB74091670045300CF403C0442713
+:10005A0040936700403081F49398949895980EF0F5
+:10006A0002C00BE002C000916500002311F0929AD1
+:10007A0001C0929851D1CCD0413041F492989498D1
+:10008A009598939A0091640047D1C2D0423059F4AE
+:10009A00929893989598949A009163003DD1002D77
+:1000AA000F77002EB5D0433039F4929893989498EC
+:1000BA00959A00E031D1ACD04395409367005FBF79
+:1000CA000F915F914F9118950FED0DBF0EE701BB90
+:1000DA0001EC07BB0CE108BB02E000BF05E003BF6F
+:1000EA0009E106BF01E009BF00E20BBF0CE100BD58
+:1000FA0003E309B900E002B908E10AB906E003B965
+:10010A0011241092670000E000936000002700931A
+:10011A006A0000936B0080E090E00091600000307C
+:10012A0079F4E0D070FD969A70FF969867D0FFD068
+:10013A00FED02ED010916A00812F10916B00912F62
+:10014A00013011F4CFD070D0023039F71BE0109390
+:10015A00630010936400109365001093660000001A
+:10016A00DCCFEE24FF1841E1001F111F4A9509F464
+:10017A000895EE1CFF1CE21AF30A20F4E20EF31EA5
+:10018A008894F2CF0894F0CF41503040E8F70895B0
+:10019A000F931F932F933F9355D00CEC802E67D06B
+:1001AA000EEB802E64D0AAE6B0E082D0ABE6B0E0D7
+:1001BA007FD010916A0020916B002F93287F283FEF
+:1001CA0011F0E89409C02F9168941095209531E0B8
+:1001DA00130F30E0231F01C02F91269517952695FE
+:1001EA001795269517952695179510936A002093CB
+:1001FA006B003F912F911F910F9108950F9322D079
+:10020A000CEC802E34D004E4802E31D00F91089566
+:10021A000F930FB800E40EB90BE10DB9769BFDCF31
+:10022A00C09AC0980F9108950F9381D0B29B0196FE
+:10023A00B39B0197B49B01C003C000E00093600028
+:10024A000F910895F894B99A33E04EEB9DDFB9986F
+:10025A0030E04AE899DF05D033E042E395DF78944D
+:10026A000895B19B716002C0B1997E7F08950F9382
+:10027A001F93082D18E0069508F458F0F894B99AD7
+:10028A0030E046E781DFB99830E042E17DDF7894DB
+:10029A000AC0F894B99A30E04AE076DFB99830E0BB
+:1002AA004EE772DF78941A9531F71F910F910895EE
+:1002BA000F931F93002718E0F8940695B99A30E037
+:1002CA004AE062DFB99830E040E15EDFB199006848
+:1002DA0030E04CE659DF1A9581F70C9378941F9118
+:1002EA000F910895F8945F9354E0A3E6B0E08093E9
+:1002FA0061009093620000916100109162002AE00F
+:10030A0030E02FDFED9200936100109362005A955E
+:10031A0091F75F91789408950F931F93E4E7F3E0C0
+:10032A001127E00FF11F04901F910F9108950F9369
+:10033A001F932F932AE01FEF0FEF0A95F1F71A95F3
+:10034A00D9F72A95C1F72F911F910F9108950F930D
+:10035A001F930FEF1FEF1A95000000000000D9F756
+:10036A000A95C1F71F910F910895C0F9A4B0999207
+:06037A0082F880909CBF98
:00000001FF
diff --git a/dist/default/production/attiny2313a_thermostat.X.production.lss b/dist/default/production/attiny2313a_thermostat.X.production.lss
index b9f6519..e80ecf7 100644
--- a/dist/default/production/attiny2313a_thermostat.X.production.lss
+++ b/dist/default/production/attiny2313a_thermostat.X.production.lss
@@ -1,26 +1,26 @@
-AVRASM ver. 2.2.7 main.asm Mon Jun 19 19:48:15 2023
+AVRASM ver. 2.2.7 main.asm Tue Jun 20 12:55:26 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'
main.asm(16): Including file 'macros.asm'
-main.asm(215): Including file 'div16u.asm'
+main.asm(286): Including file 'div16u.asm'
div16u.asm(22): warning: Register r16 already defined by the .DEF directive
-main.asm(215): 'div16u.asm' included form here
+main.asm(286): 'div16u.asm' included form here
div16u.asm(23): warning: Register r17 already defined by the .DEF directive
-main.asm(215): 'div16u.asm' included form here
+main.asm(286): 'div16u.asm' included form here
div16u.asm(24): warning: Register r16 already defined by the .DEF directive
-main.asm(215): 'div16u.asm' included form here
+main.asm(286): 'div16u.asm' included form here
div16u.asm(25): warning: Register r17 already defined by the .DEF directive
-main.asm(215): 'div16u.asm' included form here
+main.asm(286): 'div16u.asm' included form here
div16u.asm(27): warning: Register r19 already defined by the .DEF directive
-main.asm(215): 'div16u.asm' included form here
+main.asm(286): 'div16u.asm' included form here
div16u.asm(28): warning: Register r20 already defined by the .DEF directive
-main.asm(215): 'div16u.asm' included form here
+main.asm(286): 'div16u.asm' included form here
[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'
main.asm(16): Including file 'macros.asm'
-main.asm(215): Including file 'div16u.asm'
+main.asm(286): Including file 'div16u.asm'
;
@@ -837,138 +837,216 @@ main.asm(215): Including file 'div16u.asm'
//
.ORG 0x00
-000000 c049 rjmp RESET_vect
+000000 c068 rjmp RESET_vect
+
+ .ORG 0x000B
+ ; rjmp PCINT0_vect
+00000b 9518 reti
.ORG 0x000D
-00000d c000 rjmp TIMER0_COMPA_vect
+00000d c015 rjmp TIMER0_COMPA_vect
//
+
+ //
+ PCINT0_vect:
+00000e 930f push r16
+00000f 931f push r17
+000010 932f push r18
+000011 933f push r19
+000012 b70f in r16, SREG
+
+ ; in r17, SW_PIN
+ ; clr r18
+ ; ldi r18, (1<
-
- //
+ //
; **** ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ ************************************
TIMER0_COMPA_vect:
-00000e 934f push r20
-00000f 935f push r21
-000010 930f push r16
-000011 b75f in r21, SREG
+000023 934f push r20
+000024 935f push r21
+000025 930f push r16
+000026 b75f in r21, SREG
-000012 9140 0067 lds r20, CURRENT_DIGIT
-000014 3045 cpi r20, 5
-000015 f40c brge _CLR_CURRENT_DIGIT ; сброс активного разряда если >= 5
-000016 c003 rjmp _indicate_1
+000027 9140 0067 lds r20, CURRENT_DIGIT
+000029 3045 cpi r20, 5
+00002a f40c brge _CLR_CURRENT_DIGIT ; сброс активного разряда если >= 5
+00002b c003 rjmp _indicate_1
_CLR_CURRENT_DIGIT: ; сброс текущего активного разряда в ноль
-000017 2744 clr r20
-000018 9340 0067 sts CURRENT_DIGIT, r20
+00002c 2744 clr r20
+00002d 9340 0067 sts CURRENT_DIGIT, r20
_indicate_1:
-00001a 3040 cpi r20, 0
-00001b f441 brne _indicate_2
+00002f 3040 cpi r20, 0
+000030 f481 brne _indicate_2
-00001c 9893 cbi PORTD, DIGIT_2_PIN
-00001d 9894 cbi PORTD, DIGIT_3_PIN
-00001e 9895 cbi PORTD, DIGIT_4_PIN
-00001f 9a92 sbi PORTD, DIGIT_1_PIN
-000020 9100 0066 lds TEMP_REG_A, DIGITS+3
-000022 d12b rcall DISPLAY_DECODER
-000023 d0b6 rcall USI_TRANSMIT
+000031 9893 cbi PORTD, DIGIT_2_PIN
+000032 9894 cbi PORTD, DIGIT_3_PIN
+000033 9895 cbi PORTD, DIGIT_4_PIN
+ ; lds TEMP_REG_A, DIGITS+2
+000034 f00e brts PC+2
+000035 c002 rjmp PC+3
+000036 e00b ldi TEMP_REG_A, 11 ; // -
+000037 c002 rjmp PC+3
+000038 9100 0065 lds TEMP_REG_A, DIGITS+2
+00003a 2300 tst TEMP_REG_A
+00003b f011 breq PC+3
+00003c 9a92 sbi PORTD, DIGIT_1_PIN
+00003d c001 rjmp PC+2
+00003e 9892 cbi PORTD, DIGIT_1_PIN
+ ; lds TEMP_REG_A, DIGITS+2
+00003f d151 rcall DISPLAY_DECODER
+000040 d0cc rcall USI_TRANSMIT
_indicate_2:
-000024 3041 cpi r20, 1
-000025 f441 brne _indicate_3
+000041 3041 cpi r20, 1
+000042 f441 brne _indicate_3
-000026 9892 cbi PORTD, DIGIT_1_PIN
-000027 9894 cbi PORTD, DIGIT_3_PIN
-000028 9895 cbi PORTD, DIGIT_4_PIN
-000029 9a93 sbi PORTD, DIGIT_2_PIN
-00002a 9100 0065 lds TEMP_REG_A, DIGITS+2
-00002c d121 rcall DISPLAY_DECODER
-00002d d0ac rcall USI_TRANSMIT
+000043 9892 cbi PORTD, DIGIT_1_PIN
+000044 9894 cbi PORTD, DIGIT_3_PIN
+000045 9895 cbi PORTD, DIGIT_4_PIN
+ ; lds TEMP_REG_A, DIGITS+1
+ ; tst TEMP_REG_A
+ ; breq PC+3
+000046 9a93 sbi PORTD, DIGIT_2_PIN
+ ; rjmp PC+2
+ ; cbi PORTD, DIGIT_1_PIN
+000047 9100 0064 lds TEMP_REG_A, DIGITS+1
+000049 d147 rcall DISPLAY_DECODER
+00004a d0c2 rcall USI_TRANSMIT
_indicate_3:
-00002e 3042 cpi r20, 2
-00002f f441 brne _indicate_4
+00004b 3042 cpi r20, 2
+00004c f459 brne _indicate_4
-000030 9892 cbi PORTD, DIGIT_1_PIN
-000031 9893 cbi PORTD, DIGIT_2_PIN
-000032 9895 cbi PORTD, DIGIT_4_PIN
-000033 9a94 sbi PORTD, DIGIT_3_PIN
-000034 9100 0064 lds TEMP_REG_A, DIGITS+1
-000036 d117 rcall DISPLAY_DECODER
-000037 d0a2 rcall USI_TRANSMIT
+00004d 9892 cbi PORTD, DIGIT_1_PIN
+00004e 9893 cbi PORTD, DIGIT_2_PIN
+00004f 9895 cbi PORTD, DIGIT_4_PIN
+000050 9a94 sbi PORTD, DIGIT_3_PIN
+000051 9100 0063 lds TEMP_REG_A, DIGITS
+000053 d13d rcall DISPLAY_DECODER
+ ; зажигаем точку
+000054 2d00 mov r16, r0
+000055 770f cbr r16, (1<<7)
+000056 2e00 mov r0, r16
+000057 d0b5 rcall USI_TRANSMIT
_indicate_4:
-000038 3043 cpi r20, 3
-000039 f441 brne _indicate_exit
+000058 3043 cpi r20, 3
+000059 f439 brne _indicate_exit
-00003a 9892 cbi PORTD, DIGIT_1_PIN
-00003b 9893 cbi PORTD, DIGIT_2_PIN
-00003c 9894 cbi PORTD, DIGIT_3_PIN
-00003d 9a95 sbi PORTD, DIGIT_4_PIN
-00003e 9100 0063 lds TEMP_REG_A, DIGITS
-000040 d10d rcall DISPLAY_DECODER
-000041 d098 rcall USI_TRANSMIT
+00005a 9892 cbi PORTD, DIGIT_1_PIN
+00005b 9893 cbi PORTD, DIGIT_2_PIN
+00005c 9894 cbi PORTD, DIGIT_3_PIN
+00005d 9a95 sbi PORTD, DIGIT_4_PIN
+ ; lds TEMP_REG_A, DIGITS
+00005e e000 ldi TEMP_REG_A, 0
+00005f d131 rcall DISPLAY_DECODER
+000060 d0ac rcall USI_TRANSMIT
_indicate_exit:
-000042 9543 inc r20
-000043 9340 0067 sts CURRENT_DIGIT, r20
-000045 bf5f out SREG, r21
+000061 9543 inc r20
+000062 9340 0067 sts CURRENT_DIGIT, r20
+000064 bf5f out SREG, r21
-000046 910f pop r16
-000047 915f pop r21
-000048 914f pop r20
-000049 9518 reti
+000065 910f pop r16
+000066 915f pop r21
+000067 914f pop r20
+000068 9518 reti
;//
; **** СТАРТ ПРОГРАММЫ *******************************************
RESET_vect:
-00004a ed0f ldi TEMP_REG_A, LOW(RAMEND)
-00004b bf0d out SPL, TEMP_REG_A
+000069 ed0f ldi TEMP_REG_A, LOW(RAMEND)
+00006a bf0d out SPL, TEMP_REG_A
//
; **** ПРОЦЕСС ИНИЦИАЛИЗАЦИИ МК **********************************
MCU_INIT:
; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ *************************************
-00004c e70e
-00004d bb01 outi r16, DDRD, (1<
@@ -977,44 +1055,43 @@ main.asm(215): Including file 'div16u.asm'
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
LOOP:
; rcall DISPLAY_UPD_DIGITS
-00006b 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК
+000092 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК
_STATE_DEFAULT:
-00006d 3000 cpi r16, MCU_STATE_DEFAULT
-00006e f489 brne _STATE_PROGRAM
-00006f d0c4 rcall DISPLAY_UPD_DIGITS
-000070 fd70 sbrc OWFR, OWPRF
-000071 9a96 sbi PORTD, PD6
-000072 ff70 sbrs OWFR, OWPRF
-000073 9896 cbi PORTD, PD6
+000094 3000 cpi r16, MCU_STATE_DEFAULT
+000095 f479 brne _STATE_PROGRAM
+000096 d0e0 rcall DISPLAY_UPD_DIGITS
+000097 fd70 sbrc OWFR, OWPRF
+000098 9a96 sbi PORTD, PD6
+000099 ff70 sbrs OWFR, OWPRF
+00009a 9896 cbi PORTD, PD6
+
+00009b d067 rcall TEMP_CONV
+00009c d0ff rcall DEBOUNCE_SW
+00009d d0fe rcall DEBOUNCE_SW
+00009e d02e rcall TEMP_RD
+
+00009f 9110 006a lds r17, TEMP_L
+0000a1 2f81 mov DISP_NUM_L, r17
+0000a2 9110 006b lds r17, TEMP_H
+0000a4 2f91 mov DISP_NUM_H, r17
-000074 d059 rcall TEMP_CONV
-000075 d0e3 rcall DEBOUNCE_SW
-000076 d0e2 rcall DEBOUNCE_SW
-000077 d0e1 rcall DEBOUNCE_SW
-000078 d0e0 rcall DEBOUNCE_SW
-000079 d02e rcall TEMP_RD
-00007a 9110 006a lds r17, TEMP_L
-00007c 2f81 mov DISP_NUM_L, r17
-00007d 9110 006b lds r17, TEMP_H
-00007f 2f91 mov DISP_NUM_H, r17
-
_STATE_PROGRAM:
-000080 3001 cpi r16, MCU_STATE_PROGRAM
-000081 f411 brne _STATE_ERROR
-000082 d0b1 rcall DISPLAY_UPD_DIGITS
-000083 d062 rcall SW_CHECK_PROCESS
+0000a5 3001 cpi r16, MCU_STATE_PROGRAM
+0000a6 f411 brne _STATE_ERROR
+0000a7 d0cf rcall DISPLAY_UPD_DIGITS
+0000a8 d070 rcall SW_CHECK_PROCESS
_STATE_ERROR:
-000084 3002 cpi r16, MCU_STATE_ERROR
-000085 f729 brne LOOP
-000086 e01b ldi r17, 11
-000087 9310 0063 sts DIGITS, r17
-000089 9310 0064 sts DIGITS+1, r17
-00008b 9310 0065 sts DIGITS+2, r17
-00008d 9310 0066 sts DIGITS+3, r17
-00008f 0000 nop
+0000a9 3002 cpi r16, MCU_STATE_ERROR
+0000aa f739 brne LOOP
+0000ab e01b ldi r17, 11
+0000ac 9310 0063 sts DIGITS, r17
+0000ae 9310 0064 sts DIGITS+1, r17
+0000b0 9310 0065 sts DIGITS+2, r17
+0000b2 9310 0066 sts DIGITS+3, r17
+0000b4 0000 nop
-000090 cfda rjmp LOOP
+0000b5 cfdc rjmp LOOP
//
@@ -1052,108 +1129,129 @@ main.asm(215): Including file 'div16u.asm'
;***** Code
div16u:
-000091 24ee clr drem16uL ; clear remainder Low byte
-000092 18ff sub drem16uH,drem16uH ; clear remainder High byte and carry
-000093 e141 ldi dcnt16u,17 ; init loop counter
+0000b6 24ee clr drem16uL ; clear remainder Low byte
+0000b7 18ff sub drem16uH,drem16uH ; clear remainder High byte and carry
+0000b8 e141 ldi dcnt16u,17 ; init loop counter
d16u_1:
-000094 1f00 rol dd16uL ; shift left dividend
-000095 1f11 rol dd16uH
-000096 954a dec dcnt16u ; decrement counter
-000097 f409 brne d16u_2 ; if done
-000098 9508 ret ; return
+0000b9 1f00 rol dd16uL ; shift left dividend
+0000ba 1f11 rol dd16uH
+0000bb 954a dec dcnt16u ; decrement counter
+0000bc f409 brne d16u_2 ; if done
+0000bd 9508 ret ; return
d16u_2:
-000099 1cee rol drem16uL ; shift dividend into remainder
-00009a 1cff rol drem16uH
-00009b 1ae2 sub drem16uL,dv16uL ; remainder = remainder - divisor
-00009c 0af3 sbc drem16uH,dv16uH
-00009d f420 brcc d16u_3 ; if result negative
-00009e 0ee2 add drem16uL,dv16uL ; restore remainder
-00009f 1ef3 adc drem16uH,dv16uH
-0000a0 9488 clc ; clear carry to be shifted into result
-0000a1 cff2 rjmp d16u_1 ; else
+0000be 1cee rol drem16uL ; shift dividend into remainder
+0000bf 1cff rol drem16uH
+0000c0 1ae2 sub drem16uL,dv16uL ; remainder = remainder - divisor
+0000c1 0af3 sbc drem16uH,dv16uH
+0000c2 f420 brcc d16u_3 ; if result negative
+0000c3 0ee2 add drem16uL,dv16uL ; restore remainder
+0000c4 1ef3 adc drem16uH,dv16uH
+0000c5 9488 clc ; clear carry to be shifted into result
+0000c6 cff2 rjmp d16u_1 ; else
d16u_3:
-0000a2 9408 sec ; set carry to be shifted into result
-0000a3 cff0
+0000c7 9408 sec ; set carry to be shifted into result
+0000c8 cff0
DELAY_LOOP_16:
-0000a4 5041 subi DELAY_8_r, 1
-0000a5 4030 sbci DELAY_16_r, 0
-0000a6 f7e8 brcc DELAY_LOOP_16
-0000a7 9508 ret
+0000c9 5041 subi DELAY_8_r, 1
+0000ca 4030 sbci DELAY_16_r, 0
+0000cb f7e8 brcc DELAY_LOOP_16
+0000cc 9508 ret
//
TEMP_RD:
-0000a8 930f push r16
-0000a9 931f push r17
-0000aa 932f push r18
-0000ab 94f8 cli
+0000cd 930f push r16
+0000ce 931f push r17
+0000cf 932f push r18
+0000d0 933f push r19
+ ; cli
-0000ac d03f rcall OW_PRESENCE
-0000ad ec0c ldi r16, DS18B20_CMD_SKIPROM
-0000ae 2e80 mov OW_CMD_r, r16
-0000af d04f rcall OW_SEND_BYTE
+0000d1 d055 rcall OW_PRESENCE
+0000d2 ec0c ldi r16, DS18B20_CMD_SKIPROM
+0000d3 2e80 mov OW_CMD_r, r16
+0000d4 d067 rcall OW_SEND_BYTE
-0000b0 eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
-0000b1 2e80 mov OW_CMD_r, r16
-0000b2 d04c rcall OW_SEND_BYTE
+0000d5 eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
+0000d6 2e80 mov OW_CMD_r, r16
+0000d7 d064 rcall OW_SEND_BYTE
-0000b3 e6aa ldi XL, LOW(TEMP_L)
-0000b4 e0b0 ldi XH, HIGH(TEMP_L)
-0000b5 d066 rcall OW_RD_BYTE
+0000d8 e6aa ldi XL, LOW(TEMP_L)
+0000d9 e0b0 ldi XH, HIGH(TEMP_L)
+0000da d082 rcall OW_RD_BYTE
-0000b6 e6ab ldi XL, LOW(TEMP_H)
-0000b7 e0b0 ldi XH, HIGH(TEMP_H)
-0000b8 d063 rcall OW_RD_BYTE
+0000db e6ab ldi XL, LOW(TEMP_H)
+0000dc e0b0 ldi XH, HIGH(TEMP_H)
+0000dd d07f rcall OW_RD_BYTE
-0000b9 9110 006a lds r17, TEMP_L
-0000bb 9120 006b lds r18, TEMP_H
+0000de 9110 006a lds r17, TEMP_L
+0000e0 9120 006b lds r18, TEMP_H
-0000bd 9526 lsr r18
-0000be 9517 ror r17
-0000bf 9526 lsr r18
-0000c0 9517 ror r17
-0000c1 9526 lsr r18
-0000c2 9517 ror r17
-0000c3 9526 lsr r18
-0000c4 9517 ror r17
-
-0000c5 9310 006a sts TEMP_L, r17
-0000c7 9320 006b sts TEMP_H, r18
+0000e2 932f push r18
+0000e3 7f28 cbr r18, (1<<0) | (1<<1) | (1<<2) ; убираем ненужные биты на время (интересуют последних битов в TEMP_H)
+0000e4 3f28 cpi r18, 0xf8 ; проверяется является ли число минусовой
+0000e5 f011 breq _TEMP_RD_TO_UNSIGNED ; если да то конвертируем в беззнаковое число
+0000e6 94e8 clt
+0000e7 c009 rjmp _TEMP_RD_CONTINUE ; если нет то преобразуем значение АЦП в температуру (делим на 16)
-
-0000c9 9478 sei
-0000ca 912f pop r18
-0000cb 911f pop r17
-0000cc 910f pop r16
-0000cd 9508 ret
+ _TEMP_RD_TO_UNSIGNED:
+0000e8 912f pop r18
+0000e9 9468 set
+0000ea 9510 com r17
+0000eb 9520 com r18
+0000ec e031 ldi r19, 1
+0000ed 0f13 add r17, r19
+0000ee e030 ldi r19, 0
+0000ef 1f23 adc r18, r19
+0000f0 c001 rjmp PC+2
+
+ _TEMP_RD_CONTINUE: ; Температура = Число с АЦП / 16 (сдвиг вправо 4)
+0000f1 912f pop r18
+0000f2 9526 lsr r18
+0000f3 9517 ror r17
+0000f4 9526 lsr r18
+0000f5 9517 ror r17
+0000f6 9526 lsr r18
+0000f7 9517 ror r17
+0000f8 9526 lsr r18
+0000f9 9517 ror r17
+ _TEMP_RD_END:
+0000fa 9310 006a sts TEMP_L, r17
+0000fc 9320 006b sts TEMP_H, r18
+
+ ; sei
+0000fe 913f pop r19
+0000ff 912f pop r18
+000100 911f pop r17
+000101 910f pop r16
+000102 9508 ret
;
TEMP_CONV:
-0000ce 930f push r16
-0000cf 94f8 cli
+000103 930f push r16
+ ; cli
-0000d0 d01b rcall OW_PRESENCE
-0000d1 ec0c ldi r16, DS18B20_CMD_SKIPROM
-0000d2 2e80 mov OW_CMD_r, r16
-0000d3 d02b rcall OW_SEND_BYTE
+000104 d022 rcall OW_PRESENCE
+000105 ec0c ldi r16, DS18B20_CMD_SKIPROM
+000106 2e80 mov OW_CMD_r, r16
+000107 d034 rcall OW_SEND_BYTE
-0000d4 e404 ldi r16, DS18B20_CMD_CONVERTTEMP
-0000d5 2e80 mov OW_CMD_r, r16
-0000d6 d028 rcall OW_SEND_BYTE
+000108 e404 ldi r16, DS18B20_CMD_CONVERTTEMP
+000109 2e80 mov OW_CMD_r, r16
+00010a d031 rcall OW_SEND_BYTE
-0000d7 9478 sei
-0000d8 910f pop r16
-0000d9 9508 ret
+ ; sei
+00010b 910f pop r16
+00010c 9508 ret
//
//
; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР *************************
USI_TRANSMIT:
-0000da 930f push r16
-0000db b80f out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR.
+00010d 930f push r16
+00010e b80f out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR.
; Enable USI Overflow Interrupt Flag (will be 0 if transfer is not compeleted)
-0000dc e400 ldi TEMP_REG_A, (1< USI Clock Source Select
; USICLK <--------------> USI Clock Strobe
; USITC <--------------> USI Toggle Clock (Enable clock generation)
-0000de e10b ldi TEMP_REG_A, (1<
+000115 9ac0 sbi PORTB, USI_LATCH_PIN
+000116 98c0 cbi PORTB, USI_LATCH_PIN
+000117 910f pop r16
+000118 9508 ret//
//
SW_CHECK_PROCESS:
-0000e6 d072 rcall DEBOUNCE_SW
-0000e7 9bb2 sbis SW_PIN, SW_PLUS_PIN
-0000e8 9601 adiw DISP_NUM_L, 1
+000119 930f push r16
+00011a d081 rcall DEBOUNCE_SW
+00011b 9bb2 sbis SW_PIN, SW_PLUS_PIN
+00011c 9601 adiw DISP_NUM_L, 1
-0000e9 9bb3 sbis SW_PIN, SW_MINUS_PIN
-0000ea 9701 sbiw DISP_NUM_L, 1
-0000eb 9508 ret//
+00011d 9bb3 sbis SW_PIN, SW_MINUS_PIN
+00011e 9701 sbiw DISP_NUM_L, 1
+
+00011f 9bb4 sbis SW_PIN, SW_SET_PIN
+000120 c001 rjmp _INTO_DEFAULT_STATE
+000121 c003 rjmp _SW_CHECK_PROCESS_END
+
+ _INTO_DEFAULT_STATE:
+000122 e000 ldi r16, MCU_STATE_DEFAULT
+000123 9300 0060 sts MCU_STATE, r16
+ _SW_CHECK_PROCESS_END:
+000125 910f pop r16
+000126 9508 ret
+ //
//
//
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
OW_PRESENCE:
-0000ec 9ab9 ow_pull
-0000ed e033
-0000ee eb4e
-0000ef dfb4 DELAY16 480
-0000f0 98b9 ow_release
-0000f1 e030
-0000f2 e84a
-0000f3 dfb0 DELAY16 70
-0000f4 d004 rcall OW_CHECK_PRESENCE
-0000f5 e033
-0000f6 e342
-0000f7 dfac DELAY16 410
-0000f8 9508 ret
+000127 94f8 cli
+000128 9ab9 ow_pull
+000129 e033
+00012a eb4e
+00012b df9d DELAY16 480
+00012c 98b9 ow_release
+00012d e030
+00012e e84a
+00012f df99 DELAY16 70
+000130 d005 rcall OW_CHECK_PRESENCE
+000131 e033
+000132 e342
+000133 df95 DELAY16 410
+000134 9478 sei
+000135 9508 ret
//
//
@@ -1213,99 +1325,85 @@ main.asm(215): Including file 'div16u.asm'
; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов
;
OW_CHECK_PRESENCE:
-0000f9 9bb1 sbis OW_PIN, OW_LINE
-0000fa 6071 sbr OWFR, (1<
//
OW_SEND_BYTE:
-0000ff 930f push r16
-000100 931f push r17
-000101 2d08 mov r16, OW_CMD_r
-000102 e018 ldi r17, 8
+00013c 930f push r16
+00013d 931f push r17
+00013e 2d08 mov r16, OW_CMD_r
+00013f e018 ldi r17, 8
_OW_SEND_BYTE_LOOP:
-000103 9506 lsr r16
-000104 f408 brcc _OW_SEND_0
-000105 f048 brcs _OW_SEND_1
+000140 9506 lsr r16
+000141 f408 brcc _OW_SEND_0
+000142 f058 brcs _OW_SEND_1
_OW_SEND_0:
-000106 9ab9 ow_pull
-000107 e030
-000108 e746
-000109 df9a DELAY16 60
-00010a 98b9 ow_release
-00010b e030
-00010c e142
-00010d df96 DELAY16 10
-00010e c008 rjmp _OW_SEND_BYTE_END
+000143 94f8 cli
+000144 9ab9 ow_pull
+000145 e030
+000146 e746
+000147 df81 DELAY16 60
+000148 98b9 ow_release
+000149 e030
+00014a e142
+00014b df7d DELAY16 10
+00014c 9478 sei
+00014d c00a rjmp _OW_SEND_BYTE_END
_OW_SEND_1:
-00010f 9ab9 ow_pull
-000110 e030
-000111 e04a
-000112 df91 DELAY16 6
-000113 98b9 ow_release
-000114 e030
-000115 e74e
-000116 df8d DELAY16 64
+00014e 94f8 cli
+00014f 9ab9 ow_pull
+000150 e030
+000151 e04a
+000152 df76 DELAY16 6
+000153 98b9 ow_release
+000154 e030
+000155 e74e
+000156 df72 DELAY16 64
+000157 9478 sei
_OW_SEND_BYTE_END:
-000117 951a dec r17
-000118 f751 brne _OW_SEND_BYTE_LOOP
-000119 911f pop r17
-00011a 910f pop r16
-00011b 9508 ret
+000158 951a dec r17
+000159 f731 brne _OW_SEND_BYTE_LOOP
+00015a 911f pop r17
+00015b 910f pop r16
+00015c 9508 ret
//
//
- ;OW_RD_BYTE:
- ; push r16
- ; push r17
- ; ldi r16, 8
- ;_OW_RD_BYTE_LP:
- ; ow_pull
- ; DELAY16 6
- ; ow_release
- ; DELAY16 9
- ; lds r17, TEMP_L
- ; lsr r17
- ; sbic OW_PIN, OW_LINE
- ; sbr r17, (1<<7)
- ; sts TEMP_L, r17
- ; DELAY16 55
- ; dec r16
- ; brne _OW_RD_BYTE_LP
- ; pop r17
- ; pop r16
- ; ret
OW_RD_BYTE:
-00011c 930f push r16
-00011d 931f push r17
-00011e 2700 clr r16
-00011f e018 ldi r17, 8
+00015d 930f push r16
+00015e 931f push r17
+00015f 2700 clr r16
+000160 e018 ldi r17, 8
+000161 94f8 cli
_OW_RD_BYTE_LP:
-000120 9506 lsr r16
-000121 9ab9 ow_pull
-000122 e030
-000123 e04a
-000124 df7f DELAY16 6
-000125 98b9 ow_release
-000126 e030
-000127 e140
-000128 df7b DELAY16 9
-000129 99b1 sbic OW_PIN, OW_LINE
-00012a 6800 sbr r16, (1<<7)
-00012b e030
-00012c e64c
-00012d df76 DELAY16 55
-00012e 951a dec r17
-00012f f781 brne _OW_RD_BYTE_LP
-000130 930c st X, r16
-000131 911f pop r17
-000132 910f pop r16
-000133 9508 ret
+000162 9506 lsr r16
+000163 9ab9 ow_pull
+000164 e030
+000165 e04a
+000166 df62 DELAY16 6
+000167 98b9 ow_release
+000168 e030
+000169 e140
+00016a df5e DELAY16 9
+00016b 99b1 sbic OW_PIN, OW_LINE
+00016c 6800 sbr r16, (1<<7)
+00016d e030
+00016e e64c
+00016f df59 DELAY16 55
+000170 951a dec r17
+000171 f781 brne _OW_RD_BYTE_LP
+000172 930c st X, r16
+000173 9478 sei
+000174 911f pop r17
+000175 910f pop r16
+000176 9508 ret
//
@@ -1317,122 +1415,122 @@ main.asm(215): Including file 'div16u.asm'
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
; путем деления этого числа несколько раз
DISPLAY_UPD_DIGITS:
-000134 94f8 cli
-000135 935f push r21
-000136 e054 ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный
+000177 94f8 cli
+000178 935f push r21
+000179 e054 ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
-000137 e6a3 ldi XL, LOW(DIGITS)
-000138 e0b0 ldi XH, HIGH(DIGITS)
+00017a e6a3 ldi XL, LOW(DIGITS)
+00017b e0b0 ldi XH, HIGH(DIGITS)
.equ dividend = SRAM_TEMP_1 ; число которе будем делить
.equ divisor = 10 ; на что делим
; загружаем число которое хотим поделить в адрес SRAM делимого
-000139 9380 0061 sts dividend, DISP_NUM_L
-00013b 9390 0062 sts dividend+1, DISP_NUM_H
+00017c 9380 0061 sts dividend, DISP_NUM_L
+00017e 9390 0062 sts dividend+1, DISP_NUM_H
; четыре раза производим деление для получения остатков
DIV_LOOP:
; заполняем нужные регистры
-00013d 9100 0061 lds dd16uL, dividend
-00013f 9110 0062 lds dd16uH, dividend+1
-000141 e02a ldi dv16uL, LOW(divisor)
-000142 e030 ldi dv16uH, HIGH(divisor)
+000180 9100 0061 lds dd16uL, dividend
+000182 9110 0062 lds dd16uH, dividend+1
+000184 e02a ldi dv16uL, LOW(divisor)
+000185 e030 ldi dv16uH, HIGH(divisor)
-000143 df4d rcall div16u ; делим
+000186 df2f rcall div16u ; делим
-000144 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
+000187 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
; обновляем делимое
-000145 9300 0061 sts dividend, dres16uL
-000147 9310 0062 sts dividend+1, dres16uH
+000188 9300 0061 sts dividend, dres16uL
+00018a 9310 0062 sts dividend+1, dres16uH
-000149 955a dec r21 ; декрементируем счетчик цикла
-00014a f791 brne DIV_LOOP ; делим еще раз если не 0
-00014b 915f pop r21
-00014c 9478 sei
-00014d 9508 ret
+00018c 955a dec r21 ; декрементируем счетчик цикла
+00018d f791 brne DIV_LOOP ; делим еще раз если не 0
+00018e 915f pop r21
+00018f 9478 sei
+000190 9508 ret
//
//
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
DISPLAY_DECODER:
-00014e 930f push r16
-00014f 931f push r17
-000150 eeee ldi ZL, LOW(2*DISPLAY_SYMBOLS)
-000151 e0f2 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
+000191 930f push r16
+000192 931f push r17
+000193 e7e4 ldi ZL, LOW(2*DISPLAY_SYMBOLS)
+000194 e0f3 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
-000152 2711 clr TEMP_REG_B
-000153 0fe0 add ZL, TEMP_REG_A
-000154 1ff1 adc ZH, TEMP_REG_B
+000195 2711 clr TEMP_REG_B
+000196 0fe0 add ZL, TEMP_REG_A
+000197 1ff1 adc ZH, TEMP_REG_B
-000155 9004 lpm r0, Z
-000156 911f pop r17
-000157 910f pop r16
-000158 9508 ret//
+000198 9004 lpm r0, Z
+000199 911f pop r17
+00019a 910f pop r16
+00019b 9508 ret//
//
DEBOUNCE_SW:
-000159 930f push r16
-00015a 931f push r17
-00015b 932f push r18
+00019c 930f push r16
+00019d 931f push r17
+00019e 932f push r18
-00015c e02a ldi r18, 10
+00019f e02a ldi r18, 10
_loop_2:
-00015d ef1f ldi r17, 255
+0001a0 ef1f ldi r17, 255
_loop_0:
-00015e ef0f ldi r16, 255
+0001a1 ef0f ldi r16, 255
_dec_0:
-00015f 950a dec r16
-000160 f7f1 brne _dec_0
+0001a2 950a dec r16
+0001a3 f7f1 brne _dec_0
_loop_1:
-000161 951a dec r17
-000162 f7d9 brne _loop_0
+0001a4 951a dec r17
+0001a5 f7d9 brne _loop_0
_loop_3:
-000163 952a dec r18
-000164 f7c1 brne _loop_2
+0001a6 952a dec r18
+0001a7 f7c1 brne _loop_2
-000165 912f pop r18
-000166 911f pop r17
-000167 910f pop r16
-000168 9508 ret//
+0001a8 912f pop r18
+0001a9 911f pop r17
+0001aa 910f pop r16
+0001ab 9508 ret//
//
DELAY:
-000169 930f push r16
-00016a 931f push r17
+0001ac 930f push r16
+0001ad 931f push r17
-00016b ef0f ldi r16, 255
+0001ae ef0f ldi r16, 255
_DELAY_1:
-00016c ef1f ldi r17, 255
+0001af ef1f ldi r17, 255
_DELAY_2:
-00016d 951a dec r17
-00016e 0000 nop
-00016f 0000 nop
-000170 0000 nop
-000171 f7d9 brne _DELAY_2
+0001b0 951a dec r17
+0001b1 0000 nop
+0001b2 0000 nop
+0001b3 0000 nop
+0001b4 f7d9 brne _DELAY_2
-000172 950a dec r16
-000173 f7c1 brne _DELAY_1
+0001b5 950a dec r16
+0001b6 f7c1 brne _DELAY_1
-000174 911f pop r17
-000175 910f pop r16
-000176 9508 ret //
+0001b7 911f pop r17
+0001b8 910f pop r16
+0001b9 9508 ret //
//
DISPLAY_SYMBOLS:
; HGFEDCBA HGFEDCBA
-000177 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
-000178 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
-000179 9299 .DB 0b10011001, 0b10010010 ; 4, 5
-00017a f882 .DB 0b10000010, 0b11111000 ; 6, 7
-00017b 9080 .DB 0b10000000, 0b10010000 ; 8, 9
-00017c bf9c .DB 0b10011100, 0b10111111 ; °, -//
+0001ba f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
+0001bb b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
+0001bc 9299 .DB 0b10011001, 0b10010010 ; 4, 5
+0001bd f882 .DB 0b10000010, 0b11111000 ; 6, 7
+0001be 9080 .DB 0b10000000, 0b10010000 ; 8, 9
+0001bf bf9c .DB 0b10011100, 0b10111111 ; °, -//
//
@@ -1458,38 +1556,38 @@ counted separately from r26..r31 here.
.dseg memory usage only counts static data declared with .byte
"ATtiny2313A" register use summary:
-x : 2 y : 0 z : 1 r0 : 2 r1 : 2 r2 : 0 r3 : 0 r4 : 0
+x : 2 y : 0 z : 1 r0 : 4 r1 : 2 r2 : 0 r3 : 0 r4 : 0
r5 : 0 r6 : 0 r7 : 0 r8 : 5 r9 : 0 r10: 0 r11: 0 r12: 0
-r13: 0 r14: 5 r15: 5 r16: 75 r17: 40 r18: 15 r19: 14 r20: 25
-r21: 8 r22: 0 r23: 4 r24: 6 r25: 4 r26: 3 r27: 3 r28: 0
+r13: 0 r14: 5 r15: 5 r16: 98 r17: 46 r18: 26 r19: 22 r20: 25
+r21: 8 r22: 0 r23: 4 r24: 5 r25: 3 r26: 3 r27: 3 r28: 0
r29: 0 r30: 2 r31: 2
Registers used: 20 out of 35 (57.1%)
"ATtiny2313A" instruction use summary:
-.lds : 0 .sts : 0 adc : 2 add : 2 adiw : 1 and : 0
+.lds : 0 .sts : 0 adc : 3 add : 3 adiw : 1 and : 0
andi : 0 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
-brcc : 3 brcs : 1 break : 0 breq : 0 brge : 1 brhc : 0
+brcc : 3 brcs : 1 break : 0 breq : 3 brge : 1 brhc : 0
brhs : 0 brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0
-brne : 16 brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0
-brvs : 0 bset : 0 bst : 0 cbi : 18 cbr : 1 clc : 1
-clh : 0 cli : 3 cln : 0 clr : 6 cls : 0 clt : 0
-clv : 0 clz : 0 com : 0 cp : 0 cpc : 0 cpi : 8
-cpse : 0 dec : 9 eor : 0 icall : 0 ijmp : 0 in : 1
-inc : 1 ld : 0 ldd : 0 ldi : 58 lds : 13 lpm : 2
-lsl : 0 lsr : 6 mov : 8 movw : 0 neg : 0 nop : 4
-or : 0 ori : 0 out : 12 pop : 20 push : 20 rcall : 38
-ret : 14 reti : 1 rjmp : 9 rol : 4 ror : 4 sbc : 1
-sbci : 1 sbi : 10 sbic : 2 sbis : 4 sbiw : 1 sbr : 2
-sbrc : 1 sbrs : 1 sec : 1 seh : 0 sei : 3 sen : 0
-ser : 0 ses : 0 set : 0 sev : 0 sez : 0 sleep : 0
-spm : 0 st : 2 std : 0 sts : 16 sub : 2 subi : 1
-swap : 0 tst : 0 wdr : 0
-Instructions used: 46 out of 105 (43.8%)
+brne : 16 brpl : 0 brsh : 0 brtc : 0 brts : 1 brvc : 0
+brvs : 0 bset : 0 bst : 0 cbi : 19 cbr : 3 clc : 1
+clh : 0 cli : 5 cln : 0 clr : 6 cls : 0 clt : 1
+clv : 0 clz : 0 com : 2 cp : 0 cpc : 0 cpi : 10
+cpse : 0 dec : 9 eor : 0 icall : 0 ijmp : 0 in : 2
+inc : 1 ld : 0 ldd : 0 ldi : 69 lds : 12 lpm : 2
+lsl : 0 lsr : 6 mov : 9 movw : 0 neg : 0 nop : 4
+or : 0 ori : 0 out : 19 pop : 28 push : 27 rcall : 36
+ret : 14 reti : 3 rjmp : 18 rol : 4 ror : 4 sbc : 1
+sbci : 1 sbi : 10 sbic : 3 sbis : 5 sbiw : 1 sbr : 2
+sbrc : 1 sbrs : 1 sec : 1 seh : 0 sei : 5 sen : 0
+ser : 0 ses : 0 set : 1 sev : 0 sez : 0 sleep : 0
+spm : 0 st : 2 std : 0 sts : 18 sub : 2 subi : 1
+swap : 0 tst : 1 wdr : 0
+Instructions used: 52 out of 105 (49.5%)
"ATtiny2313A" memory use summary [bytes]:
Segment Begin End Code Data Used Size Use%
---------------------------------------------------------------
-[.cseg] 0x000000 0x0002fa 726 12 738 2048 36.0%
+[.cseg] 0x000000 0x000380 862 12 874 2048 42.7%
[.dseg] 0x000060 0x00006c 0 12 12 128 9.4%
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
diff --git a/dist/default/production/attiny2313a_thermostat.X.production.map b/dist/default/production/attiny2313a_thermostat.X.production.map
index 013e25a..f98c689 100644
--- a/dist/default/production/attiny2313a_thermostat.X.production.map
+++ b/dist/default/production/attiny2313a_thermostat.X.production.map
@@ -1,5 +1,5 @@
-AVRASM ver. 2.2.7 main.asm Mon Jun 19 19:48:15 2023
+AVRASM ver. 2.2.7 main.asm Tue Jun 20 12:55:26 2023
EQU SIGNATURE_000 0000001e
@@ -529,26 +529,30 @@ DSEG SW_FLAGS 00000068
DSEG HYSTERESIS 00000069
DSEG TEMP_L 0000006a
DSEG TEMP_H 0000006b
-CSEG RESET_vect 0000004a
-CSEG TIMER0_COMPA_vect 0000000e
-CSEG _CLR_CURRENT_DIGIT 00000017
-CSEG _indicate_1 0000001a
-CSEG _indicate_2 00000024
-CSEG DISPLAY_DECODER 0000014e
-CSEG USI_TRANSMIT 000000da
-CSEG _indicate_3 0000002e
-CSEG _indicate_4 00000038
-CSEG _indicate_exit 00000042
-CSEG MCU_INIT 0000004c
-CSEG LOOP 0000006b
-CSEG _STATE_DEFAULT 0000006d
-CSEG _STATE_PROGRAM 00000080
-CSEG DISPLAY_UPD_DIGITS 00000134
-CSEG TEMP_CONV 000000ce
-CSEG DEBOUNCE_SW 00000159
-CSEG TEMP_RD 000000a8
-CSEG _STATE_ERROR 00000084
-CSEG SW_CHECK_PROCESS 000000e6
+CSEG RESET_vect 00000069
+CSEG TIMER0_COMPA_vect 00000023
+CSEG PCINT0_vect 0000000e
+CSEG _PCINT0_vect_end 0000001d
+CSEG _INTO_PROGRAM_STATE 0000001a
+CSEG _CLR_CURRENT_DIGIT 0000002c
+CSEG _indicate_1 0000002f
+CSEG _indicate_2 00000041
+CSEG DISPLAY_DECODER 00000191
+CSEG USI_TRANSMIT 0000010d
+CSEG _indicate_3 0000004b
+CSEG _indicate_4 00000058
+CSEG _indicate_exit 00000061
+CSEG MCU_INIT 0000006b
+CSEG continue 00000085
+CSEG LOOP 00000092
+CSEG _STATE_DEFAULT 00000094
+CSEG _STATE_PROGRAM 000000a5
+CSEG DISPLAY_UPD_DIGITS 00000177
+CSEG TEMP_CONV 00000103
+CSEG DEBOUNCE_SW 0000019c
+CSEG TEMP_RD 000000cd
+CSEG _STATE_ERROR 000000a9
+CSEG SW_CHECK_PROCESS 00000119
DEF drem16uL r14
DEF drem16uH r15
DEF dres16uL r16
@@ -558,31 +562,36 @@ DEF dd16uH r17
DEF dv16uL r18
DEF dv16uH r19
DEF dcnt16u r20
-CSEG div16u 00000091
-CSEG d16u_1 00000094
-CSEG d16u_2 00000099
-CSEG d16u_3 000000a2
-CSEG DELAY_LOOP_16 000000a4
-CSEG OW_PRESENCE 000000ec
-CSEG OW_SEND_BYTE 000000ff
-CSEG OW_RD_BYTE 0000011c
-CSEG _USI_TRANSMIT_LOOP 000000df
-CSEG OW_CHECK_PRESENCE 000000f9
-CSEG _EXIT 000000fe
-CSEG _OW_SEND_BYTE_LOOP 00000103
-CSEG _OW_SEND_0 00000106
-CSEG _OW_SEND_1 0000010f
-CSEG _OW_SEND_BYTE_END 00000117
-CSEG _OW_RD_BYTE_LP 00000120
+CSEG div16u 000000b6
+CSEG d16u_1 000000b9
+CSEG d16u_2 000000be
+CSEG d16u_3 000000c7
+CSEG DELAY_LOOP_16 000000c9
+CSEG OW_PRESENCE 00000127
+CSEG OW_SEND_BYTE 0000013c
+CSEG OW_RD_BYTE 0000015d
+CSEG _TEMP_RD_TO_UNSIGNED 000000e8
+CSEG _TEMP_RD_CONTINUE 000000f1
+CSEG _TEMP_RD_END 000000fa
+CSEG _USI_TRANSMIT_LOOP 00000112
+CSEG _INTO_DEFAULT_STATE 00000122
+CSEG _SW_CHECK_PROCESS_END 00000125
+CSEG OW_CHECK_PRESENCE 00000136
+CSEG _EXIT 0000013b
+CSEG _OW_SEND_BYTE_LOOP 00000140
+CSEG _OW_SEND_0 00000143
+CSEG _OW_SEND_1 0000014e
+CSEG _OW_SEND_BYTE_END 00000158
+CSEG _OW_RD_BYTE_LP 00000162
EQU dividend 00000061
EQU divisor 0000000a
-CSEG DIV_LOOP 0000013d
-CSEG DISPLAY_SYMBOLS 00000177
-CSEG _loop_2 0000015d
-CSEG _loop_0 0000015e
-CSEG _dec_0 0000015f
-CSEG _loop_1 00000161
-CSEG _loop_3 00000163
-CSEG DELAY 00000169
-CSEG _DELAY_1 0000016c
-CSEG _DELAY_2 0000016d
+CSEG DIV_LOOP 00000180
+CSEG DISPLAY_SYMBOLS 000001ba
+CSEG _loop_2 000001a0
+CSEG _loop_0 000001a1
+CSEG _dec_0 000001a2
+CSEG _loop_1 000001a4
+CSEG _loop_3 000001a6
+CSEG DELAY 000001ac
+CSEG _DELAY_1 000001af
+CSEG _DELAY_2 000001b0
diff --git a/dist/default/production/attiny2313a_thermostat.X.production.obj b/dist/default/production/attiny2313a_thermostat.X.production.obj
index 9c2c5dd..813160c 100644
Binary files a/dist/default/production/attiny2313a_thermostat.X.production.obj and b/dist/default/production/attiny2313a_thermostat.X.production.obj differ
diff --git a/dist/default/production/attiny2313a_thermostat.X.production.tmp b/dist/default/production/attiny2313a_thermostat.X.production.tmp
index 9b0e9cc..aa51413 100644
--- a/dist/default/production/attiny2313a_thermostat.X.production.tmp
+++ b/dist/default/production/attiny2313a_thermostat.X.production.tmp
@@ -32,51 +32,60 @@
main.asm29
main.asm30
main.asm31
- main.asm125
- main.asm50
- <_CLR_CURRENT_DIGIT>main.asm61
- <_indicate_1>main.asm65
- <_indicate_2>main.asm77
- main.asm481
- main.asm290
- <_indicate_3>main.asm89
- <_indicate_4>main.asm101
- <_indicate_exit>main.asm113
- main.asm131
- main.asm171
- <_STATE_DEFAULT>main.asm175
- <_STATE_PROGRAM>main.asm195
- main.asm439
- main.asm269
- main.asm498
- main.asm224
- <_STATE_ERROR>main.asm200
- main.asm322
+ main.asm182
+ main.asm87
+ main.asm52
+ <_PCINT0_vect_end>main.asm77
+ <_INTO_PROGRAM_STATE>main.asm73
+ <_CLR_CURRENT_DIGIT>main.asm98
+ <_indicate_1>main.asm102
+ <_indicate_2>main.asm124
+ main.asm573
+ main.asm382
+ <_indicate_3>main.asm141
+ <_indicate_4>main.asm157
+ <_indicate_exit>main.asm170
+ main.asm188
+ main.asm224
+ main.asm243
+ <_STATE_DEFAULT>main.asm247
+ <_STATE_PROGRAM>main.asm266
+ main.asm531
+ main.asm361
+ main.asm590
+ main.asm295
+ <_STATE_ERROR>main.asm271
+ main.asm414
div16u.asm32
div16u.asm36
div16u.asm42
div16u.asm52
- main.asm217
- main.asm335
- main.asm360
- main.asm409
- <_USI_TRANSMIT_LOOP>main.asm308
- main.asm349
- <_EXIT>main.asm355
- <_OW_SEND_BYTE_LOOP>main.asm365
- <_OW_SEND_0>main.asm369
- <_OW_SEND_1>main.asm375
- <_OW_SEND_BYTE_END>main.asm380
- <_OW_RD_BYTE_LP>main.asm414
- main.asm456
- main.asm548
- <_loop_2>main.asm504
- <_loop_0>main.asm506
- <_dec_0>main.asm508
- <_loop_1>main.asm511
- <_loop_3>main.asm514
- main.asm525
- <_DELAY_1>main.asm530
- <_DELAY_2>main.asm532
+ main.asm288
+ main.asm439
+ main.asm466
+ main.asm499
+ <_TEMP_RD_TO_UNSIGNED>main.asm329
+ <_TEMP_RD_CONTINUE>main.asm340
+ <_TEMP_RD_END>main.asm350
+ <_USI_TRANSMIT_LOOP>main.asm400
+ <_INTO_DEFAULT_STATE>main.asm427
+ <_SW_CHECK_PROCESS_END>main.asm430
+ main.asm455
+ <_EXIT>main.asm461
+ <_OW_SEND_BYTE_LOOP>main.asm471
+ <_OW_SEND_0>main.asm475
+ <_OW_SEND_1>main.asm483
+ <_OW_SEND_BYTE_END>main.asm490
+ <_OW_RD_BYTE_LP>main.asm505
+ main.asm548
+ main.asm640
+ <_loop_2>main.asm596
+ <_loop_0>main.asm598
+ <_dec_0>main.asm600
+ <_loop_1>main.asm603
+ <_loop_3>main.asm606
+ main.asm617
+ <_DELAY_1>main.asm622
+ <_DELAY_2>main.asm624
diff --git a/main.asm b/main.asm
index aa56dca..d24a05a 100644
--- a/main.asm
+++ b/main.asm
@@ -39,13 +39,50 @@ TEMP_H: .BYTE 1
//
.ORG 0x00
rjmp RESET_vect
+
+.ORG 0x000B
+; rjmp PCINT0_vect
+ reti
.ORG 0x000D
rjmp TIMER0_COMPA_vect
//
+
+//
+PCINT0_vect:
+ push r16
+ push r17
+ push r18
+ push r19
+ in r16, SREG
+
+; in r17, SW_PIN
+; clr r18
+; ldi r18, (1<
-
-//
+//
; **** ДИНАМИЧЕСКАЯ ИНДИКАЦИЯ ************************************
TIMER0_COMPA_vect:
push r20
@@ -69,8 +106,18 @@ _indicate_1:
cbi PORTD, DIGIT_2_PIN
cbi PORTD, DIGIT_3_PIN
cbi PORTD, DIGIT_4_PIN
+; lds TEMP_REG_A, DIGITS+2
+ brts PC+2
+ rjmp PC+3
+ ldi TEMP_REG_A, 11 ; // -
+ rjmp PC+3
+ lds TEMP_REG_A, DIGITS+2
+ tst TEMP_REG_A
+ breq PC+3
sbi PORTD, DIGIT_1_PIN
- lds TEMP_REG_A, DIGITS+3
+ rjmp PC+2
+ cbi PORTD, DIGIT_1_PIN
+; lds TEMP_REG_A, DIGITS+2
rcall DISPLAY_DECODER
rcall USI_TRANSMIT
@@ -81,8 +128,13 @@ _indicate_2:
cbi PORTD, DIGIT_1_PIN
cbi PORTD, DIGIT_3_PIN
cbi PORTD, DIGIT_4_PIN
+; lds TEMP_REG_A, DIGITS+1
+; tst TEMP_REG_A
+; breq PC+3
sbi PORTD, DIGIT_2_PIN
- lds TEMP_REG_A, DIGITS+2
+; rjmp PC+2
+; cbi PORTD, DIGIT_1_PIN
+ lds TEMP_REG_A, DIGITS+1
rcall DISPLAY_DECODER
rcall USI_TRANSMIT
@@ -94,8 +146,12 @@ _indicate_3:
cbi PORTD, DIGIT_2_PIN
cbi PORTD, DIGIT_4_PIN
sbi PORTD, DIGIT_3_PIN
- lds TEMP_REG_A, DIGITS+1
+ lds TEMP_REG_A, DIGITS
rcall DISPLAY_DECODER
+ ; зажигаем точку
+ mov r16, r0
+ cbr r16, (1<<7)
+ mov r0, r16
rcall USI_TRANSMIT
_indicate_4:
@@ -106,7 +162,8 @@ _indicate_4:
cbi PORTD, DIGIT_2_PIN
cbi PORTD, DIGIT_3_PIN
sbi PORTD, DIGIT_4_PIN
- lds TEMP_REG_A, DIGITS
+; lds TEMP_REG_A, DIGITS
+ ldi TEMP_REG_A, 0
rcall DISPLAY_DECODER
rcall USI_TRANSMIT
@@ -139,13 +196,32 @@ MCU_INIT:
outi r16, TCCR0B, (1<
@@ -184,14 +256,13 @@ _STATE_DEFAULT:
rcall TEMP_CONV
rcall DEBOUNCE_SW
rcall DEBOUNCE_SW
- rcall DEBOUNCE_SW
- rcall DEBOUNCE_SW
rcall TEMP_RD
+
lds r17, TEMP_L
mov DISP_NUM_L, r17
lds r17, TEMP_H
mov DISP_NUM_H, r17
-
+
_STATE_PROGRAM:
cpi r16, MCU_STATE_PROGRAM
brne _STATE_ERROR
@@ -225,7 +296,8 @@ TEMP_RD:
push r16
push r17
push r18
- cli
+ push r19
+; cli
rcall OW_PRESENCE
ldi r16, DS18B20_CMD_SKIPROM
@@ -247,6 +319,26 @@ TEMP_RD:
lds r17, TEMP_L
lds r18, TEMP_H
+ push r18
+ cbr r18, (1<<0) | (1<<1) | (1<<2) ; убираем ненужные биты на время (интересуют последних битов в TEMP_H)
+ cpi r18, 0xf8 ; проверяется является ли число минусовой
+ breq _TEMP_RD_TO_UNSIGNED ; если да то конвертируем в беззнаковое число
+ clt
+ rjmp _TEMP_RD_CONTINUE ; если нет то преобразуем значение АЦП в температуру (делим на 16)
+
+_TEMP_RD_TO_UNSIGNED:
+ pop r18
+ set
+ com r17
+ com r18
+ ldi r19, 1
+ add r17, r19
+ ldi r19, 0
+ adc r18, r19
+ rjmp PC+2
+
+_TEMP_RD_CONTINUE: ; Температура = Число с АЦП / 16 (сдвиг вправо 4)
+ pop r18
lsr r18
ror r17
lsr r18
@@ -255,12 +347,12 @@ TEMP_RD:
ror r17
lsr r18
ror r17
-
+_TEMP_RD_END:
sts TEMP_L, r17
sts TEMP_H, r18
-
- sei
+; sei
+ pop r19
pop r18
pop r17
pop r16
@@ -268,7 +360,7 @@ TEMP_RD:
;
TEMP_CONV:
push r16
- cli
+; cli
rcall OW_PRESENCE
ldi r16, DS18B20_CMD_SKIPROM
@@ -279,7 +371,7 @@ TEMP_CONV:
mov OW_CMD_r, r16
rcall OW_SEND_BYTE
- sei
+; sei
pop r16
ret
//
@@ -320,25 +412,39 @@ _USI_TRANSMIT_LOOP: ; Execute loop when USIOIF is 0
//
SW_CHECK_PROCESS:
- rcall DEBOUNCE_SW
- sbis SW_PIN, SW_PLUS_PIN
- adiw DISP_NUM_L, 1
+ 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
- ret//
+ sbis SW_PIN, SW_MINUS_PIN
+ sbiw DISP_NUM_L, 1
+
+ sbis SW_PIN, SW_SET_PIN
+ rjmp _INTO_DEFAULT_STATE
+ rjmp _SW_CHECK_PROCESS_END
+
+_INTO_DEFAULT_STATE:
+ ldi r16, MCU_STATE_DEFAULT
+ sts MCU_STATE, r16
+_SW_CHECK_PROCESS_END:
+ pop r16
+ ret
+//
//
//
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
OW_PRESENCE:
+ cli
ow_pull
DELAY16 480
ow_release
DELAY16 70
rcall OW_CHECK_PRESENCE
DELAY16 410
+ sei
ret
//
@@ -367,16 +473,20 @@ _OW_SEND_BYTE_LOOP:
brcc _OW_SEND_0
brcs _OW_SEND_1
_OW_SEND_0:
+ cli
ow_pull
DELAY16 60
ow_release
DELAY16 10
+ sei
rjmp _OW_SEND_BYTE_END
_OW_SEND_1:
+ cli
ow_pull
DELAY16 6
ow_release
DELAY16 64
+ sei
_OW_SEND_BYTE_END:
dec r17
brne _OW_SEND_BYTE_LOOP
@@ -391,6 +501,7 @@ OW_RD_BYTE:
push r17
clr r16
ldi r17, 8
+ cli
_OW_RD_BYTE_LP:
lsr r16
ow_pull
@@ -403,6 +514,7 @@ _OW_RD_BYTE_LP:
dec r17
brne _OW_RD_BYTE_LP
st X, r16
+ sei
pop r17
pop r16
ret
diff --git a/main.hex b/main.hex
index bb289c9..320f606 100644
--- a/main.hex
+++ b/main.hex
@@ -1,47 +1,59 @@
:020000020000FC
-:0200000049C0F5
-:10001A0000C04F935F930F935FB7409167004530DD
-:10002A000CF403C0442740936700403041F493988E
-:10003A0094989598929A0091660015D19FD0413074
-:10004A0041F4929894989598939A009165000BD1EF
-:10005A0095D0423041F4929893989598949A009149
-:10006A00640001D18BD0433041F4929893989498CC
-:10007A00959A00916300F7D081D043954093670029
-:10008A005FBF0F915F914F9118950FED0DBF0EE76E
-:10009A0001BB01EC07BB0CE108BB02E000BF05E0B5
-:1000AA0003BF09E106BF01E009BF112410926700EE
-:1000BA0000E000936000002700936A0080E090E06F
-:1000CA0051D0DCD0DBD0DAD0D9D03FD000916A0051
-:1000DA00802F90E000916000003079F4AAD070FD82
-:1000EA00969A70FF96983ED0C9D0C8D0C7D0C6D0CD
-:1000FA002CD010916A00812F90E0013011F499D030
-:10010A0049D0023039F71BE0109363001093640062
-:10011A0010936500109366000000DCCFEE24FF18F0
-:10012A0041E1001F111F4A9509F40895EE1CFF1CB6
-:10013A00E21AF30A20F4E20EF31E8894F2CF08942E
-:10014A00F0CF41503040E8F708950F93F89428D043
-:10015A000CEC802E38D00EEB802E35D050D078940F
-:10016A000F9108950F93F8941BD00CEC802E2BD08E
-:10017A0004E4802E28D078940F9108950F930FB835
-:10018A0000E40EB90BE10DB9769BFDCFC09AC09879
-:10019A000F91089573D0B29B0196B39B019708956E
-:1001AA00B99A33E04EEBCDDFB99830E04AE8C9DFBF
-:1001BA0004D033E042E3C5DF0895B19B716002C009
-:1001CA00B1997E7F08950F931F93082D017049F00E
-:1001DA00B99A30E04AE0B5DFB99830E04EE7B1DFCE
-:1001EA0008C0B99A30E046E7ACDFB99830E042E19E
-:1001FA00A8DF8694882049F71F910F9108950F93DD
-:10020A001F9308E0B99A30E04AE09BDFB99830E0E2
-:10021A0040E197DF10916A001695B1991068109322
-:10022A006A0030E04CE68DDF0A9561F71F910F9165
-:10023A000895F8945F9354E0A3E6B0E080936100D8
-:10024A009093620000916100109162002AE030E010
-:10025A0065DFED9200936100109362005A9591F761
-:10026A005F91789408950F931F93E2ECF2E01127BF
-:10027A00E00FF11F04901F910F9108950F931F93A0
-:10028A002F932AE01FEF0FEF0A95F1F71A95D9F786
-:10029A002A95C1F72F911F910F9108950F931F93DC
-:1002AA000FEF1FEF1A95000000000000D9F70A951A
-:1002BA00C1F71F910F910895C0F9A4B0999282F8DD
-:0402CA0080909CBFC5
+:0200000064C0DA
+:0200160018953B
+:10001A0015C00F931F932F933F930FB7B49908C03E
+:10002A0020916000203009F003C011E010936000B5
+:10003A000FBF3F912F911F910F9118954F935F9387
+:10004A000F935FB74091670045300CF403C0442713
+:10005A0040936700403061F4939894989598009182
+:10006A006500002311F0929A01C0929858D1D3D01A
+:10007A00413041F4929894989598939A009164002B
+:10008A004ED1C9D0423059F4929893989598949A3F
+:10009A000091630044D1002D0F77002EBCD043306D
+:1000AA0039F4929893989498959A00E038D1B3D0FD
+:1000BA004395409367005FBF0F915F914F911895E9
+:1000CA000FED0DBF0EE701BB01EC07BB0CE108BB4E
+:1000DA0002E000BF05E003BF09E106BF01E009BF76
+:1000EA0000E20BBF0CE100BD03E309B900E002B96D
+:1000FA0008E10AB906E003B93BEF387F383F09F057
+:10010A0006C00CEF10E90095109521E0120F11249A
+:10011A001092670000E000936000002700936A00D5
+:10012A0000936B0080E090E000916000003079F469
+:10013A00DCD070FD969A70FF969863D0FBD0FAD007
+:10014A002ED010916A00812F10916B00912F0130EF
+:10015A0011F4CBD06CD0023039F71BE01093630056
+:10016A001093640010936500109366000000DCCFC2
+:10017A00EE24FF1841E1001F111F4A9509F4089562
+:10018A00EE1CFF1CE21AF30A20F4E20EF31E889416
+:10019A00F2CF0894F0CF41503040E8F708950F931A
+:1001AA001F932F933F9351D00CEC802E63D00EEB0C
+:1001BA00802E60D0AAE6B0E07ED0ABE6B0E07BD07D
+:1001CA0010916A0020916B002F93287F283F09F035
+:1001DA0006C02F912095109521E0120F09C02F918A
+:1001EA002695179526951795269517952695179569
+:1001FA0010936A0020936B003F912F911F910F91EA
+:10020A0008950F9322D00CEC802E34D004E4802E73
+:10021A0031D00F9108950F930FB800E40EB90BE196
+:10022A000DB9769BFDCFC09AC0980F9108950F9390
+:10023A0081D0B29B0196B39B0197B49B01C003C0C6
+:10024A0000E0009360000F910895F894B99A33E0A2
+:10025A004EEBA1DFB99830E04AE89DDF05D033E0E4
+:10026A0042E399DF78940895B19B716002C0B19915
+:10027A007E7F08950F931F93082D18E0069508F4C2
+:10028A0058F0F894B99A30E046E785DFB99830E03B
+:10029A0042E181DF78940AC0F894B99A30E04AE0E2
+:1002AA007ADFB99830E04EE776DF78941A9531F71D
+:1002BA001F910F9108950F931F93002718E0F89448
+:1002CA000695B99A30E04AE066DFB99830E040E135
+:1002DA0062DFB199006830E04CE65DDF1A9581F77C
+:1002EA000C9378941F910F910895F8945F9354E0BA
+:1002FA00A3E6B0E0809361009093620000916100F0
+:10030A00109162002AE030E033DFED920093610041
+:10031A00109362005A9591F75F91789408950F931C
+:10032A001F93EAE7F3E01127E00FF11F04901F91F2
+:10033A000F9108950F931F932F932AE01FEF0FEF4A
+:10034A000A95F1F71A95D9F72A95C1F72F911F91B6
+:10035A000F9108950F931F930FEF1FEF1A95000047
+:10036A0000000000D9F70A95C1F71F910F9108956F
+:0C037A00C0F9A4B0999282F880909CBF5A
:00000001FF
diff --git a/nbproject/Makefile-default.mk b/nbproject/Makefile-default.mk
index f5d9673..e6dfd97 100644
--- a/nbproject/Makefile-default.mk
+++ b/nbproject/Makefile-default.mk
@@ -57,17 +57,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
# Source Files Quoted if spaced
-SOURCEFILES_QUOTED_IF_SPACED=main.asm div16u.asm definitions.asm macros.asm
+SOURCEFILES_QUOTED_IF_SPACED=main.asm
# Object Files Quoted if spaced
-OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.obj ${OBJECTDIR}/div16u.obj ${OBJECTDIR}/definitions.obj ${OBJECTDIR}/macros.obj
-POSSIBLE_DEPFILES=${OBJECTDIR}/main.obj.d ${OBJECTDIR}/div16u.obj.d ${OBJECTDIR}/definitions.obj.d ${OBJECTDIR}/macros.obj.d
+OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.obj
+POSSIBLE_DEPFILES=${OBJECTDIR}/main.obj.d
# Object Files
-OBJECTFILES=${OBJECTDIR}/main.obj ${OBJECTDIR}/div16u.obj ${OBJECTDIR}/definitions.obj ${OBJECTDIR}/macros.obj
+OBJECTFILES=${OBJECTDIR}/main.obj
# Source Files
-SOURCEFILES=main.asm div16u.asm definitions.asm macros.asm
+SOURCEFILES=main.asm
# Pack Options
PACK_ASSEMBLER_OPTIONS=-I "${DFP_DIR}/avrasm/inc" -i tn2313Adef.inc
@@ -101,42 +101,12 @@ ${OBJECTDIR}/main.obj: main.asm nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.obj
${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp main.asm
-${OBJECTDIR}/div16u.obj: div16u.asm nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${DISTDIR}
- @${MKDIR} "${OBJECTDIR}"
- @${RM} ${OBJECTDIR}/div16u.obj
- ${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp div16u.asm
-${OBJECTDIR}/definitions.obj: definitions.asm nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${DISTDIR}
- @${MKDIR} "${OBJECTDIR}"
- @${RM} ${OBJECTDIR}/definitions.obj
- ${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp definitions.asm
-${OBJECTDIR}/macros.obj: macros.asm nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${DISTDIR}
- @${MKDIR} "${OBJECTDIR}"
- @${RM} ${OBJECTDIR}/macros.obj
- ${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp macros.asm
else
${OBJECTDIR}/main.obj: main.asm nbproject/Makefile-${CND_CONF}.mk
@${MKDIR} ${DISTDIR}
@${MKDIR} "${OBJECTDIR}"
@${RM} ${OBJECTDIR}/main.obj
${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp -o ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.hex -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -l ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.lss main.asm
-${OBJECTDIR}/div16u.obj: div16u.asm nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${DISTDIR}
- @${MKDIR} "${OBJECTDIR}"
- @${RM} ${OBJECTDIR}/div16u.obj
- ${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp -o ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.hex -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -l ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.lss div16u.asm
-${OBJECTDIR}/definitions.obj: definitions.asm nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${DISTDIR}
- @${MKDIR} "${OBJECTDIR}"
- @${RM} ${OBJECTDIR}/definitions.obj
- ${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp -o ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.hex -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -l ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.lss definitions.asm
-${OBJECTDIR}/macros.obj: macros.asm nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} ${DISTDIR}
- @${MKDIR} "${OBJECTDIR}"
- @${RM} ${OBJECTDIR}/macros.obj
- ${MP_AS} -fI -W+ie ${PACK_ASSEMBLER_OPTIONS} -d ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} -S ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.tmp -o ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.hex -m ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.map -l ${DISTDIR}/attiny2313a_thermostat.X.${IMAGE_TYPE}.lss macros.asm
endif
# ------------------------------------------------------------------------------------
diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties
index 1a33137..29809c9 100644
--- a/nbproject/Makefile-genesis.properties
+++ b/nbproject/Makefile-genesis.properties
@@ -1,12 +1,12 @@
#
-#Mon Jun 19 12:50:04 MSK 2023
+#Tue Jun 20 07:06:09 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=1707-dsfu-bg
-configurations-xml=d50925b65bb9625a2bd338eb6fa64d60
+configurations-xml=5ccf631a2321e636528c6541c2c69f2c
default.com-microchip-mplab-nbide-toolchain-avrasm-AVRASMLanguageToolchain.md5=0e94da8ed93e9650ffef50929833a79f
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b
user-defined-mime-resolver-xml=none
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
index ecadafa..bf06ce6 100644
--- a/nbproject/configurations.xml
+++ b/nbproject/configurations.xml
@@ -1021,6 +1021,12 @@
value=""/>
+ -
+
+ -
+
+ -
+