mirror of
https://github.com/sergeyyarkov/attiny2313a_thermostat.git
synced 2026-10-11 10:18:56 +03:00
some delay
This commit is contained in:
parent
00dffd63fd
commit
0f4110bfd4
56
firmware.asm
56
firmware.asm
@ -7,7 +7,7 @@
|
||||
; Package: SOIC-20W_7.5x12.8mm_P1.27mm
|
||||
; Assembler: AVR macro assembler 2.2.7
|
||||
; Clock frequency: 12 MHz External Crystal Oscillator
|
||||
; Fuses: lfuse: , hfuse: , efuse: , lock:
|
||||
; Fuses: lfuse: 0x4F, hfuse: 0x9F, efuse: 0xFF, lock: 0xFF
|
||||
;
|
||||
; Written by Sergey Yarkov 22.01.2023
|
||||
|
||||
@ -16,12 +16,24 @@
|
||||
|
||||
.DEF tmp_r_a = r16
|
||||
|
||||
.DSEG
|
||||
;========================================;
|
||||
; LABELS ;
|
||||
;========================================;
|
||||
|
||||
.EQU LED_POWER_PORT = PD6
|
||||
|
||||
|
||||
;========================================;
|
||||
; CODE SEGMENT ;
|
||||
;========================================;
|
||||
|
||||
.CSEG
|
||||
.ORG 0x00
|
||||
|
||||
; MCU VECTORS
|
||||
;========================================;
|
||||
; VECTORS ;
|
||||
;========================================;
|
||||
|
||||
rjmp RESET_vect ; Program start at RESET vector
|
||||
reti ; External Interrupt Request 0 / inactive
|
||||
reti ; External Interrupt Request 1 / inactive
|
||||
@ -55,17 +67,47 @@ MCU_INIT:
|
||||
rjmp LOOP
|
||||
|
||||
INIT_PORTS:
|
||||
ldi r16, (1<<PD6)
|
||||
ldi r16, (1<<LED_POWER_PORT)
|
||||
out DDRD, r16
|
||||
out PORTD, r16
|
||||
ret
|
||||
|
||||
;
|
||||
; MAIN PROGRAM LOOP
|
||||
;========================================;
|
||||
; MAIN PROGRAM LOOP ;
|
||||
;========================================;
|
||||
|
||||
LOOP:
|
||||
nop
|
||||
ldi r16, (1<<LED_POWER_PORT)
|
||||
out PORTD, r16
|
||||
|
||||
rcall DELAY
|
||||
rcall DELAY
|
||||
|
||||
ldi r16, (0<<LED_POWER_PORT)
|
||||
out PORTD, r16
|
||||
|
||||
rcall DELAY
|
||||
rcall DELAY
|
||||
|
||||
rjmp LOOP
|
||||
|
||||
DELAY:
|
||||
ldi r16, 255 ; 1 clock cycle
|
||||
_DEL_1:
|
||||
ldi r17, 255 ; 1 clock cycle
|
||||
_DEL_2:
|
||||
dec r17 ; 1 clock cycle
|
||||
nop ; 1 clock cycle
|
||||
brne _DEL_2 ; 2 clock cycle when jumping / 1 when continue
|
||||
|
||||
dec r16 ; 1 clock cycle
|
||||
brne _DEL_1 ; 2 clock cycle when jumping / 1 when continue
|
||||
ret
|
||||
|
||||
INFO: .DB "AVR Thermostat. Written by Sergey Yarkov 22.01.2023"
|
||||
|
||||
;========================================;
|
||||
; EEPROM SEGMENT ;
|
||||
;========================================;
|
||||
|
||||
.ESEG
|
||||
11
firmware.hex
11
firmware.hex
@ -2,9 +2,10 @@
|
||||
:1000000014C0189518951895189518951895189561
|
||||
:100010001895189518951895189518951895189578
|
||||
:10002000189518951895189518950FED0DBF01D0D6
|
||||
:1000300004C000E401BB02BB08950000FECF41569E
|
||||
:100040005220546865726D6F737461742E205772FC
|
||||
:10005000697474656E2062792053657267657920D2
|
||||
:100060005961726B6F762032322E30312E3230323F
|
||||
:0200700033005B
|
||||
:1000300004C000E401BB02BB089500E402BB06D08B
|
||||
:1000400005D000E002BB02D001D0F7CF0FEF1FEFC9
|
||||
:100050001A950000E9F70A95D1F708954156522004
|
||||
:10006000546865726D6F737461742E205772697471
|
||||
:1000700074656E20627920536572676579205961D5
|
||||
:10008000726B6F762032322E30312E3230323300A6
|
||||
:00000001FF
|
||||
|
||||
134
firmware.lss
134
firmware.lss
@ -1,5 +1,5 @@
|
||||
|
||||
AVRASM ver. 2.2.7 firmware.asm Sun Jan 22 20:26:00 2023
|
||||
AVRASM ver. 2.2.7 firmware.asm Tue Jan 24 01:18:37 2023
|
||||
|
||||
firmware.asm(14): Including file 'tn2313Adef.inc'
|
||||
firmware.asm(14): Including file 'tn2313Adef.inc'
|
||||
@ -13,7 +13,7 @@ firmware.asm(14): Including file 'tn2313Adef.inc'
|
||||
; Package: SOIC-20W_7.5x12.8mm_P1.27mm
|
||||
; Assembler: AVR macro assembler 2.2.7
|
||||
; Clock frequency: 12 MHz External Crystal Oscillator
|
||||
; Fuses: lfuse: , hfuse: , efuse: , lock:
|
||||
; Fuses: lfuse: 0x4F, hfuse: 0x9F, efuse: 0xFF, lock: 0xFF
|
||||
;
|
||||
; Written by Sergey Yarkov 22.01.2023
|
||||
|
||||
@ -720,12 +720,24 @@ firmware.asm(14): Including file 'tn2313Adef.inc'
|
||||
|
||||
.DEF tmp_r_a = r16
|
||||
|
||||
.DSEG
|
||||
;========================================;
|
||||
; LABELS ;
|
||||
;========================================;
|
||||
|
||||
.EQU LED_POWER_PORT = PD6
|
||||
|
||||
|
||||
;========================================;
|
||||
; CODE SEGMENT ;
|
||||
;========================================;
|
||||
|
||||
.CSEG
|
||||
.ORG 0x00
|
||||
|
||||
; MCU VECTORS
|
||||
;========================================;
|
||||
; VECTORS ;
|
||||
;========================================;
|
||||
|
||||
000000 c014 rjmp RESET_vect ; Program start at RESET vector
|
||||
000001 9518 reti ; External Interrupt Request 0 / inactive
|
||||
000002 9518 reti ; External Interrupt Request 1 / inactive
|
||||
@ -759,44 +771,74 @@ firmware.asm(14): Including file 'tn2313Adef.inc'
|
||||
000018 c004 rjmp LOOP
|
||||
|
||||
INIT_PORTS:
|
||||
000019 e400 ldi r16, (1<<PD6)
|
||||
000019 e400 ldi r16, (1<<LED_POWER_PORT)
|
||||
00001a bb01 out DDRD, r16
|
||||
00001b bb02 out PORTD, r16
|
||||
00001c 9508 ret
|
||||
|
||||
;
|
||||
; MAIN PROGRAM LOOP
|
||||
LOOP:
|
||||
00001d 0000 nop
|
||||
00001e cffe rjmp LOOP
|
||||
;========================================;
|
||||
; MAIN PROGRAM LOOP ;
|
||||
;========================================;
|
||||
|
||||
00001f 5641
|
||||
000020 2052
|
||||
000021 6854
|
||||
000022 7265
|
||||
000023 6f6d
|
||||
000024 7473
|
||||
000025 7461
|
||||
000026 202e
|
||||
000027 7257
|
||||
000028 7469
|
||||
000029 6574
|
||||
00002a 206e
|
||||
00002b 7962
|
||||
00002c 5320
|
||||
00002d 7265
|
||||
00002e 6567
|
||||
00002f 2079
|
||||
000030 6159
|
||||
000031 6b72
|
||||
000032 766f
|
||||
000033 3220
|
||||
000034 2e32
|
||||
000035 3130
|
||||
000036 322e
|
||||
000037 3230
|
||||
firmware.asm(69): warning: .cseg .db misalignment - padding zero byte
|
||||
000038 0033 INFO: .DB "AVR Thermostat. Written by Sergey Yarkov 22.01.2023"
|
||||
LOOP:
|
||||
00001d e400 ldi r16, (1<<LED_POWER_PORT)
|
||||
00001e bb02 out PORTD, r16
|
||||
|
||||
00001f d006 rcall DELAY
|
||||
000020 d005 rcall DELAY
|
||||
|
||||
000021 e000 ldi r16, (0<<LED_POWER_PORT)
|
||||
000022 bb02 out PORTD, r16
|
||||
|
||||
000023 d002 rcall DELAY
|
||||
000024 d001 rcall DELAY
|
||||
|
||||
000025 cff7 rjmp LOOP
|
||||
|
||||
DELAY:
|
||||
000026 ef0f ldi r16, 255 ; 1 clock cycle
|
||||
_DEL_1:
|
||||
000027 ef1f ldi r17, 255 ; 1 clock cycle
|
||||
_DEL_2:
|
||||
000028 951a dec r17 ; 1 clock cycle
|
||||
000029 0000 nop ; 1 clock cycle
|
||||
00002a f7e9 brne _DEL_2 ; 2 clock cycle when jumping / 1 when continue
|
||||
|
||||
00002b 950a dec r16 ; 1 clock cycle
|
||||
00002c f7d1 brne _DEL_1 ; 2 clock cycle when jumping / 1 when continue
|
||||
00002d 9508 ret
|
||||
|
||||
00002e 5641
|
||||
00002f 2052
|
||||
000030 6854
|
||||
000031 7265
|
||||
000032 6f6d
|
||||
000033 7473
|
||||
000034 7461
|
||||
000035 202e
|
||||
000036 7257
|
||||
000037 7469
|
||||
000038 6574
|
||||
000039 206e
|
||||
00003a 7962
|
||||
00003b 5320
|
||||
00003c 7265
|
||||
00003d 6567
|
||||
00003e 2079
|
||||
00003f 6159
|
||||
000040 6b72
|
||||
000041 766f
|
||||
000042 3220
|
||||
000043 2e32
|
||||
000044 3130
|
||||
000045 322e
|
||||
000046 3230
|
||||
firmware.asm(107): warning: .cseg .db misalignment - padding zero byte
|
||||
000047 0033 INFO: .DB "AVR Thermostat. Written by Sergey Yarkov 22.01.2023"
|
||||
|
||||
;========================================;
|
||||
; EEPROM SEGMENT ;
|
||||
;========================================;
|
||||
|
||||
|
||||
|
||||
@ -817,36 +859,36 @@ counted separately from r26..r31 here.
|
||||
"ATtiny2313A" register use summary:
|
||||
x : 0 y : 0 z : 0 r0 : 0 r1 : 0 r2 : 0 r3 : 0 r4 : 0
|
||||
r5 : 0 r6 : 0 r7 : 0 r8 : 0 r9 : 0 r10: 0 r11: 0 r12: 0
|
||||
r13: 0 r14: 0 r15: 0 r16: 5 r17: 0 r18: 0 r19: 0 r20: 0
|
||||
r13: 0 r14: 0 r15: 0 r16: 11 r17: 2 r18: 0 r19: 0 r20: 0
|
||||
r21: 0 r22: 0 r23: 0 r24: 0 r25: 0 r26: 0 r27: 0 r28: 0
|
||||
r29: 0 r30: 0 r31: 0
|
||||
Registers used: 1 out of 35 (2.9%)
|
||||
Registers used: 2 out of 35 (5.7%)
|
||||
|
||||
"ATtiny2313A" instruction use summary:
|
||||
.lds : 0 .sts : 0 adc : 0 add : 0 adiw : 0 and : 0
|
||||
andi : 0 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
|
||||
brcc : 0 brcs : 0 break : 0 breq : 0 brge : 0 brhc : 0
|
||||
brhs : 0 brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0
|
||||
brne : 0 brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0
|
||||
brne : 2 brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0
|
||||
brvs : 0 bset : 0 bst : 0 cbi : 0 cbr : 0 clc : 0
|
||||
clh : 0 cli : 0 cln : 0 clr : 0 cls : 0 clt : 0
|
||||
clv : 0 clz : 0 com : 0 cp : 0 cpc : 0 cpi : 0
|
||||
cpse : 0 dec : 0 eor : 0 icall : 0 ijmp : 0 in : 0
|
||||
inc : 0 ld : 0 ldd : 0 ldi : 2 lds : 0 lpm : 0
|
||||
cpse : 0 dec : 2 eor : 0 icall : 0 ijmp : 0 in : 0
|
||||
inc : 0 ld : 0 ldd : 0 ldi : 6 lds : 0 lpm : 0
|
||||
lsl : 0 lsr : 0 mov : 0 movw : 0 neg : 0 nop : 1
|
||||
or : 0 ori : 0 out : 3 pop : 0 push : 0 rcall : 1
|
||||
ret : 1 reti : 20 rjmp : 3 rol : 0 ror : 0 sbc : 0
|
||||
or : 0 ori : 0 out : 5 pop : 0 push : 0 rcall : 5
|
||||
ret : 2 reti : 20 rjmp : 3 rol : 0 ror : 0 sbc : 0
|
||||
sbci : 0 sbi : 0 sbic : 0 sbis : 0 sbiw : 0 sbr : 0
|
||||
sbrc : 0 sbrs : 0 sec : 0 seh : 0 sei : 0 sen : 0
|
||||
ser : 0 ses : 0 set : 0 sev : 0 sez : 0 sleep : 0
|
||||
spm : 0 st : 0 std : 0 sts : 0 sub : 0 subi : 0
|
||||
swap : 0 tst : 0 wdr : 0
|
||||
Instructions used: 7 out of 105 (6.7%)
|
||||
Instructions used: 9 out of 105 (8.6%)
|
||||
|
||||
"ATtiny2313A" memory use summary [bytes]:
|
||||
Segment Begin End Code Data Used Size Use%
|
||||
---------------------------------------------------------------
|
||||
[.cseg] 0x000000 0x000072 62 52 114 2048 5.6%
|
||||
[.cseg] 0x000000 0x000090 92 52 144 2048 7.0%
|
||||
[.dseg] 0x000060 0x000060 0 0 0 128 0.0%
|
||||
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
|
||||
|
||||
|
||||
163
firmware.lst
Normal file
163
firmware.lst
Normal file
@ -0,0 +1,163 @@
|
||||
gavrasm Gerd's AVR assembler version 5.4 (C)2022 by DG4FAC
|
||||
----------------------------------------------------------
|
||||
|
||||
Path: /home/sergeyyarkov/Documents/Applications/attiny2313a_thermostat/
|
||||
Source file: firmware.asm
|
||||
Hex file: firmware.hex
|
||||
Eeprom file: firmware.eep
|
||||
Compiled: 24.01.2023, 01:15:04
|
||||
Pass: 2
|
||||
|
||||
1: ;
|
||||
2: ; Project name: thermostat
|
||||
3: ; Description: Electronic thermostat on AVR Microcontroller
|
||||
4: ; Source code: https://github.com/sergeyyarkov/attiny2313a_thermostat
|
||||
5: ; Device: ATtiny2313A
|
||||
6: ; Device Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/doc8246.pdf
|
||||
7: ; Package: SOIC-20W_7.5x12.8mm_P1.27mm
|
||||
8: ; Assembler: AVR macro assembler 2.2.7
|
||||
9: ; Clock frequency: 12 MHz External Crystal Oscillator
|
||||
10: ; Fuses: lfuse: 0x4F, hfuse: 0x9F, efuse: 0xFF, lock: 0xFF
|
||||
11: ;
|
||||
12: ; Written by Sergey Yarkov 22.01.2023
|
||||
13:
|
||||
14: .INCLUDE "tn2313Adef.inc"
|
||||
-> Warning 009: Include defs not necessary, using internal values!
|
||||
File: /home/sergeyyarkov/Documents/Applications/attiny2313a_thermostat/firmware.asm, Line: 14
|
||||
Source line: .INCLUDE "tn2313Adef.inc"
|
||||
15: .LIST
|
||||
16:
|
||||
17: .DEF tmp_r_a = r16
|
||||
18:
|
||||
19: ;========================================;
|
||||
20: ; LABELS ;
|
||||
21: ;========================================;
|
||||
22:
|
||||
23: .EQU LED_POWER_PORT = PD6
|
||||
24:
|
||||
25:
|
||||
26: ;========================================;
|
||||
27: ; CODE SEGMENT ;
|
||||
28: ;========================================;
|
||||
29:
|
||||
30: .CSEG
|
||||
31: .ORG 0x00
|
||||
32:
|
||||
33: ;========================================;
|
||||
34: ; VECTORS ;
|
||||
35: ;========================================;
|
||||
36:
|
||||
37: 000000 C014 rjmp RESET_vect ; Program start at RESET vector
|
||||
38: 000001 9518 reti ; External Interrupt Request 0 / inactive
|
||||
39: 000002 9518 reti ; External Interrupt Request 1 / inactive
|
||||
40: 000003 9518 reti ; Timer/Counter1 Capture Event / inactive
|
||||
41: 000004 9518 reti ; Timer/Counter1 Compare Match A / inactive
|
||||
42: 000005 9518 reti ; Timer/Counter1 Overflow / inactive
|
||||
43: 000006 9518 reti ; Timer/Counter0 Overflow / inactive
|
||||
44: 000007 9518 reti ; USART0, Rx Complete / inactive
|
||||
45: 000008 9518 reti ; USART0 Data Register Empty / inactive
|
||||
46: 000009 9518 reti ; USART0, Tx Complete / inactive
|
||||
47: 00000A 9518 reti ; Analog Comparator / inactive
|
||||
48: 00000B 9518 reti ; Pin Change Interrupt Request 0/ inactive
|
||||
49: 00000C 9518 reti ; Timer/Counter1 Compare Match B / inactive
|
||||
50: 00000D 9518 reti ; Timer/Counter0 Compare Match A / inactive
|
||||
51: 00000E 9518 reti ; Timer/Counter0 Compare Match B / inactive
|
||||
52: 00000F 9518 reti ; USI Start Condition/ inactive
|
||||
53: 000010 9518 reti ; USI Overflow / inactive
|
||||
54: 000011 9518 reti ; EEPROM Ready/ inactive
|
||||
55: 000012 9518 reti ; Watchdog Timer Overflow / inactive
|
||||
56: 000013 9518 reti ; Pin Change Interrupt Request 1 / inactive
|
||||
57: 000014 9518 reti ; Pin Change Interrupt Request 2 / inactive
|
||||
58:
|
||||
59: RESET_vect:
|
||||
60: ;
|
||||
61: ; INIT STACK POINTER
|
||||
62: 000015 ED0F ldi tmp_r_a, low(RAMEND)
|
||||
63: 000016 BF0D out SPL, tmp_r_a
|
||||
64:
|
||||
65: MCU_INIT:
|
||||
66: 000017 D001 rcall INIT_PORTS
|
||||
67: 000018 C004 rjmp LOOP
|
||||
68:
|
||||
69: INIT_PORTS:
|
||||
70: 000019 E400 ldi r16, (1<<LED_POWER_PORT)
|
||||
71: 00001A BB01 out DDRD, r16
|
||||
72: 00001B BB02 out PORTD, r16
|
||||
73: 00001C 9508 ret
|
||||
74:
|
||||
75: ;========================================;
|
||||
76: ; MAIN PROGRAM LOOP ;
|
||||
77: ;========================================;
|
||||
78:
|
||||
79: LOOP:
|
||||
80: 00001D E400 ldi r16, (1<<LED_POWER_PORT)
|
||||
81: 00001E BB02 out PORTD, r16
|
||||
82:
|
||||
83: 00001F D006 rcall DELAY
|
||||
84: 000020 D005 rcall DELAY
|
||||
85:
|
||||
86: 000021 E000 ldi r16, (0<<LED_POWER_PORT)
|
||||
87: 000022 BB02 out PORTD, r16
|
||||
88:
|
||||
89: 000023 D002 rcall DELAY
|
||||
90: 000024 D001 rcall DELAY
|
||||
91:
|
||||
92: 000025 CFF7 rjmp LOOP
|
||||
93:
|
||||
94: DELAY:
|
||||
95: 000026 E302 ldi r16, 50 ; 1 clock cycle
|
||||
96: _DEL_1:
|
||||
97: 000027 EF1F ldi r17, 255 ; 1 clock cycle
|
||||
98: _DEL_2:
|
||||
99: 000028 951A dec r17 ; 1 clock cycle
|
||||
100: 000029 0000 nop ; 1 clock cycle
|
||||
101: 00002A F7E9 brne _DEL_2 ; 2 clock cycle when jumping / 1 when continue
|
||||
102:
|
||||
103: 00002B 950A dec r16 ; 1 clock cycle
|
||||
104: 00002C F7D1 brne _DEL_1 ; 2 clock cycle when jumping / 1 when continue
|
||||
105: 00002D 9508 ret
|
||||
106:
|
||||
107: INFO: .DB "AVR Thermostat. Written by Sergey Yarkov 22.01.2023"
|
||||
-> Warning 004: Number of bytes on line is odd, added 00 to fit program memory!
|
||||
File: /home/sergeyyarkov/Documents/Applications/attiny2313a_thermostat/firmware.asm, Line: 107
|
||||
Source line: INFO: .DB "AVR Thermostat. Written by Sergey Yarkov 22.01.2023"
|
||||
00002E 5641 2052 4854 5245
|
||||
000032 4F4D 5453 5441 202E
|
||||
000036 5257 5449 4554 204E
|
||||
00003A 5942 5320 5245 4547
|
||||
00003E 2059 4159 4B52 564F
|
||||
000042 3220 2E32 3130 322E
|
||||
000046 3230 0033
|
||||
108:
|
||||
109: ;========================================;
|
||||
110: ; EEPROM SEGMENT ;
|
||||
111: ;========================================;
|
||||
112:
|
||||
113: .ESEG
|
||||
|
||||
List of symbols:
|
||||
Type nDef nUsed Decimalval Hexval Name
|
||||
T 1 1 89 59 ATTINY2313A
|
||||
L 1 2 21 15 RESET_VECT
|
||||
L 1 0 23 17 MCU_INIT
|
||||
L 1 2 25 19 INIT_PORTS
|
||||
L 1 4 29 1D LOOP
|
||||
L 1 8 38 26 DELAY
|
||||
L 1 2 39 27 _DEL_1
|
||||
L 1 2 40 28 _DEL_2
|
||||
L 1 0 46 2E INFO
|
||||
R 1 2 16 10 TMP_R_A
|
||||
C 1 0 23 17 NOW_Y
|
||||
C 1 0 1 01 NOW_M
|
||||
C 1 0 24 18 NOW_D
|
||||
C 1 0 44950 AF96 NOW_I
|
||||
C 1 3 6 06 LED_POWER_PORT
|
||||
No macros.
|
||||
|
||||
Program : 46 words.
|
||||
Constants : 26 words.
|
||||
Total program memory: 72 words.
|
||||
Eeprom space : 0 bytes.
|
||||
Data segment : 0 bytes.
|
||||
Compilation completed, no errors.
|
||||
Compilation ended 24.01.2023, 01:15:04
|
||||
11
firmware.pro
Normal file
11
firmware.pro
Normal file
@ -0,0 +1,11 @@
|
||||
/avr_sim_project_file
|
||||
/home/sergeyyarkov/Documents/Applications/attiny2313a_thermostat/firmware.asm
|
||||
mainasm=firmware.asm
|
||||
file=firmware.lst,98,9,55
|
||||
file=firmware.asm,1,1,1
|
||||
clock=12000000, Div8
|
||||
device-type=ATtiny2313A
|
||||
device-package=20-pin-PDIP_SOIC
|
||||
include=firmware.asm B89
|
||||
windows=acepstwz
|
||||
alert1=0,0,-1,-1,,0,0
|
||||
Loading…
x
Reference in New Issue
Block a user