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=""/> + + + + + +