From a02fb3bcd37d5f9b405d0f843469ec8644658c1a Mon Sep 17 00:00:00 2001 From: sergeyyarkov Date: Wed, 19 Apr 2023 08:36:33 +0300 Subject: [PATCH] upd --- firmware.asm | 32 +++++++++++-- firmware.hex | 20 ++++---- firmware.lss | 132 ++++++++++++++++++++++++++++++--------------------- 3 files changed, 116 insertions(+), 68 deletions(-) diff --git a/firmware.asm b/firmware.asm index b68ed81..7ce3651 100644 --- a/firmware.asm +++ b/firmware.asm @@ -110,13 +110,13 @@ MCU_INIT: ; sbi PORTD, PD4 ; sbi PORTD, PD5 - ldi TEMP_REG_A, 4 + ldi TEMP_REG_A, 1 sts DISPLAY_DIGIT, TEMP_REG_A - ldi TEMP_REG_A, 3 + ldi TEMP_REG_A, 1 sts DISPLAY_DIGIT+1, TEMP_REG_A - ldi TEMP_REG_A, 2 + ldi TEMP_REG_A, 9 sts DISPLAY_DIGIT+2, TEMP_REG_A ldi TEMP_REG_A, 1 @@ -173,7 +173,6 @@ ret LOOP: rcall TOGGLE_POWER_LED rcall DISPLAY_INDICATE - ; rcall USI_TRANSMIT ; ldi TEMP_REG_B, 10 ; cp r1, TEMP_REG_B @@ -200,27 +199,50 @@ LOOP: DISPLAY_INDICATE: sbi PORTD, DIGIT_1_PIN + lds TEMP_REG_A, DISPLAY_DIGIT+3 + rcall DISPLAY_DECODER + rcall USI_TRANSMIT rcall DELAY cbi PORTD, DIGIT_1_PIN sbi PORTD, DIGIT_2_PIN + lds TEMP_REG_A, DISPLAY_DIGIT+2 + rcall DISPLAY_DECODER + rcall USI_TRANSMIT rcall DELAY cbi PORTD, DIGIT_2_PIN sbi PORTD, DIGIT_3_PIN + lds TEMP_REG_A, DISPLAY_DIGIT+1 + rcall DISPLAY_DECODER + rcall USI_TRANSMIT rcall DELAY cbi PORTD, DIGIT_3_PIN sbi PORTD, DIGIT_4_PIN + lds TEMP_REG_A, DISPLAY_DIGIT + rcall DISPLAY_DECODER + rcall USI_TRANSMIT rcall DELAY cbi PORTD, DIGIT_4_PIN ret +DISPLAY_DECODER: + ldi ZL, LOW(2*DISPLAY_SYMBOLS) + ldi ZH, HIGH(2*DISPLAY_SYMBOLS) + + ldi TEMP_REG_B, 0 + add ZL, TEMP_REG_A + adc ZH, TEMP_REG_B + + lpm +ret + DELAY: push r16 push r17 cli - ldi r16, 100 + ldi r16, 50 _DELAY_1: ldi r17, 255 _DELAY_2: diff --git a/firmware.hex b/firmware.hex index 5d302c1..709e81f 100644 --- a/firmware.hex +++ b/firmware.hex @@ -1,11 +1,15 @@ :020000020000FC -:1000000000C00FED0DBF0CE701BB01EC07BB04E026 -:100010000093610003E00093620002E0009363003C -:1000200001E0009364001124E6E8F0E00AC00FB894 +:1000000000C00FED0DBF0CE701BB01EC07BB01E029 +:100010000093610001E00093620009E00093630037 +:1000200001E0009364001124EAEBF0E00AC00FB88D :1000300000E40EB90BE10DB9769BFDCFC09AC098D4 -:1000400008951CD001D0FDCF929A08D09298939A2F -:1000500005D09398949A02D0949808950F931F9383 -:10006000F89404E61FEF1A95000000000000D9F78D -:100070000A95C1F778941F910F91089500E412B387 -:10008000102712BB0895C0F9A4B0999282F880900D +:10004000089536D001D0FDCF929A0091640019D066 +:10005000EEDF1ED09298939A0091630012D0E7DFF2 +:1000600017D09398949A009162000BD0E0DF10D0E3 +:100070009498959A0091610004D0D9DF09D09598A1 +:100080000895EAEBF0E010E0E00FF11FC895089545 +:100090000F931F93F89402E31FEF1A9500000000DE +:1000A0000000D9F70A95C1F778941F910F91089530 +:1000B00000E412B3102712BB0895C0F9A4B09992BE +:0400C00082F88090B2 :00000001FF diff --git a/firmware.lss b/firmware.lss index 811e5f4..8897b7a 100644 --- a/firmware.lss +++ b/firmware.lss @@ -1,5 +1,5 @@ -AVRASM ver. 2.2.7 firmware.asm Sat Feb 25 23:36:49 2023 +AVRASM ver. 2.2.7 firmware.asm Thu Apr 06 18:29:19 2023 firmware.asm(14): Including file 'tn2313Adef.inc' firmware.asm(14): Including file 'tn2313Adef.inc' @@ -814,20 +814,20 @@ firmware.asm(14): Including file 'tn2313Adef.inc' ; sbi PORTD, PD4 ; sbi PORTD, PD5 -000007 e004 ldi TEMP_REG_A, 4 +000007 e001 ldi TEMP_REG_A, 1 000008 9300 0061 sts DISPLAY_DIGIT, TEMP_REG_A -00000a e003 ldi TEMP_REG_A, 3 +00000a e001 ldi TEMP_REG_A, 1 00000b 9300 0062 sts DISPLAY_DIGIT+1, TEMP_REG_A -00000d e002 ldi TEMP_REG_A, 2 +00000d e009 ldi TEMP_REG_A, 9 00000e 9300 0063 sts DISPLAY_DIGIT+2, TEMP_REG_A 000010 e001 ldi TEMP_REG_A, 1 000011 9300 0064 sts DISPLAY_DIGIT+3, TEMP_REG_A 000013 2411 clr r1 -000014 e8e6 ldi ZL,LOW(2*DISPLAY_SYMBOLS) +000014 ebea ldi ZL,LOW(2*DISPLAY_SYMBOLS) 000015 e0f0 ldi ZH,HIGH(2*DISPLAY_SYMBOLS) 000016 c00a rjmp LOOP @@ -875,9 +875,8 @@ firmware.asm(14): Including file 'tn2313Adef.inc' ;========================================; LOOP: -000021 d01c rcall TOGGLE_POWER_LED +000021 d036 rcall TOGGLE_POWER_LED 000022 d001 rcall DISPLAY_INDICATE - ; rcall USI_TRANSMIT ; ldi TEMP_REG_B, 10 ; cp r1, TEMP_REG_B @@ -904,58 +903,81 @@ firmware.asm(14): Including file 'tn2313Adef.inc' DISPLAY_INDICATE: 000024 9a92 sbi PORTD, DIGIT_1_PIN -000025 d008 rcall DELAY -000026 9892 cbi PORTD, DIGIT_1_PIN +000025 9100 0064 lds TEMP_REG_A, DISPLAY_DIGIT+3 +000027 d019 rcall DISPLAY_DECODER +000028 dfee rcall USI_TRANSMIT +000029 d01e rcall DELAY +00002a 9892 cbi PORTD, DIGIT_1_PIN -000027 9a93 sbi PORTD, DIGIT_2_PIN -000028 d005 rcall DELAY -000029 9893 cbi PORTD, DIGIT_2_PIN +00002b 9a93 sbi PORTD, DIGIT_2_PIN +00002c 9100 0063 lds TEMP_REG_A, DISPLAY_DIGIT+2 +00002e d012 rcall DISPLAY_DECODER +00002f dfe7 rcall USI_TRANSMIT +000030 d017 rcall DELAY +000031 9893 cbi PORTD, DIGIT_2_PIN -00002a 9a94 sbi PORTD, DIGIT_3_PIN -00002b d002 rcall DELAY -00002c 9894 cbi PORTD, DIGIT_3_PIN +000032 9a94 sbi PORTD, DIGIT_3_PIN +000033 9100 0062 lds TEMP_REG_A, DISPLAY_DIGIT+1 +000035 d00b rcall DISPLAY_DECODER +000036 dfe0 rcall USI_TRANSMIT +000037 d010 rcall DELAY +000038 9894 cbi PORTD, DIGIT_3_PIN - ; sbi PORTD, DIGIT_4_PIN - ; rcall DELAY - ; cbi PORTD, DIGIT_4_PIN -00002d 9508 ret +000039 9a95 sbi PORTD, DIGIT_4_PIN +00003a 9100 0061 lds TEMP_REG_A, DISPLAY_DIGIT +00003c d004 rcall DISPLAY_DECODER +00003d dfd9 rcall USI_TRANSMIT +00003e d009 rcall DELAY +00003f 9895 cbi PORTD, DIGIT_4_PIN +000040 9508 ret + + DISPLAY_DECODER: +000041 ebea ldi ZL, LOW(2*DISPLAY_SYMBOLS) +000042 e0f0 ldi ZH, HIGH(2*DISPLAY_SYMBOLS) + +000043 e010 ldi TEMP_REG_B, 0 +000044 0fe0 add ZL, TEMP_REG_A +000045 1ff1 adc ZH, TEMP_REG_B + +000046 95c8 lpm +000047 9508 ret DELAY: -00002e 930f push r16 -00002f 931f push r17 -000030 94f8 cli -000031 e604 ldi r16, 100 +000048 930f push r16 +000049 931f push r17 +00004a 94f8 cli +00004b e302 ldi r16, 50 _DELAY_1: -000032 ef1f ldi r17, 255 +00004c ef1f ldi r17, 255 _DELAY_2: -000033 951a dec r17 -000034 0000 nop -000035 0000 nop -000036 0000 nop -000037 f7d9 brne _DELAY_2 +00004d 951a dec r17 +00004e 0000 nop +00004f 0000 nop +000050 0000 nop +000051 f7d9 brne _DELAY_2 -000038 950a dec r16 -000039 f7c1 brne _DELAY_1 -00003a 9478 sei +000052 950a dec r16 +000053 f7c1 brne _DELAY_1 +000054 9478 sei -00003b 911f pop r17 -00003c 910f pop r16 -00003d 9508 ret +000055 911f pop r17 +000056 910f pop r16 +000057 9508 ret TOGGLE_POWER_LED: -00003e e400 ldi r16, (1<