From d9346953f42a4e1acf069f05b93fe5f21ffce1fa Mon Sep 17 00:00:00 2001 From: sergeyyarkov Date: Thu, 22 Jun 2023 06:34:54 +0300 Subject: [PATCH] buzzer --- definitions.asm | 7 +- .../attiny2313a_thermostat.X.production.hex | 99 +-- .../attiny2313a_thermostat.X.production.lss | 698 +++++++++--------- .../attiny2313a_thermostat.X.production.map | 84 ++- .../attiny2313a_thermostat.X.production.obj | Bin 4309 -> 4363 bytes .../attiny2313a_thermostat.X.production.tmp | 79 +- main.asm | 73 +- main.hex | 99 ++- nbproject/Makefile-genesis.properties | 6 +- nbproject/configurations.xml | 12 + 10 files changed, 607 insertions(+), 550 deletions(-) diff --git a/definitions.asm b/definitions.asm index 7622e98..c92080b 100644 --- a/definitions.asm +++ b/definitions.asm @@ -45,7 +45,12 @@ .EQU SW_MINUS_PIN = PB3 ; Кнопка "Плюс" .EQU SW_SET_PIN = PB4 ; Кнопка "Установить" -.EQU UART_RX_PIN = PD0 +.EQU BUZZER_PIN = PB5 ; Пищалка +.EQU BUZZER_PORT = PORTB + +.EQU RELAY_PIN = PD0 ; Реле +.EQU RELAY_PORT = PORTD + .EQU UART_TX_PIN = PD1 diff --git a/dist/default/production/attiny2313a_thermostat.X.production.hex b/dist/default/production/attiny2313a_thermostat.X.production.hex index 9ba1b82..6cd9ddc 100644 --- a/dist/default/production/attiny2313a_thermostat.X.production.hex +++ b/dist/default/production/attiny2313a_thermostat.X.production.hex @@ -7,56 +7,57 @@ :10004A000F935FB74091670045300CF403C0442713 :10005A0040936700403081F49398949895980EF0F5 :10006A0002C00BE002C000916500002311F0929AD1 -:10007A0001C0929869D1E4D0413041F492989498A1 -:10008A009598939A009164005FD1DAD0423059F47E -:10009A00929893989598949A0091630055D1002D5F -:1000AA000F77002ECDD0433041F4929893989498CC -:1000BA00959A00916C0048D1C3D04395409367004C +:10007A0001C092985ED1D9D0413041F492989498B7 +:10008A009598939A0091640054D1CFD0423059F494 +:10009A00929893989598949A009163004AD1002D6A +:1000AA000F77002EC2D0433041F4929893989498D7 +:1000BA00959A00916C003DD1B8D043954093670062 :1000CA005FBF0F915F914F9118950FED0DBF0EE72E -:1000DA0001BB01EC07BB0CE108BB02E000BF05E075 +:1000DA0001BB01EE07BB0CE108BB02E000BF05E073 :1000EA0003BF09E106BF01E009BF00E20BBF0CE153 -:1000FA0000BD03E309B900E002B908E10AB906E064 -:10010A0003B911241092670000E0009360000027F1 -:10011A0000936A0000936B0000EF00936C0080E08C -:10012A0090E000916000003079F4F4D070FD969A66 -:10013A0070FF96987BD013D112D12ED010916A00FD -:10014A00812F10916B00912F013011F4E3D084D0EC -:10015A00023039F71BE01093630010936400109388 -:10016A006500109366000000DCCFEE24FF1841E121 -:10017A00001F111F4A9509F40895EE1CFF1CE21A8C -:10018A00F30A20F4E20EF31E8894F2CF0894F0CF1B -:10019A0041503040E8F708950F931F932F933F93F0 -:1001AA004F9368D00CEC802E7AD00EEB802E77D04D -:1001BA00AAE6B0E095D0ABE6B0E092D010916A0022 -:1001CA0020916B002F93287F283F11F0E89409C0F3 -:1001DA002F9168941095209531E0130F30E0231F7A -:1001EA0001C02F912695179526951795269517954F -:1001FA002695179530916A000EF43195432F3F707A -:10020A00432F330F330F330F440F340F3695369580 -:10021A003695369510936A0020936B0030936C00E4 -:10022A004F913F912F911F910F9108950F9322D0D3 -:10023A000CEC802E34D004E4802E31D00F91089536 -:10024A000F930FB800E40EB90BE10DB9769BFDCF01 -:10025A00C09AC0980F9108950F9381D0B29B0196CE -:10026A00B39B0197B49B01C003C000E000936000F8 -:10027A000F910895F894B99A33E04EEB89DFB99853 -:10028A0030E04AE885DF05D033E042E381DF789445 -:10029A000895B19B716002C0B1997E7F08950F9352 -:1002AA001F93082D18E0069508F458F0F894B99AA7 -:1002BA0030E046E76DDFB99830E042E169DF7894D3 -:1002CA000AC0F894B99A30E04AE062DFB99830E09F -:1002DA004EE75EDF78941A9531F71F910F910895D2 -:1002EA000F931F93002718E0F8940695B99A30E007 -:1002FA004AE04EDFB99830E040E14ADFB199006840 -:10030A0030E04CE645DF1A9581F70C9378941F91FB -:10031A000F910895F8945F9354E0A3E6B0E08093B8 -:10032A0061009093620000916100109162002AE0DE -:10033A0030E01BDFED9200936100109362005A9542 -:10034A0091F75F91789408950F931F93E4EAF3E08D -:10035A001127E00FF11F04901F910F9108950F9339 +:1000FA0000BD11241092670000E000936000002701 +:10010A0000936A0000936B0000EF00936C001CD10F +:10011A0080E090E000916000003079F4F0D070FD4A +:10012A00969A70FF969877D01AD119D12AD0109141 +:10013A006A00812F10916B00912F013011F4DFD0EA +:10014A0080D0023039F71BE01093630010936400EB +:10015A0010936500109366000000DCCFEE24FF18B0 +:10016A0041E1001F111F4A9509F40895EE1CFF1C76 +:10017A00E21AF30A20F4E20EF31E8894F2CF0894EE +:10018A00F0CF0F931F932F933F934F9368D00CECAC +:10019A00802E7AD00EEB802E77D0AAE6B0E095D0EA +:1001AA00ABE6B0E092D010916A0020916B002F93D9 +:1001BA00287F283F11F0E89409C02F916894109580 +:1001CA00209531E0130F30E0231F01C02F912695AF +:1001DA001795269517952695179526951795309173 +:1001EA006A000EF43195432F3F70432F330F330FBC +:1001FA00330F440F340F369536953695369510934E +:10020A006A0020936B0030936C004F913F912F91BD +:10021A001F910F9108950F9322D00CEC802E34D0A9 +:10022A0004E4802E31D00F9108950F930FB800E4A3 +:10023A000EB90BE10DB9769BFDCFC09AC0980F910C +:10024A0008950F938CD0B29B0196B39B0197B49BF0 +:10025A0001C003C000E0009360000F910895F89474 +:10026A00B99A33E04EEB8BD0B99830E04AE887D0A0 +:10027A0005D033E042E383D078940895B19B71604E +:10028A0002C0B1997E7F08950F931F93082D18E03D +:10029A00069508F458F0F894B99A30E046E76FD01A +:1002AA00B99830E042E16BD078940AC0F894B99AD0 +:1002BA0030E04AE064D0B99830E04EE760D07894F4 +:1002CA001A9531F71F910F9108950F931F930027E5 +:1002DA0018E0F8940695B99A30E04AE050D0B998F7 +:1002EA0030E040E14CD0B199006830E04CE647D0AC +:1002FA001A9581F70C9378941F910F910895F894A9 +:10030A005F9354E0A3E6B0E08093610090936200AB +:10031A0000916100109162002AE030E01FDFED9247 +:10032A0000936100109362005A9591F75F91789457 +:10033A0008950F931F93E0EBF3E01127E00FF11FED +:10034A0004901F910F910895C59A1DD0C5980895DC +:10035A00C59A19D018D017D016D0C59808950F93FA :10036A001F932F932AE01FEF0FEF0A95F1F71A95C3 -:10037A00D9F72A95C1F72F911F910F9108950F93DD -:10038A001F930FEF1FEF1A95000000000000D9F726 -:10039A000A95C1F71F910F910895C0F9A4B09992D7 -:0603AA0082F880909CBF68 +:10037A00D9F72A95C1F72F911F910F9108954150EE +:10038A003040E8F708950F931F932F9326E00FEF5D +:10039A001FEF1A95F1F70A95D9F72A95C1F72F9108 +:1003AA001F910F910895C0F9A4B0999282F8809094 +:0203BA009CBFE6 :00000001FF diff --git a/dist/default/production/attiny2313a_thermostat.X.production.lss b/dist/default/production/attiny2313a_thermostat.X.production.lss index 7a0ce50..47a6df3 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 Tue Jun 20 22:15:20 2023 +AVRASM ver. 2.2.7 main.asm Thu Jun 22 06:32:38 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(275): Including file 'div16u.asm' +main.asm(276): Including file 'div16u.asm' div16u.asm(22): warning: Register r16 already defined by the .DEF directive -main.asm(275): 'div16u.asm' included form here +main.asm(276): 'div16u.asm' included form here div16u.asm(23): warning: Register r17 already defined by the .DEF directive -main.asm(275): 'div16u.asm' included form here +main.asm(276): 'div16u.asm' included form here div16u.asm(24): warning: Register r16 already defined by the .DEF directive -main.asm(275): 'div16u.asm' included form here +main.asm(276): 'div16u.asm' included form here div16u.asm(25): warning: Register r17 already defined by the .DEF directive -main.asm(275): 'div16u.asm' included form here +main.asm(276): 'div16u.asm' included form here div16u.asm(27): warning: Register r19 already defined by the .DEF directive -main.asm(275): 'div16u.asm' included form here +main.asm(276): 'div16u.asm' included form here div16u.asm(28): warning: Register r20 already defined by the .DEF directive -main.asm(275): 'div16u.asm' included form here +main.asm(276): '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(275): Including file 'div16u.asm' +main.asm(276): Including file 'div16u.asm' ; @@ -783,7 +783,12 @@ main.asm(275): Including file 'div16u.asm' .EQU SW_MINUS_PIN = PB3 ; Кнопка "Плюс" .EQU SW_SET_PIN = PB4 ; Кнопка "Установить" - .EQU UART_RX_PIN = PD0 + .EQU BUZZER_PIN = PB5 ; Пищалка + .EQU BUZZER_PORT = PORTB + + .EQU RELAY_PIN = PD0 ; Реле + .EQU RELAY_PORT = PORTD + .EQU UART_TX_PIN = PD1 @@ -918,8 +923,8 @@ main.asm(275): Including file 'div16u.asm' 00003d c001 rjmp PC+2 00003e 9892 cbi PORTD, DIGIT_1_PIN ; lds TEMP_REG_A, DIGITS+2 -00003f d169 rcall DISPLAY_DECODER -000040 d0e4 rcall USI_TRANSMIT +00003f d15e rcall DISPLAY_DECODER +000040 d0d9 rcall USI_TRANSMIT _indicate_2: 000041 3041 cpi r20, 1 @@ -935,8 +940,8 @@ main.asm(275): Including file 'div16u.asm' ; rjmp PC+2 ; cbi PORTD, DIGIT_1_PIN 000047 9100 0064 lds TEMP_REG_A, DIGITS+1 -000049 d15f rcall DISPLAY_DECODER -00004a d0da rcall USI_TRANSMIT +000049 d154 rcall DISPLAY_DECODER +00004a d0cf rcall USI_TRANSMIT _indicate_3: 00004b 3042 cpi r20, 2 @@ -947,12 +952,12 @@ main.asm(275): Including file 'div16u.asm' 00004f 9895 cbi PORTD, DIGIT_4_PIN 000050 9a94 sbi PORTD, DIGIT_3_PIN 000051 9100 0063 lds TEMP_REG_A, DIGITS -000053 d155 rcall DISPLAY_DECODER +000053 d14a rcall DISPLAY_DECODER ; зажигаем точку 000054 2d00 mov r16, r0 000055 770f cbr r16, (1<<7) 000056 2e00 mov r0, r16 -000057 d0cd rcall USI_TRANSMIT +000057 d0c2 rcall USI_TRANSMIT _indicate_4: 000058 3043 cpi r20, 3 @@ -963,8 +968,8 @@ main.asm(275): Including file 'div16u.asm' 00005c 9894 cbi PORTD, DIGIT_3_PIN 00005d 9a95 sbi PORTD, DIGIT_4_PIN 00005e 9100 006c lds TEMP_REG_A, TEMP_F -000060 d148 rcall DISPLAY_DECODER -000061 d0c3 rcall USI_TRANSMIT +000060 d13d rcall DISPLAY_DECODER +000061 d0b8 rcall USI_TRANSMIT _indicate_exit: 000062 9543 inc r20 @@ -987,9 +992,9 @@ main.asm(275): Including file 'div16u.asm' MCU_INIT: ; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ ************************************* 00006c e70e -00006d bb01 outi r16, DDRD, (1< @@ -1044,43 +1046,43 @@ main.asm(275): Including file 'div16u.asm' ; **** ГЛАВНЫЙ ЦИКЛ ********************************************** LOOP: ; rcall DISPLAY_UPD_DIGITS -000096 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК +00008f 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК _STATE_DEFAULT: -000098 3000 cpi r16, MCU_STATE_DEFAULT -000099 f479 brne _STATE_PROGRAM -00009a d0f4 rcall DISPLAY_UPD_DIGITS -00009b fd70 sbrc OWFR, OWPRF -00009c 9a96 sbi PORTD, PD6 -00009d ff70 sbrs OWFR, OWPRF -00009e 9896 cbi PORTD, PD6 +000091 3000 cpi r16, MCU_STATE_DEFAULT +000092 f479 brne _STATE_PROGRAM +000093 d0f0 rcall DISPLAY_UPD_DIGITS +000094 fd70 sbrc OWFR, OWPRF +000095 9a96 sbi PORTD, PD6 +000096 ff70 sbrs OWFR, OWPRF +000097 9896 cbi PORTD, PD6 -00009f d07b rcall TEMP_CONV -0000a0 d113 rcall DEBOUNCE_SW -0000a1 d112 rcall DEBOUNCE_SW -0000a2 d02e rcall TEMP_RD +000098 d077 rcall TEMP_CONV +000099 d11a rcall DEBOUNCE_SW +00009a d119 rcall DEBOUNCE_SW +00009b d02a rcall TEMP_RD -0000a3 9110 006a lds r17, TEMP_L -0000a5 2f81 mov DISP_NUM_L, r17 -0000a6 9110 006b lds r17, TEMP_H -0000a8 2f91 mov DISP_NUM_H, r17 +00009c 9110 006a lds r17, TEMP_L +00009e 2f81 mov DISP_NUM_L, r17 +00009f 9110 006b lds r17, TEMP_H +0000a1 2f91 mov DISP_NUM_H, r17 _STATE_PROGRAM: -0000a9 3001 cpi r16, MCU_STATE_PROGRAM -0000aa f411 brne _STATE_ERROR -0000ab d0e3 rcall DISPLAY_UPD_DIGITS -0000ac d084 rcall SW_CHECK_PROCESS +0000a2 3001 cpi r16, MCU_STATE_PROGRAM +0000a3 f411 brne _STATE_ERROR +0000a4 d0df rcall DISPLAY_UPD_DIGITS +0000a5 d080 rcall SW_CHECK_PROCESS _STATE_ERROR: -0000ad 3002 cpi r16, MCU_STATE_ERROR -0000ae f739 brne LOOP -0000af e01b ldi r17, 11 -0000b0 9310 0063 sts DIGITS, r17 -0000b2 9310 0064 sts DIGITS+1, r17 -0000b4 9310 0065 sts DIGITS+2, r17 -0000b6 9310 0066 sts DIGITS+3, r17 -0000b8 0000 nop +0000a6 3002 cpi r16, MCU_STATE_ERROR +0000a7 f739 brne LOOP +0000a8 e01b ldi r17, 11 +0000a9 9310 0063 sts DIGITS, r17 +0000ab 9310 0064 sts DIGITS+1, r17 +0000ad 9310 0065 sts DIGITS+2, r17 +0000af 9310 0066 sts DIGITS+3, r17 +0000b1 0000 nop -0000b9 cfdc rjmp LOOP +0000b2 cfdc rjmp LOOP // @@ -1118,155 +1120,148 @@ main.asm(275): Including file 'div16u.asm' ;***** Code div16u: -0000ba 24ee clr drem16uL ; clear remainder Low byte -0000bb 18ff sub drem16uH,drem16uH ; clear remainder High byte and carry -0000bc e141 ldi dcnt16u,17 ; init loop counter +0000b3 24ee clr drem16uL ; clear remainder Low byte +0000b4 18ff sub drem16uH,drem16uH ; clear remainder High byte and carry +0000b5 e141 ldi dcnt16u,17 ; init loop counter d16u_1: -0000bd 1f00 rol dd16uL ; shift left dividend -0000be 1f11 rol dd16uH -0000bf 954a dec dcnt16u ; decrement counter -0000c0 f409 brne d16u_2 ; if done -0000c1 9508 ret ; return +0000b6 1f00 rol dd16uL ; shift left dividend +0000b7 1f11 rol dd16uH +0000b8 954a dec dcnt16u ; decrement counter +0000b9 f409 brne d16u_2 ; if done +0000ba 9508 ret ; return d16u_2: -0000c2 1cee rol drem16uL ; shift dividend into remainder -0000c3 1cff rol drem16uH -0000c4 1ae2 sub drem16uL,dv16uL ; remainder = remainder - divisor -0000c5 0af3 sbc drem16uH,dv16uH -0000c6 f420 brcc d16u_3 ; if result negative -0000c7 0ee2 add drem16uL,dv16uL ; restore remainder -0000c8 1ef3 adc drem16uH,dv16uH -0000c9 9488 clc ; clear carry to be shifted into result -0000ca cff2 rjmp d16u_1 ; else +0000bb 1cee rol drem16uL ; shift dividend into remainder +0000bc 1cff rol drem16uH +0000bd 1ae2 sub drem16uL,dv16uL ; remainder = remainder - divisor +0000be 0af3 sbc drem16uH,dv16uH +0000bf f420 brcc d16u_3 ; if result negative +0000c0 0ee2 add drem16uL,dv16uL ; restore remainder +0000c1 1ef3 adc drem16uH,dv16uH +0000c2 9488 clc ; clear carry to be shifted into result +0000c3 cff2 rjmp d16u_1 ; else d16u_3: -0000cb 9408 sec ; set carry to be shifted into result -0000cc cff0 - DELAY_LOOP_16: -0000cd 5041 subi DELAY_8_r, 1 -0000ce 4030 sbci DELAY_16_r, 0 -0000cf f7e8 brcc DELAY_LOOP_16 -0000d0 9508 ret - +0000c4 9408 sec ; set carry to be shifted into result +0000c5 cff0 // TEMP_RD: -0000d1 930f push r16 -0000d2 931f push r17 -0000d3 932f push r18 -0000d4 933f push r19 -0000d5 934f push r20 +0000c6 930f push r16 +0000c7 931f push r17 +0000c8 932f push r18 +0000c9 933f push r19 +0000ca 934f push r20 ; cli -0000d6 d068 rcall OW_PRESENCE -0000d7 ec0c ldi r16, DS18B20_CMD_SKIPROM -0000d8 2e80 mov OW_CMD_r, r16 -0000d9 d07a rcall OW_SEND_BYTE +0000cb d068 rcall OW_PRESENCE +0000cc ec0c ldi r16, DS18B20_CMD_SKIPROM +0000cd 2e80 mov OW_CMD_r, r16 +0000ce d07a rcall OW_SEND_BYTE -0000da eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD -0000db 2e80 mov OW_CMD_r, r16 -0000dc d077 rcall OW_SEND_BYTE +0000cf eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD +0000d0 2e80 mov OW_CMD_r, r16 +0000d1 d077 rcall OW_SEND_BYTE -0000dd e6aa ldi XL, LOW(TEMP_L) -0000de e0b0 ldi XH, HIGH(TEMP_L) -0000df d095 rcall OW_RD_BYTE +0000d2 e6aa ldi XL, LOW(TEMP_L) +0000d3 e0b0 ldi XH, HIGH(TEMP_L) +0000d4 d095 rcall OW_RD_BYTE -0000e0 e6ab ldi XL, LOW(TEMP_H) -0000e1 e0b0 ldi XH, HIGH(TEMP_H) -0000e2 d092 rcall OW_RD_BYTE +0000d5 e6ab ldi XL, LOW(TEMP_H) +0000d6 e0b0 ldi XH, HIGH(TEMP_H) +0000d7 d092 rcall OW_RD_BYTE -0000e3 9110 006a lds r17, TEMP_L -0000e5 9120 006b lds r18, TEMP_H +0000d8 9110 006a lds r17, TEMP_L +0000da 9120 006b lds r18, TEMP_H -0000e7 932f push r18 -0000e8 7f28 cbr r18, (1<<0) | (1<<1) | (1<<2) ; убираем ненужные биты на время (интересуют последних битов в TEMP_H) -0000e9 3f28 cpi r18, 0xf8 ; проверяется является ли число минусовой -0000ea f011 breq _TEMP_RD_TO_UNSIGNED ; если да то конвертируем в беззнаковое число -0000eb 94e8 clt -0000ec c009 rjmp _TEMP_RD_CONTINUE ; если нет то преобразуем значение АЦП в температуру (делим на 16) +0000dc 932f push r18 +0000dd 7f28 cbr r18, (1<<0) | (1<<1) | (1<<2) ; убираем ненужные биты на время (интересуют последних битов в TEMP_H) +0000de 3f28 cpi r18, 0xf8 ; проверяется является ли число минусовой +0000df f011 breq _TEMP_RD_TO_UNSIGNED ; если да то конвертируем в беззнаковое число +0000e0 94e8 clt +0000e1 c009 rjmp _TEMP_RD_CONTINUE ; если нет то преобразуем значение АЦП в температуру (делим на 16) _TEMP_RD_TO_UNSIGNED: -0000ed 912f pop r18 -0000ee 9468 set -0000ef 9510 com r17 -0000f0 9520 com r18 -0000f1 e031 ldi r19, 1 -0000f2 0f13 add r17, r19 -0000f3 e030 ldi r19, 0 -0000f4 1f23 adc r18, r19 -0000f5 c001 rjmp PC+2 +0000e2 912f pop r18 +0000e3 9468 set +0000e4 9510 com r17 +0000e5 9520 com r18 +0000e6 e031 ldi r19, 1 +0000e7 0f13 add r17, r19 +0000e8 e030 ldi r19, 0 +0000e9 1f23 adc r18, r19 +0000ea c001 rjmp PC+2 _TEMP_RD_CONTINUE: ; Температура = Число с АЦП / 16 (сдвиг вправо 4) -0000f6 912f pop r18 -0000f7 9526 lsr r18 -0000f8 9517 ror r17 -0000f9 9526 lsr r18 -0000fa 9517 ror r17 -0000fb 9526 lsr r18 -0000fc 9517 ror r17 -0000fd 9526 lsr r18 -0000fe 9517 ror r17 +0000eb 912f pop r18 +0000ec 9526 lsr r18 +0000ed 9517 ror r17 +0000ee 9526 lsr r18 +0000ef 9517 ror r17 +0000f0 9526 lsr r18 +0000f1 9517 ror r17 +0000f2 9526 lsr r18 +0000f3 9517 ror r17 _TEMP_RD_END: -0000ff 9130 006a lds r19, TEMP_L -000101 f40e brtc PC+2 -000102 9531 neg r19 ; переводим в беззнаковое число если минус +0000f4 9130 006a lds r19, TEMP_L +0000f6 f40e brtc PC+2 +0000f7 9531 neg r19 ; переводим в беззнаковое число если минус ; далее происходит такое для получения дробной части: ; ((n<<3) + (n<<1))>>4 или (n*10)/16 -000103 2f43 mov r20, r19 -000104 703f andi r19, 0x0f -000105 2f43 mov r20, r19 -000106 0f33 lsl r19 -000107 0f33 lsl r19 -000108 0f33 lsl r19 +0000f8 2f43 mov r20, r19 +0000f9 703f andi r19, 0x0f +0000fa 2f43 mov r20, r19 +0000fb 0f33 lsl r19 +0000fc 0f33 lsl r19 +0000fd 0f33 lsl r19 -000109 0f44 lsl r20 +0000fe 0f44 lsl r20 -00010a 0f34 add r19, r20 +0000ff 0f34 add r19, r20 -00010b 9536 lsr r19 -00010c 9536 lsr r19 -00010d 9536 lsr r19 -00010e 9536 lsr r19 +000100 9536 lsr r19 +000101 9536 lsr r19 +000102 9536 lsr r19 +000103 9536 lsr r19 ; записываем данные -00010f 9310 006a sts TEMP_L, r17 -000111 9320 006b sts TEMP_H, r18 -000113 9330 006c sts TEMP_F, r19 +000104 9310 006a sts TEMP_L, r17 +000106 9320 006b sts TEMP_H, r18 +000108 9330 006c sts TEMP_F, r19 ; sei -000115 914f pop r20 -000116 913f pop r19 -000117 912f pop r18 -000118 911f pop r17 -000119 910f pop r16 -00011a 9508 ret +00010a 914f pop r20 +00010b 913f pop r19 +00010c 912f pop r18 +00010d 911f pop r17 +00010e 910f pop r16 +00010f 9508 ret ; TEMP_CONV: -00011b 930f push r16 +000110 930f push r16 ; cli -00011c d022 rcall OW_PRESENCE -00011d ec0c ldi r16, DS18B20_CMD_SKIPROM -00011e 2e80 mov OW_CMD_r, r16 -00011f d034 rcall OW_SEND_BYTE +000111 d022 rcall OW_PRESENCE +000112 ec0c ldi r16, DS18B20_CMD_SKIPROM +000113 2e80 mov OW_CMD_r, r16 +000114 d034 rcall OW_SEND_BYTE -000120 e404 ldi r16, DS18B20_CMD_CONVERTTEMP -000121 2e80 mov OW_CMD_r, r16 -000122 d031 rcall OW_SEND_BYTE +000115 e404 ldi r16, DS18B20_CMD_CONVERTTEMP +000116 2e80 mov OW_CMD_r, r16 +000117 d031 rcall OW_SEND_BYTE ; sei -000123 910f pop r16 -000124 9508 ret +000118 910f pop r16 +000119 9508 ret // - // ; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР ************************* USI_TRANSMIT: -000125 930f push r16 -000126 b80f out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR. +00011a 930f push r16 +00011b b80f out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR. ; Enable USI Overflow Interrupt Flag (will be 0 if transfer is not compeleted) -000127 e400 ldi TEMP_REG_A, (1< USI Clock Source Select ; USICLK <--------------> USI Clock Strobe ; USITC <--------------> USI Toggle Clock (Enable clock generation) -000129 e10b ldi TEMP_REG_A, (1< - +000122 9ac0 sbi PORTB, USI_LATCH_PIN +000123 98c0 cbi PORTB, USI_LATCH_PIN +000124 910f pop r16 +000125 9508 ret// // SW_CHECK_PROCESS: -000131 930f push r16 -000132 d081 rcall DEBOUNCE_SW -000133 9bb2 sbis SW_PIN, SW_PLUS_PIN -000134 9601 adiw DISP_NUM_L, 1 +000126 930f push r16 +000127 d08c rcall DEBOUNCE_SW +000128 9bb2 sbis SW_PIN, SW_PLUS_PIN +000129 9601 adiw DISP_NUM_L, 1 -000135 9bb3 sbis SW_PIN, SW_MINUS_PIN -000136 9701 sbiw DISP_NUM_L, 1 +00012a 9bb3 sbis SW_PIN, SW_MINUS_PIN +00012b 9701 sbiw DISP_NUM_L, 1 -000137 9bb4 sbis SW_PIN, SW_SET_PIN -000138 c001 rjmp _INTO_DEFAULT_STATE -000139 c003 rjmp _SW_CHECK_PROCESS_END +00012c 9bb4 sbis SW_PIN, SW_SET_PIN +00012d c001 rjmp _INTO_DEFAULT_STATE +00012e c003 rjmp _SW_CHECK_PROCESS_END _INTO_DEFAULT_STATE: -00013a e000 ldi r16, MCU_STATE_DEFAULT -00013b 9300 0060 sts MCU_STATE, r16 +00012f e000 ldi r16, MCU_STATE_DEFAULT +000130 9300 0060 sts MCU_STATE, r16 _SW_CHECK_PROCESS_END: -00013d 910f pop r16 -00013e 9508 ret +000132 910f pop r16 +000133 9508 ret // - // // ; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ****************************** OW_PRESENCE: -00013f 94f8 cli -000140 9ab9 ow_pull -000141 e033 -000142 eb4e -000143 df89 DELAY16 480 -000144 98b9 ow_release -000145 e030 -000146 e84a -000147 df85 DELAY16 70 -000148 d005 rcall OW_CHECK_PRESENCE -000149 e033 -00014a e342 -00014b df81 DELAY16 410 -00014c 9478 sei -00014d 9508 ret +000134 94f8 cli +000135 9ab9 ow_pull +000136 e033 +000137 eb4e +000138 d08b DELAY16 480 +000139 98b9 ow_release +00013a e030 +00013b e84a +00013c d087 DELAY16 70 +00013d d005 rcall OW_CHECK_PRESENCE +00013e e033 +00013f e342 +000140 d083 DELAY16 410 +000141 9478 sei +000142 9508 ret // // @@ -1340,153 +1333,168 @@ main.asm(275): Including file 'div16u.asm' ; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов ; OW_CHECK_PRESENCE: -00014e 9bb1 sbis OW_PIN, OW_LINE -00014f 6071 sbr OWFR, (1< // OW_SEND_BYTE: -000154 930f push r16 -000155 931f push r17 -000156 2d08 mov r16, OW_CMD_r -000157 e018 ldi r17, 8 +000149 930f push r16 +00014a 931f push r17 +00014b 2d08 mov r16, OW_CMD_r +00014c e018 ldi r17, 8 _OW_SEND_BYTE_LOOP: -000158 9506 lsr r16 -000159 f408 brcc _OW_SEND_0 -00015a f058 brcs _OW_SEND_1 +00014d 9506 lsr r16 +00014e f408 brcc _OW_SEND_0 +00014f f058 brcs _OW_SEND_1 _OW_SEND_0: +000150 94f8 cli +000151 9ab9 ow_pull +000152 e030 +000153 e746 +000154 d06f DELAY16 60 +000155 98b9 ow_release +000156 e030 +000157 e142 +000158 d06b DELAY16 10 +000159 9478 sei +00015a c00a rjmp _OW_SEND_BYTE_END + _OW_SEND_1: 00015b 94f8 cli 00015c 9ab9 ow_pull 00015d e030 -00015e e746 -00015f df6d DELAY16 60 +00015e e04a +00015f d064 DELAY16 6 000160 98b9 ow_release 000161 e030 -000162 e142 -000163 df69 DELAY16 10 +000162 e74e +000163 d060 DELAY16 64 000164 9478 sei -000165 c00a rjmp _OW_SEND_BYTE_END - _OW_SEND_1: -000166 94f8 cli -000167 9ab9 ow_pull -000168 e030 -000169 e04a -00016a df62 DELAY16 6 -00016b 98b9 ow_release -00016c e030 -00016d e74e -00016e df5e DELAY16 64 -00016f 9478 sei _OW_SEND_BYTE_END: -000170 951a dec r17 -000171 f731 brne _OW_SEND_BYTE_LOOP -000172 911f pop r17 -000173 910f pop r16 -000174 9508 ret +000165 951a dec r17 +000166 f731 brne _OW_SEND_BYTE_LOOP +000167 911f pop r17 +000168 910f pop r16 +000169 9508 ret // // OW_RD_BYTE: -000175 930f push r16 -000176 931f push r17 -000177 2700 clr r16 -000178 e018 ldi r17, 8 -000179 94f8 cli +00016a 930f push r16 +00016b 931f push r17 +00016c 2700 clr r16 +00016d e018 ldi r17, 8 +00016e 94f8 cli _OW_RD_BYTE_LP: -00017a 9506 lsr r16 -00017b 9ab9 ow_pull -00017c e030 -00017d e04a -00017e df4e DELAY16 6 -00017f 98b9 ow_release -000180 e030 -000181 e140 -000182 df4a DELAY16 9 -000183 99b1 sbic OW_PIN, OW_LINE -000184 6800 sbr r16, (1<<7) -000185 e030 -000186 e64c -000187 df45 DELAY16 55 -000188 951a dec r17 -000189 f781 brne _OW_RD_BYTE_LP -00018a 930c st X, r16 -00018b 9478 sei -00018c 911f pop r17 -00018d 910f pop r16 -00018e 9508 ret +00016f 9506 lsr r16 +000170 9ab9 ow_pull +000171 e030 +000172 e04a +000173 d050 DELAY16 6 +000174 98b9 ow_release +000175 e030 +000176 e140 +000177 d04c DELAY16 9 +000178 99b1 sbic OW_PIN, OW_LINE +000179 6800 sbr r16, (1<<7) +00017a e030 +00017b e64c +00017c d047 DELAY16 55 +00017d 951a dec r17 +00017e f781 brne _OW_RD_BYTE_LP +00017f 930c st X, r16 +000180 9478 sei +000181 911f pop r17 +000182 910f pop r16 +000183 9508 ret // // - // ; **** ПОЛУЧЕНИЕ ЦИФР ИЗ 16-ТИ БИТНОГО ЧИСЛА ********************* ; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM ; путем деления этого числа несколько раз DISPLAY_UPD_DIGITS: -00018f 94f8 cli -000190 935f push r21 -000191 e054 ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный +000184 94f8 cli +000185 935f push r21 +000186 e054 ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный ; инициализация указателя (за каждый проход цикла будет инкрементироваться) -000192 e6a3 ldi XL, LOW(DIGITS) -000193 e0b0 ldi XH, HIGH(DIGITS) +000187 e6a3 ldi XL, LOW(DIGITS) +000188 e0b0 ldi XH, HIGH(DIGITS) .equ dividend = SRAM_TEMP_1 ; число которе будем делить .equ divisor = 10 ; на что делим ; загружаем число которое хотим поделить в адрес SRAM делимого -000194 9380 0061 sts dividend, DISP_NUM_L -000196 9390 0062 sts dividend+1, DISP_NUM_H +000189 9380 0061 sts dividend, DISP_NUM_L +00018b 9390 0062 sts dividend+1, DISP_NUM_H ; четыре раза производим деление для получения остатков DIV_LOOP: ; заполняем нужные регистры -000198 9100 0061 lds dd16uL, dividend -00019a 9110 0062 lds dd16uH, dividend+1 -00019c e02a ldi dv16uL, LOW(divisor) -00019d e030 ldi dv16uH, HIGH(divisor) +00018d 9100 0061 lds dd16uL, dividend +00018f 9110 0062 lds dd16uH, dividend+1 +000191 e02a ldi dv16uL, LOW(divisor) +000192 e030 ldi dv16uH, HIGH(divisor) -00019e df1b rcall div16u ; делим +000193 df1f rcall div16u ; делим -00019f 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его +000194 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его ; обновляем делимое -0001a0 9300 0061 sts dividend, dres16uL -0001a2 9310 0062 sts dividend+1, dres16uH +000195 9300 0061 sts dividend, dres16uL +000197 9310 0062 sts dividend+1, dres16uH -0001a4 955a dec r21 ; декрементируем счетчик цикла -0001a5 f791 brne DIV_LOOP ; делим еще раз если не 0 -0001a6 915f pop r21 -0001a7 9478 sei -0001a8 9508 ret +000199 955a dec r21 ; декрементируем счетчик цикла +00019a f791 brne DIV_LOOP ; делим еще раз если не 0 +00019b 915f pop r21 +00019c 9478 sei +00019d 9508 ret // - // ; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 *********************** DISPLAY_DECODER: -0001a9 930f push r16 -0001aa 931f push r17 -0001ab eae4 ldi ZL, LOW(2*DISPLAY_SYMBOLS) -0001ac e0f3 ldi ZH, HIGH(2*DISPLAY_SYMBOLS) +00019e 930f push r16 +00019f 931f push r17 +0001a0 ebe0 ldi ZL, LOW(2*DISPLAY_SYMBOLS) +0001a1 e0f3 ldi ZH, HIGH(2*DISPLAY_SYMBOLS) -0001ad 2711 clr TEMP_REG_B -0001ae 0fe0 add ZL, TEMP_REG_A -0001af 1ff1 adc ZH, TEMP_REG_B +0001a2 2711 clr TEMP_REG_B +0001a3 0fe0 add ZL, TEMP_REG_A +0001a4 1ff1 adc ZH, TEMP_REG_B -0001b0 9004 lpm r0, Z -0001b1 911f pop r17 -0001b2 910f pop r16 +0001a5 9004 lpm r0, Z +0001a6 911f pop r17 +0001a7 910f pop r16 +0001a8 9508 ret// + + // + BEEP_SHORT: +0001a9 9ac5 sbi BUZZER_PORT, BUZZER_PIN +0001aa d01d rcall DELAY +0001ab 98c5 cbi BUZZER_PORT, BUZZER_PIN +0001ac 9508 ret + // + + // + BEEP_LONG: +0001ad 9ac5 sbi BUZZER_PORT, BUZZER_PIN +0001ae d019 rcall DELAY +0001af d018 rcall DELAY +0001b0 d017 rcall DELAY +0001b1 d016 rcall DELAY +0001b2 98c5 cbi BUZZER_PORT, BUZZER_PIN 0001b3 9508 ret// - // DEBOUNCE_SW: 0001b4 930f push r16 @@ -1513,39 +1521,47 @@ main.asm(275): Including file 'div16u.asm' 0001c2 910f pop r16 0001c3 9508 ret// + // + DELAY_LOOP_16: +0001c4 5041 subi DELAY_8_r, 1 +0001c5 4030 sbci DELAY_16_r, 0 +0001c6 f7e8 brcc DELAY_LOOP_16 +0001c7 9508 ret// // DELAY: -0001c4 930f push r16 -0001c5 931f push r17 +0001c8 930f push r16 +0001c9 931f push r17 +0001ca 932f push r18 -0001c6 ef0f ldi r16, 255 +0001cb e026 ldi r18, 6 + _DELAY_0: +0001cc ef0f ldi r16, 255 _DELAY_1: -0001c7 ef1f ldi r17, 255 +0001cd ef1f ldi r17, 255 _DELAY_2: -0001c8 951a dec r17 -0001c9 0000 nop -0001ca 0000 nop -0001cb 0000 nop -0001cc f7d9 brne _DELAY_2 +0001ce 951a dec r17 +0001cf f7f1 brne _DELAY_2 -0001cd 950a dec r16 -0001ce f7c1 brne _DELAY_1 +0001d0 950a dec r16 +0001d1 f7d9 brne _DELAY_1 +0001d2 952a dec r18 +0001d3 f7c1 brne _DELAY_0 -0001cf 911f pop r17 -0001d0 910f pop r16 -0001d1 9508 ret // - +0001d4 912f pop r18 +0001d5 911f pop r17 +0001d6 910f pop r16 +0001d7 9508 ret // // DISPLAY_SYMBOLS: ; HGFEDCBA HGFEDCBA -0001d2 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1 -0001d3 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3 -0001d4 9299 .DB 0b10011001, 0b10010010 ; 4, 5 -0001d5 f882 .DB 0b10000010, 0b11111000 ; 6, 7 -0001d6 9080 .DB 0b10000000, 0b10010000 ; 8, 9 -0001d7 bf9c .DB 0b10011100, 0b10111111 ; °, -// +0001d8 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1 +0001d9 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3 +0001da 9299 .DB 0b10011001, 0b10010010 ; 4, 5 +0001db f882 .DB 0b10000010, 0b11111000 ; 6, 7 +0001dc 9080 .DB 0b10000000, 0b10010000 ; 8, 9 +0001dd bf9c .DB 0b10011100, 0b10111111 ; °, -// // @@ -1573,7 +1589,7 @@ counted separately from r26..r31 here. "ATtiny2313A" register use summary: 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: 100 r17: 46 r18: 26 r19: 36 r20: 31 +r13: 0 r14: 5 r15: 5 r16: 92 r17: 46 r18: 30 r19: 36 r20: 31 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%) @@ -1583,16 +1599,16 @@ Registers used: 20 out of 35 (57.1%) andi : 1 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 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 : 1 brts : 1 brvc : 0 -brvs : 0 bset : 0 bst : 0 cbi : 19 cbr : 3 clc : 1 +brne : 17 brpl : 0 brsh : 0 brtc : 1 brts : 1 brvc : 0 +brvs : 0 bset : 0 bst : 0 cbi : 21 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 : 14 lpm : 2 -lsl : 4 lsr : 10 mov : 11 movw : 0 neg : 1 nop : 4 -or : 0 ori : 0 out : 19 pop : 29 push : 28 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 +cpse : 0 dec : 10 eor : 0 icall : 0 ijmp : 0 in : 2 +inc : 1 ld : 0 ldd : 0 ldi : 66 lds : 14 lpm : 2 +lsl : 4 lsr : 10 mov : 11 movw : 0 neg : 1 nop : 1 +or : 0 ori : 0 out : 15 pop : 30 push : 29 rcall : 42 +ret : 16 reti : 3 rjmp : 18 rol : 4 ror : 4 sbc : 1 +sbci : 1 sbi : 12 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 : 20 sub : 2 subi : 1 @@ -1602,7 +1618,7 @@ Instructions used: 56 out of 105 (53.3%) "ATtiny2313A" memory use summary [bytes]: Segment Begin End Code Data Used Size Use% --------------------------------------------------------------- -[.cseg] 0x000000 0x0003b0 910 12 922 2048 45.0% +[.cseg] 0x000000 0x0003bc 922 12 934 2048 45.6% [.dseg] 0x000060 0x00006d 0 13 13 128 10.2% [.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 9367d3d..18072d8 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 Tue Jun 20 22:15:20 2023 +AVRASM ver. 2.2.7 main.asm Thu Jun 22 06:32:38 2023 EQU SIGNATURE_000 0000001e @@ -516,7 +516,10 @@ EQU SW_PIN 00000016 EQU SW_PLUS_PIN 00000002 EQU SW_MINUS_PIN 00000003 EQU SW_SET_PIN 00000004 -EQU UART_RX_PIN 00000000 +EQU BUZZER_PIN 00000005 +EQU BUZZER_PORT 00000018 +EQU RELAY_PIN 00000000 +EQU RELAY_PORT 00000012 EQU UART_TX_PIN 00000001 EQU MCU_STATE_DEFAULT 00000000 EQU MCU_STATE_PROGRAM 00000001 @@ -538,22 +541,23 @@ CSEG _INTO_PROGRAM_STATE 0000001a CSEG _CLR_CURRENT_DIGIT 0000002c CSEG _indicate_1 0000002f CSEG _indicate_2 00000041 -CSEG DISPLAY_DECODER 000001a9 -CSEG USI_TRANSMIT 00000125 +CSEG DISPLAY_DECODER 0000019e +CSEG USI_TRANSMIT 0000011a CSEG _indicate_3 0000004b CSEG _indicate_4 00000058 CSEG _indicate_exit 00000062 CSEG MCU_INIT 0000006c -CSEG continue 00000086 -CSEG LOOP 00000096 -CSEG _STATE_DEFAULT 00000098 -CSEG _STATE_PROGRAM 000000a9 -CSEG DISPLAY_UPD_DIGITS 0000018f -CSEG TEMP_CONV 0000011b +CSEG continue 0000007e +CSEG BEEP_SHORT 000001a9 +CSEG LOOP 0000008f +CSEG _STATE_DEFAULT 00000091 +CSEG _STATE_PROGRAM 000000a2 +CSEG DISPLAY_UPD_DIGITS 00000184 +CSEG TEMP_CONV 00000110 CSEG DEBOUNCE_SW 000001b4 -CSEG TEMP_RD 000000d1 -CSEG _STATE_ERROR 000000ad -CSEG SW_CHECK_PROCESS 00000131 +CSEG TEMP_RD 000000c6 +CSEG _STATE_ERROR 000000a6 +CSEG SW_CHECK_PROCESS 00000126 DEF drem16uL r14 DEF drem16uH r15 DEF dres16uL r16 @@ -563,36 +567,38 @@ DEF dd16uH r17 DEF dv16uL r18 DEF dv16uH r19 DEF dcnt16u r20 -CSEG div16u 000000ba -CSEG d16u_1 000000bd -CSEG d16u_2 000000c2 -CSEG d16u_3 000000cb -CSEG DELAY_LOOP_16 000000cd -CSEG OW_PRESENCE 0000013f -CSEG OW_SEND_BYTE 00000154 -CSEG OW_RD_BYTE 00000175 -CSEG _TEMP_RD_TO_UNSIGNED 000000ed -CSEG _TEMP_RD_CONTINUE 000000f6 -CSEG _TEMP_RD_END 000000ff -CSEG _USI_TRANSMIT_LOOP 0000012a -CSEG _INTO_DEFAULT_STATE 0000013a -CSEG _SW_CHECK_PROCESS_END 0000013d -CSEG OW_CHECK_PRESENCE 0000014e -CSEG _EXIT 00000153 -CSEG _OW_SEND_BYTE_LOOP 00000158 -CSEG _OW_SEND_0 0000015b -CSEG _OW_SEND_1 00000166 -CSEG _OW_SEND_BYTE_END 00000170 -CSEG _OW_RD_BYTE_LP 0000017a +CSEG div16u 000000b3 +CSEG d16u_1 000000b6 +CSEG d16u_2 000000bb +CSEG d16u_3 000000c4 +CSEG OW_PRESENCE 00000134 +CSEG OW_SEND_BYTE 00000149 +CSEG OW_RD_BYTE 0000016a +CSEG _TEMP_RD_TO_UNSIGNED 000000e2 +CSEG _TEMP_RD_CONTINUE 000000eb +CSEG _TEMP_RD_END 000000f4 +CSEG _USI_TRANSMIT_LOOP 0000011f +CSEG _INTO_DEFAULT_STATE 0000012f +CSEG _SW_CHECK_PROCESS_END 00000132 +CSEG DELAY_LOOP_16 000001c4 +CSEG OW_CHECK_PRESENCE 00000143 +CSEG _EXIT 00000148 +CSEG _OW_SEND_BYTE_LOOP 0000014d +CSEG _OW_SEND_0 00000150 +CSEG _OW_SEND_1 0000015b +CSEG _OW_SEND_BYTE_END 00000165 +CSEG _OW_RD_BYTE_LP 0000016f EQU dividend 00000061 EQU divisor 0000000a -CSEG DIV_LOOP 00000198 -CSEG DISPLAY_SYMBOLS 000001d2 +CSEG DIV_LOOP 0000018d +CSEG DISPLAY_SYMBOLS 000001d8 +CSEG DELAY 000001c8 +CSEG BEEP_LONG 000001ad CSEG _loop_2 000001b8 CSEG _loop_0 000001b9 CSEG _dec_0 000001ba CSEG _loop_1 000001bc CSEG _loop_3 000001be -CSEG DELAY 000001c4 -CSEG _DELAY_1 000001c7 -CSEG _DELAY_2 000001c8 +CSEG _DELAY_0 000001cc +CSEG _DELAY_1 000001cd +CSEG _DELAY_2 000001ce diff --git a/dist/default/production/attiny2313a_thermostat.X.production.obj b/dist/default/production/attiny2313a_thermostat.X.production.obj index a8cd5228c8ac5b2ae2b75d3ab42ba7e9a9cf7781..b2a0b3ea754c37e2130dfc0da8760d9f8b897356 100644 GIT binary patch literal 4363 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 YR&LJJ+EKF8=qAc>S%rz6rq$N!|127j0ssI2 literal 4309 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 A@c;k- diff --git a/dist/default/production/attiny2313a_thermostat.X.production.tmp b/dist/default/production/attiny2313a_thermostat.X.production.tmp index 09f14c8..976137a 100644 --- a/dist/default/production/attiny2313a_thermostat.X.production.tmp +++ b/dist/default/production/attiny2313a_thermostat.X.production.tmp @@ -41,52 +41,55 @@ <_CLR_CURRENT_DIGIT>main.asm99 <_indicate_1>main.asm103 <_indicate_2>main.asm125 - main.asm588 - main.asm397 + main.asm578 + main.asm391 <_indicate_3>main.asm142 <_indicate_4>main.asm158 <_indicate_exit>main.asm170 main.asm188 main.asm211 - main.asm232 - <_STATE_DEFAULT>main.asm236 - <_STATE_PROGRAM>main.asm255 - main.asm546 - main.asm376 - main.asm605 - main.asm284 - <_STATE_ERROR>main.asm260 - main.asm429 + main.asm594 + main.asm233 + <_STATE_DEFAULT>main.asm237 + <_STATE_PROGRAM>main.asm256 + main.asm537 + main.asm371 + main.asm612 + main.asm279 + <_STATE_ERROR>main.asm261 + main.asm422 div16u.asm32 div16u.asm36 div16u.asm42 div16u.asm52 - main.asm277 - main.asm454 - main.asm481 - main.asm514 - <_TEMP_RD_TO_UNSIGNED>main.asm319 - <_TEMP_RD_CONTINUE>main.asm330 - <_TEMP_RD_END>main.asm340 - <_USI_TRANSMIT_LOOP>main.asm415 - <_INTO_DEFAULT_STATE>main.asm442 - <_SW_CHECK_PROCESS_END>main.asm445 - main.asm470 - <_EXIT>main.asm476 - <_OW_SEND_BYTE_LOOP>main.asm486 - <_OW_SEND_0>main.asm490 - <_OW_SEND_1>main.asm498 - <_OW_SEND_BYTE_END>main.asm505 - <_OW_RD_BYTE_LP>main.asm520 - main.asm563 - main.asm655 - <_loop_2>main.asm611 - <_loop_0>main.asm613 - <_dec_0>main.asm615 - <_loop_1>main.asm618 - <_loop_3>main.asm621 - main.asm632 - <_DELAY_1>main.asm637 - <_DELAY_2>main.asm639 + main.asm446 + main.asm473 + main.asm506 + <_TEMP_RD_TO_UNSIGNED>main.asm314 + <_TEMP_RD_CONTINUE>main.asm325 + <_TEMP_RD_END>main.asm335 + <_USI_TRANSMIT_LOOP>main.asm409 + <_INTO_DEFAULT_STATE>main.asm435 + <_SW_CHECK_PROCESS_END>main.asm438 + main.asm638 + main.asm462 + <_EXIT>main.asm468 + <_OW_SEND_BYTE_LOOP>main.asm478 + <_OW_SEND_0>main.asm482 + <_OW_SEND_1>main.asm490 + <_OW_SEND_BYTE_END>main.asm497 + <_OW_RD_BYTE_LP>main.asm512 + main.asm554 + main.asm670 + main.asm645 + main.asm602 + <_loop_2>main.asm618 + <_loop_0>main.asm620 + <_dec_0>main.asm622 + <_loop_1>main.asm625 + <_loop_3>main.asm628 + <_DELAY_0>main.asm651 + <_DELAY_1>main.asm653 + <_DELAY_2>main.asm655 diff --git a/main.asm b/main.asm index 12eb98a..ce8102b 100644 --- a/main.asm +++ b/main.asm @@ -187,8 +187,8 @@ RESET_vect: ; **** ПРОЦЕСС ИНИЦИАЛИЗАЦИИ МК ********************************** MCU_INIT: ; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ ************************************* - outi r16, DDRD, (1< TEMP_RD: push r16 @@ -391,7 +386,6 @@ TEMP_CONV: ret // - // ; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР ************************* USI_TRANSMIT: @@ -424,7 +418,6 @@ _USI_TRANSMIT_LOOP: ; Execute loop when USIOIF is 0 pop r16 ret// - // SW_CHECK_PROCESS: push r16 @@ -447,7 +440,6 @@ _SW_CHECK_PROCESS_END: ret // - // // ; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ****************************** @@ -538,7 +530,6 @@ _OW_RD_BYTE_LP: // - // ; **** ПОЛУЧЕНИЕ ЦИФР ИЗ 16-ТИ БИТНОГО ЧИСЛА ********************* ; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM @@ -582,7 +573,6 @@ DIV_LOOP: ret // - // ; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 *********************** DISPLAY_DECODER: @@ -600,6 +590,23 @@ DISPLAY_DECODER: pop r16 ret// +// +BEEP_SHORT: + sbi BUZZER_PORT, BUZZER_PIN + rcall DELAY + cbi BUZZER_PORT, BUZZER_PIN + ret +// + +// +BEEP_LONG: + sbi BUZZER_PORT, BUZZER_PIN + rcall DELAY + rcall DELAY + rcall DELAY + rcall DELAY + cbi BUZZER_PORT, BUZZER_PIN + ret// // DEBOUNCE_SW: @@ -627,29 +634,37 @@ _loop_3: pop r16 ret// +// +DELAY_LOOP_16: + subi DELAY_8_r, 1 + sbci DELAY_16_r, 0 + brcc DELAY_LOOP_16 + ret// // DELAY: push r16 push r17 + push r18 + ldi r18, 6 +_DELAY_0: ldi r16, 255 _DELAY_1: ldi r17, 255 _DELAY_2: dec r17 - nop - nop - nop brne _DELAY_2 dec r16 brne _DELAY_1 + dec r18 + brne _DELAY_0 + pop r18 pop r17 pop r16 ret // - // DISPLAY_SYMBOLS: diff --git a/main.hex b/main.hex index 469a88e..57720eb 100644 --- a/main.hex +++ b/main.hex @@ -7,56 +7,55 @@ :10004A000F935FB74091670045300CF403C0442713 :10005A0040936700403081F49398949895980EF0F5 :10006A0002C00BE002C000916500002311F0929AD1 -:10007A0001C0929869D1E4D0413041F492989498A1 -:10008A009598939A009164005FD1DAD0423059F47E -:10009A00929893989598949A0091630055D1002D5F -:1000AA000F77002ECDD0433041F4929893989498CC -:1000BA00959A00916C0048D1C3D04395409367004C +:10007A0001C0929864D1DFD0413041F492989498AB +:10008A009598939A009164005AD1D5D0423059F488 +:10009A00929893989598949A0091630050D1002D64 +:1000AA000F77002EC8D0433041F4929893989498D1 +:1000BA00959A00916C0043D1BED043954093670056 :1000CA005FBF0F915F914F9118950FED0DBF0EE72E -:1000DA0001BB01EC07BB0CE108BB02E000BF05E075 +:1000DA0001BB01EE07BB0CE108BB02E000BF05E073 :1000EA0003BF09E106BF01E009BF00E20BBF0CE153 -:1000FA0000BD03E309B900E002B908E10AB906E064 -:10010A0003B909E0019511241092670000E00093F9 -:10011A006000002700936A0000936B0000EF0093D1 -:10012A006C0080E090E000916000003079F4F2D039 -:10013A0070FD969A70FF969879D011D110D12ED071 -:10014A0010916A00812F10916B00912F013011F4E8 -:10015A00E1D082D0023039F71BE01093630010938C -:10016A00640010936500109366000000DCCFEE2453 -:10017A00FF1841E1001F111F4A9509F40895EE1C6A -:10018A00FF1CE21AF30A20F4E20EF31E8894F2CF5F -:10019A000894F0CF41503040E8F708950F931F9329 -:1001AA002F933F934F9366D00CEC802E78D00EEBB2 -:1001BA00802E75D0AAE6B0E093D0ABE6B0E090D03E -:1001CA0010916A0020916B002F93287F283F11F02D -:1001DA00E89409C02F9168941095209531E0130F87 -:1001EA0030E0231F01C02F91269517952695179564 -:1001FA00269517952695179530916A00432F3F70DB -:10020A00432F330F330F330F440F340F3695369580 -:10021A003695369510936A0020936B0030936C00E4 -:10022A004F913F912F911F910F9108950F9322D0D3 -:10023A000CEC802E34D004E4802E31D00F91089536 -:10024A000F930FB800E40EB90BE10DB9769BFDCF01 -:10025A00C09AC0980F9108950F9381D0B29B0196CE -:10026A00B39B0197B49B01C003C000E000936000F8 -:10027A000F910895F894B99A33E04EEB8BDFB99851 -:10028A0030E04AE887DF05D033E042E383DF789441 -:10029A000895B19B716002C0B1997E7F08950F9352 -:1002AA001F93082D18E0069508F458F0F894B99AA7 -:1002BA0030E046E76FDFB99830E042E16BDF7894CF -:1002CA000AC0F894B99A30E04AE064DFB99830E09D -:1002DA004EE760DF78941A9531F71F910F910895D0 -:1002EA000F931F93002718E0F8940695B99A30E007 -:1002FA004AE050DFB99830E040E14CDFB19900683C -:10030A0030E04CE647DF1A9581F70C9378941F91F9 -:10031A000F910895F8945F9354E0A3E6B0E08093B8 -:10032A0061009093620000916100109162002AE0DE -:10033A0030E01DDFED9200936100109362005A9540 -:10034A0091F75F91789408950F931F93E4EAF3E08D -:10035A001127E00FF11F04901F910F9108950F9339 -:10036A001F932F932AE01FEF0FEF0A95F1F71A95C3 -:10037A00D9F72A95C1F72F911F910F9108950F93DD -:10038A001F930FEF1FEF1A95000000000000D9F726 -:10039A000A95C1F71F910F910895C0F9A4B09992D7 -:0603AA0082F880909CBF68 +:1000FA0000BD11241092670000E000936000002701 +:10010A0000936A0000936B0000EF00936C00C59A9D +:10011A0021D1C59880E090E000916000003079F428 +:10012A00F4D070FD969A70FF96987BD013D112D1B5 +:10013A002ED010916A00812F10916B00912F0130FF +:10014A0011F4E3D084D0023039F71BE01093630036 +:10015A001093640010936500109366000000DCCFD2 +:10016A00EE24FF1841E1001F111F4A9509F4089572 +:10017A00EE1CFF1CE21AF30A20F4E20EF31E889426 +:10018A00F2CF0894F0CF41503040E8F708950F932A +:10019A001F932F933F934F9368D00CEC802E7AD005 +:1001AA000EEB802E77D0AAE6B0E095D0ABE6B0E0B1 +:1001BA0092D010916A0020916B002F93287F283FDC +:1001CA0011F0E89409C02F9168941095209531E0B8 +:1001DA00130F30E0231F01C02F91269517952695FE +:1001EA001795269517952695179530916A000EF45E +:1001FA003195432F3F70432F330F330F330F440F83 +:10020A00340F369536953695369510936A002093B5 +:10021A006B0030936C004F913F912F911F910F917A +:10022A0008950F9322D00CEC802E34D004E4802E53 +:10023A0031D00F9108950F930FB800E40EB90BE176 +:10024A000DB9769BFDCFC09AC0980F9108950F9370 +:10025A0081D0B29B0196B39B0197B49B01C003C0A6 +:10026A0000E0009360000F910895F894B99A33E082 +:10027A004EEB89DFB99830E04AE885DF05D033E0F4 +:10028A0042E381DF78940895B19B716002C0B1990D +:10029A007E7F08950F931F93082D18E0069508F4A2 +:1002AA0058F0F894B99A30E046E76DDFB99830E033 +:1002BA0042E169DF78940AC0F894B99A30E04AE0DA +:1002CA0062DFB99830E04EE75EDF78941A9531F72D +:1002DA001F910F9108950F931F93002718E0F89428 +:1002EA000695B99A30E04AE04EDFB99830E040E12D +:1002FA004ADFB199006830E04CE645DF1A9581F78C +:10030A000C9378941F910F910895F8945F9354E099 +:10031A00A3E6B0E0809361009093620000916100CF +:10032A00109162002AE030E01BDFED920093610039 +:10033A00109362005A9591F75F91789408950F93FC +:10034A001F93EAE9F3E01127E00FF11F04901F91D0 +:10035A000F9108950F931F932F932AE01FEF0FEF2A +:10036A000A95F1F71A95D9F72A95C1F72F911F9196 +:10037A000F9108950F931F930FEF1FEF1A95000027 +:10038A0000000000D9F70A95C1F71F910F9108954F +:0C039A00C0F9A4B0999282F880909CBF3A :00000001FF diff --git a/nbproject/Makefile-genesis.properties b/nbproject/Makefile-genesis.properties index 29809c9..b723030 100644 --- a/nbproject/Makefile-genesis.properties +++ b/nbproject/Makefile-genesis.properties @@ -1,12 +1,12 @@ # -#Tue Jun 20 07:06:09 MSK 2023 +#Thu Jun 22 06:29:23 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=5ccf631a2321e636528c6541c2c69f2c +host.id=2l3s-yrgx-1d +configurations-xml=cdd4b69d8607063199baa35f45d5db2e 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 bf06ce6..f25ff1e 100644 --- a/nbproject/configurations.xml +++ b/nbproject/configurations.xml @@ -1022,10 +1022,22 @@ + + + + + + + + + + + +