three buttons

This commit is contained in:
Sergey Yarkov 2023-06-09 23:05:42 +03:00
parent 9ca3fd9a8c
commit 953b7886db
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
6 changed files with 338 additions and 182 deletions

View File

@ -1,10 +1,12 @@
:020000020000FC :020000020000FC
:020000000FC02F :0200000022C01C
:1000040000C01F931FB729B3232739B326FF03C0AA :1000040000C00F931F931FB729B3232739B324FFCD
:1000140000C0CE9B1CD01FBF1F9118950FED0DBFC4 :1000140006C000C022D007E0CC9B2AD00EC023FF2C
:1000240000E80ABB00E40BBB00E808B900E20BBF20 :1000240006C000C01AD006E0CB9B22D006C022FF37
:100034003FEF78940000FECF0F931F931FEF04E669 :1000340004C013D005E0CA9B1BD01FBF1F910F91B2
:100044000A95F1F71A95D9F71F910F910895F4DFE6 :1000440018950FED0DBF00EE0ABB0CE10BBB00E1F0
:100054000F931F9319B300E810271BBB1F910F9137 :100054000BBF3FEF78940000FECF0F931F931FEF69
:020064000895FD :1000640006E90A95F1F71A95D9F71F910F910895AA
:100074000F931F932F9319B3202F01E0000F2A959C
:0E008400E9F710271BBB2F911F910F910895D4
:00000001FF :00000001FF

View File

@ -1,5 +1,5 @@
AVRASM ver. 2.2.7 main.asm Thu Jun 08 22:45:48 2023 AVRASM ver. 2.2.7 main.asm Fri Jun 09 23:03:44 2023
main.asm(1): Including file 'tn26def.inc' main.asm(1): Including file 'tn26def.inc'
main.asm(1): Including file 'tn26def.inc' main.asm(1): Including file 'tn26def.inc'
@ -548,14 +548,24 @@ main.asm(1): Including file 'tn26def.inc'
; ***** END OF FILE ****************************************************** ; ***** END OF FILE ******************************************************
.LIST .LIST
; **** LABLES **************************************************** ; **** REGISTERS *************************************************
.DEF SW_FLAGS = r20 .DEF SW_FLAGS = r20
.DEF PC_HISTORY = r19 .DEF PC_HISTORY = r19
.EQU LED_PORT = PA7 ; **** LABLES ****************************************************
.EQU SW_PORT = PA6
.EQU LED_PORT = PORTA
.EQU LED_PIN = PINA
.EQU LED_0_PIN = PA7
.EQU LED_1_PIN = PA6
.EQU LED_2_PIN = PA5
.EQU SW_PORT = PORTA
.EQU SW_PIN = PINA
.EQU SW_0_PIN = PA4
.EQU SW_1_PIN = PA3
.EQU SW_2_PIN = PA2
; **** CODE SEGMENT ********************************************** ; **** CODE SEGMENT **********************************************
@ -564,94 +574,123 @@ main.asm(1): Including file 'tn26def.inc'
; **** VECTORS *************************************************** ; **** VECTORS ***************************************************
.ORG 0x00 .ORG 0x00
000000 c00f rjmp RESET_vect 000000 c022 rjmp RESET_vect
.ORG 0x02 .ORG 0x02
000002 c000 rjmp PIN_CHANGE_vect 000002 c000 rjmp PIN_CHANGE_vect
PIN_CHANGE_vect: PIN_CHANGE_vect:
000003 931f push r17 000003 930f push r16
000004 b71f in r17, SREG 000004 931f push r17
000005 b71f in r17, SREG
000005 b329 in r18, PINA 000006 b329 in r18, PINA
000006 2723 eor r18, PC_HISTORY 000007 2723 eor r18, PC_HISTORY
000007 b339 in PC_HISTORY, PINA 000008 b339 in PC_HISTORY, PINA
000008 ff26 sbrs r18, SW_PORT _sw_0_check:
000009 c003 rjmp _sw_exit 000009 ff24 sbrs r18, SW_0_PIN
00000a c000 rjmp _sw_0 00000a c006 rjmp _sw_1_check
00000b c000 rjmp _sw_0_handler
_sw_0: _sw_0_handler:
00000b 9bce sbis PINA, SW_PORT 00000c d022 rcall DEBOUNCE_SW
00000c d01c rcall TOGGLE_LED 00000d e007 ldi r16, LED_0_PIN
; then exit 00000e 9bcc sbis SW_PIN, SW_0_PIN
00000f d02a rcall TOGGLE_LED
000010 c00e rjmp _sw_exit
_sw_1_check:
000011 ff23 sbrs r18, SW_1_PIN
000012 c006 rjmp _sw_2_check
000013 c000 rjmp _sw_1_handler
_sw_1_handler:
000014 d01a rcall DEBOUNCE_SW
000015 e006 ldi r16, LED_1_PIN
000016 9bcb sbis SW_PIN, SW_1_PIN
000017 d022 rcall TOGGLE_LED
000018 c006 rjmp _sw_exit
_sw_2_check:
000019 ff22 sbrs r18, SW_2_PIN
00001a c004 rjmp _sw_exit
_sw_2_handler:
00001b d013 rcall DEBOUNCE_SW
00001c e005 ldi r16, LED_2_PIN
00001d 9bca sbis SW_PIN, SW_2_PIN
00001e d01b rcall TOGGLE_LED
_sw_exit: _sw_exit:
00000d bf1f out SREG, r17 00001f bf1f out SREG, r17
00000e 911f pop r17
00000f 9518 reti 000020 911f pop r17
000021 910f pop r16
000022 9518 reti
RESET_vect: RESET_vect:
000010 ed0f ldi r16, RAMEND 000023 ed0f ldi r16, RAMEND
000011 bf0d out SP, r16 000024 bf0d out SP, r16
MCU_INIT: MCU_INIT:
000012 e800 ldi r16, (1<<LED_PORT) | (0<<SW_PORT) 000025 ee00 ldi r16, (1<<LED_0_PIN) | (1<<LED_1_PIN) | (1<<LED_2_PIN) | (0<<SW_0_PIN) | (0<<SW_1_PIN) | (0<<SW_2_PIN)
000013 bb0a out DDRA, r16 000026 bb0a out DDRA, r16
000014 e400 ldi r16, (1<<SW_PORT) 000027 e10c ldi r16, (1<<SW_0_PIN) | (1<<SW_1_PIN) | (1<<SW_2_PIN)
000015 bb0b out PORTA, r16 000028 bb0b out PORTA, r16
; First, turn off comparator to enable pin change interrupt
000016 e800 ldi r16, (1<<ACD)
000017 b908 out ACSR, r16
; Enable pin change interrupt ; Enable pin change interrupt
000018 e200 ldi r16, (1<<PCIE1) 000029 e100 ldi r16, (1<<PCIE0)
000019 bf0b out GIMSK, r16 00002a bf0b out GIMSK, r16
00001a ef3f ldi PC_HISTORY, 0xff 00002b ef3f ldi PC_HISTORY, 0xff
00001b 9478 sei 00002c 9478 sei
LOOP: LOOP:
00001c 0000 nop 00002d 0000 nop
00001d cffe rjmp LOOP 00002e cffe rjmp LOOP
delay: ; FOR 1 MHz DEBOUNCE_SW: ; FOR 1 MHz
00001e 930f push r16 00002f 930f push r16
00001f 931f push r17 000030 931f push r17
000020 ef1f ldi r17, 255 000031 ef1f ldi r17, 255
_loop_0: _loop_0:
000021 e604 ldi r16, 100 000032 e906 ldi r16, 150
_dec_0: _dec_0:
000022 950a dec r16 000033 950a dec r16
000023 f7f1 brne _dec_0 000034 f7f1 brne _dec_0
_loop_1: _loop_1:
000024 951a dec r17 000035 951a dec r17
000025 f7d9 brne _loop_0 000036 f7d9 brne _loop_0
000026 911f pop r17 000037 911f pop r17
000027 910f pop r16 000038 910f pop r16
000028 9508 ret 000039 9508 ret
TOGGLE_LED: TOGGLE_LED:
000029 dff4 rcall delay 00003a 930f push r16
00002a 930f push r16 00003b 931f push r17
00002b 931f push r17 00003c 932f push r18
00002c b319 in r17, PINA 00003d b319 in r17, PINA
00002d e800 ldi r16, (1<<LED_PORT) 00003e 2f20 mov r18, r16
00002e 2710 eor r17, r16 00003f e001 ldi r16, 0x01
00002f bb1b out PORTA, r17 _toggle_led_shift:
000040 0f00 lsl r16
000041 952a dec r18
000042 f7e9 brne _toggle_led_shift
000043 2710 eor r17, r16
000044 bb1b out PORTA, r17
000030 911f pop r17 000045 912f pop r18
000031 910f pop r16 000046 911f pop r17
000032 9508 ret 000047 910f pop r16
RESOURCE USE INFORMATION RESOURCE USE INFORMATION
@ -671,7 +710,7 @@ counted separately from r26..r31 here.
"ATtiny26" register use summary: "ATtiny26" register use summary:
x : 0 y : 0 z : 0 r0 : 0 r1 : 0 r2 : 0 r3 : 0 r4 : 0 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 r5 : 0 r6 : 0 r7 : 0 r8 : 0 r9 : 0 r10: 0 r11: 0 r12: 0
r13: 0 r14: 0 r15: 0 r16: 18 r17: 13 r18: 3 r19: 3 r20: 0 r13: 0 r14: 0 r15: 0 r16: 23 r17: 13 r18: 9 r19: 3 r20: 0
r21: 0 r22: 0 r23: 0 r24: 0 r25: 0 r26: 0 r27: 0 r28: 0 r21: 0 r22: 0 r23: 0 r24: 0 r25: 0 r26: 0 r27: 0 r28: 0
r29: 0 r30: 0 r31: 0 r29: 0 r30: 0 r31: 0
Registers used: 4 out of 35 (11.4%) Registers used: 4 out of 35 (11.4%)
@ -680,27 +719,27 @@ Registers used: 4 out of 35 (11.4%)
.lds : 0 .sts : 0 adc : 0 add : 0 adiw : 0 and : 0 .lds : 0 .sts : 0 adc : 0 add : 0 adiw : 0 and : 0
andi : 0 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0 andi : 0 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
brcc : 0 brcs : 0 breq : 0 brge : 0 brhc : 0 brhs : 0 brcc : 0 brcs : 0 breq : 0 brge : 0 brhc : 0 brhs : 0
brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0 brne : 2 brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0 brne : 3
brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0 brvs : 0 brpl : 0 brsh : 0 brtc : 0 brts : 0 brvc : 0 brvs : 0
bset : 0 bst : 0 cbi : 0 cbr : 0 clc : 0 clh : 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 cli : 0 cln : 0 clr : 0 cls : 0 clt : 0 clv : 0
clz : 0 com : 0 cp : 0 cpc : 0 cpi : 0 cpse : 0 clz : 0 com : 0 cp : 0 cpc : 0 cpi : 0 cpse : 0
dec : 2 eor : 2 icall : 0 ijmp : 0 in : 4 inc : 0 dec : 3 eor : 2 icall : 0 ijmp : 0 in : 4 inc : 0
ld : 0 ldd : 0 ldi : 9 lds : 0 lpm : 0 lsl : 0 ld : 0 ldd : 0 ldi : 11 lds : 0 lpm : 0 lsl : 1
lsr : 0 mov : 0 neg : 0 nop : 1 or : 0 ori : 0 lsr : 0 mov : 1 neg : 0 nop : 1 or : 0 ori : 0
out : 7 pop : 5 push : 5 rcall : 2 ret : 2 reti : 1 out : 6 pop : 7 push : 7 rcall : 6 ret : 2 reti : 1
rjmp : 5 rol : 0 ror : 0 sbc : 0 sbci : 0 sbi : 0 rjmp : 10 rol : 0 ror : 0 sbc : 0 sbci : 0 sbi : 0
sbic : 0 sbis : 1 sbiw : 0 sbr : 0 sbrc : 0 sbrs : 1 sbic : 0 sbis : 3 sbiw : 0 sbr : 0 sbrc : 0 sbrs : 3
sec : 0 seh : 0 sei : 1 sen : 0 ser : 0 ses : 0 sec : 0 seh : 0 sei : 1 sen : 0 ser : 0 ses : 0
set : 0 sev : 0 sez : 0 sleep : 0 st : 0 std : 0 set : 0 sev : 0 sez : 0 sleep : 0 st : 0 std : 0
sts : 0 sub : 0 subi : 0 swap : 0 tst : 0 wdr : 0 sts : 0 sub : 0 subi : 0 swap : 0 tst : 0 wdr : 0
Instructions used: 16 out of 102 (15.7%) Instructions used: 18 out of 102 (17.6%)
"ATtiny26" memory use summary [bytes]: "ATtiny26" memory use summary [bytes]:
Segment Begin End Code Data Used Size Use% Segment Begin End Code Data Used Size Use%
--------------------------------------------------------------- ---------------------------------------------------------------
[.cseg] 0x000000 0x000066 100 0 100 2048 4.9% [.cseg] 0x000000 0x000092 144 0 144 2048 7.0%
[.dseg] 0x000060 0x000060 0 0 0 128 0.0% [.dseg] 0x000060 0x000060 0 0 0 128 0.0%
[.eseg] 0x000000 0x000000 0 0 0 128 0.0% [.eseg] 0x000000 0x000000 0 0 0 128 0.0%

115
main.asm
View File

@ -1,14 +1,23 @@
.INCLUDE "tn26def.inc" .INCLUDE "tn26def.inc"
.LIST .LIST
; **** LABLES **************************************************** ; **** REGISTERS *************************************************
.DEF SW_FLAGS = r20
.DEF PC_HISTORY = r19 .DEF PC_HISTORY = r19
.EQU LED_PORT = PA7 ; **** LABLES ****************************************************
.EQU SW_PORT = PA6
.EQU LED_PORT = PORTA
.EQU LED_PIN = PINA
.EQU LED_0_PIN = PA7
.EQU LED_1_PIN = PA6
.EQU LED_2_PIN = PA5
.EQU SW_PORT = PORTA
.EQU SW_PIN = PINA
.EQU SW_0_PIN = PA4
.EQU SW_1_PIN = PA3
.EQU SW_2_PIN = PA2
; **** CODE SEGMENT ********************************************** ; **** CODE SEGMENT **********************************************
@ -24,45 +33,67 @@ rjmp RESET_vect
rjmp PIN_CHANGE_vect rjmp PIN_CHANGE_vect
PIN_CHANGE_vect: PIN_CHANGE_vect:
push r16
push r17 push r17
in r17, SREG in r17, SREG
in r18, PINA in r18, PINA
eor r18, PC_HISTORY eor r18, PC_HISTORY
in PC_HISTORY, PINA in PC_HISTORY, PINA
sbrs r18, SW_PORT _sw_0_check:
rjmp _sw_exit sbrs r18, SW_0_PIN
rjmp _sw_0_handler rjmp _sw_1_check
rjmp _sw_0_handler
_sw_0_handler: _sw_0_handler:
sbis PINA, SW_PORT rcall DEBOUNCE_SW
rcall TOGGLE_LED ldi r16, LED_0_PIN
; then exit sbis SW_PIN, SW_0_PIN
rcall TOGGLE_LED
rjmp _sw_exit
_sw_1_check:
sbrs r18, SW_1_PIN
rjmp _sw_2_check
rjmp _sw_1_handler
_sw_1_handler:
rcall DEBOUNCE_SW
ldi r16, LED_1_PIN
sbis SW_PIN, SW_1_PIN
rcall TOGGLE_LED
rjmp _sw_exit
_sw_2_check:
sbrs r18, SW_2_PIN
rjmp _sw_exit
_sw_2_handler:
rcall DEBOUNCE_SW
ldi r16, LED_2_PIN
sbis SW_PIN, SW_2_PIN
rcall TOGGLE_LED
_sw_exit: _sw_exit:
out SREG, r17 out SREG, r17
pop r17 pop r17
pop r16
reti reti
RESET_vect: RESET_vect:
ldi r16, RAMEND ldi r16, RAMEND
out SP, r16 out SP, r16
MCU_INIT: MCU_INIT:
ldi r16, (1<<LED_PORT) | (0<<SW_PORT) ldi r16, (1<<LED_0_PIN) | (1<<LED_1_PIN) | (1<<LED_2_PIN) | (0<<SW_0_PIN) | (0<<SW_1_PIN) | (0<<SW_2_PIN)
out DDRA, r16 out DDRA, r16
ldi r16, (1<<SW_PORT) ldi r16, (1<<SW_0_PIN) | (1<<SW_1_PIN) | (1<<SW_2_PIN)
out PORTA, r16 out PORTA, r16
; First, turn off comparator to enable pin change interrupt (only for tiny26l) ldi r16, (1<<PCIE0)
ldi r16, (1<<ACD)
out ACSR, r16
; Enable pin change interrupt
ldi r16, (1<<PCIE1)
out GIMSK, r16 out GIMSK, r16
ldi PC_HISTORY, 0xff ldi PC_HISTORY, 0xff
@ -71,21 +102,21 @@ MCU_INIT:
LOOP: LOOP:
nop nop
rjmp LOOP rjmp LOOP
delay: ; FOR 1 MHz DEBOUNCE_SW: ; FOR 1 MHz
push r16 push r16
push r17 push r17
ldi r17, 255 ldi r17, 255
_loop_0: _loop_0:
ldi r16, 100 ldi r16, 150
_dec_0: _dec_0:
dec r16 dec r16
brne _dec_0 brne _dec_0
_loop_1: _loop_1:
dec r17 dec r17
brne _loop_0 brne _loop_0
pop r17 pop r17
pop r16 pop r16
@ -94,13 +125,21 @@ ret
TOGGLE_LED: TOGGLE_LED:
push r16 push r16
push r17 push r17
push r18
in r17, PINA in r17, PINA
ldi r16, (1<<LED_PORT) mov r18, r16
ldi r16, 0x01
_toggle_led_shift:
lsl r16
dec r18
brne _toggle_led_shift
eor r17, r16 eor r17, r16
out PORTA, r17 out PORTA, r17
pop r18
pop r17 pop r17
pop r16 pop r16
ret ret

View File

@ -1,6 +1,10 @@
:020000020000FC :020000020000FC
:0200000005C039 :0200000010C02E
:1000040000C000E80BBB18950FED0DBF789400E815 :1000040000C01F931FB729B3232739B320FF04C0AF
:100014000ABB00E40BBB00E20BBF0000FECF00E80C :1000140000C015D0C89B1ED01FBF1F9118950FEDAF
:040024000BBB189565 :100024000DBF00EE0ABB00E008BB01E008BB00E81E
:1000340008B900E30BBF3FEF78940000FECF0F93A5
:100044001F931FEF06E90A95F1F71A95D9F71F9147
:100054000F9108950F931F9319B300E810271BBB4A
:060064001F910F910895A9
:00000001FF :00000001FF

181
main.lst
View File

@ -5,7 +5,7 @@ Path: /home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny26l_push-
Source file: main.asm Source file: main.asm
Hex file: main.hex Hex file: main.hex
Eeprom file: main.eep Eeprom file: main.eep
Compiled: 08.06.2023, 19:30:17 Compiled: 09.06.2023, 21:36:55
Pass: 2 Pass: 2
1: .INCLUDE "tn26def.inc" 1: .INCLUDE "tn26def.inc"
@ -16,75 +16,142 @@ Pass: 2
3: 3:
4: ; **** LABLES **************************************************** 4: ; **** LABLES ****************************************************
5: 5:
6: .EQU LED_PORT = PA7 6: .DEF SW_FLAGS = r20
7: .EQU SW_PORT = PA6 7: .DEF PC_HISTORY = r19
8: 8:
9: 9: .EQU LED_PORT = PA7
10: ; **** CODE SEGMENT ********************************************** 10: .EQU SW_0_PIN = PB0
11: 11:
12: .CSEG 12:
13: 13: ; **** CODE SEGMENT **********************************************
14: ; **** VECTORS *************************************************** 14:
15: .ORG 0x00 15: .CSEG
16: 16:
17: 000000 C005 rjmp RESET_vect 17: ; **** VECTORS ***************************************************
18: 18: .ORG 0x00
19: .ORG $002 19:
20: 20: 000000 C010 rjmp RESET_vect
21: 000002 C000 rjmp PIN_CHANGE_vect 21:
22: 22: .ORG 0x02
23: PIN_CHANGE_vect: 23:
24: ; rcall ENABLE_LED 24: 000002 C000 rjmp PIN_CHANGE_vect
25: 000003 E800 ldi r16, (1<<LED_PORT) 25:
26: 000004 BB0B out PORTA, r16 26: PIN_CHANGE_vect:
27: 000005 9518 reti 27: 000003 931F push r17
28: 28: 000004 B71F in r17, SREG
29: RESET_vect: 29:
30: 000006 ED0F ldi r16, RAMEND 30: 000005 B329 in r18, PINA
31: 000007 BF0D out SP, r16 31: 000006 2723 eor r18, PC_HISTORY
32: 32: 000007 B339 in PC_HISTORY, PINA
33: 000008 9478 sei 33:
34: 34: 000008 FF20 sbrs r18, SW_0_PIN
35: MCU_INIT: 35: 000009 C004 rjmp _sw_exit
36: 000009 E800 ldi r16, (1<<LED_PORT) | (0<<SW_PORT) 36: 00000A C000 rjmp _sw_0_handler
37: 00000A BB0A out DDRA, r16 37:
38: 38: _sw_0_handler:
39: 00000B E400 ldi r16, (1<<SW_PORT) 39: 00000B D015 rcall delay
40: 00000C BB0B out PORTA, r16 40: 00000C 9BC8 sbis PINA, SW_0_PIN
41: 41: 00000D D01E rcall TOGGLE_LED
42: 00000D E200 ldi r16, (1<<PCIE1) 42: ; then exit
43: 00000E BF0B out GIMSK, r16 43:
44: 44: _sw_exit:
45: 45: 00000E BF1F out SREG, r17
46: LOOP: 46: 00000F 911F pop r17
47: 00000F 0000 nop 47: 000010 9518 reti
48: 000010 CFFE rjmp LOOP 48:
49: 49: RESET_vect:
50: ENABLE_LED: 50: 000011 ED0F ldi r16, RAMEND
51: 000011 E800 ldi r16, (1<<LED_PORT) 51: 000012 BF0D out SP, r16
52: 000012 BB0B out PORTA, r16 52:
53: 000013 9518 reti 53:
54: MCU_INIT:
55: 000013 EE00 ldi r16, (1<<PA7) | (1<<PA6) | (1<<PA5)
56: 000014 BB0A out DDRA, r16
57:
58: 000015 E000 ldi r16, (0<<PB0)
59: 000016 BB08 out PORTB, r16
60:
61: 000017 E001 ldi r16, (1<<PB0)
62: 000018 BB08 out PORTB, r16
63:
64: ; First, turn off comparator to enable pin change interrupt (only for tiny26l)
65: 000019 E800 ldi r16, (1<<ACD)
66: 00001A B908 out ACSR, r16
67:
68: ; Enable pin change interrupt
69: 00001B E300 ldi r16, (1<<PCIE0) | (1<<PCIE1)
70: 00001C BF0B out GIMSK, r16
71:
72: 00001D EF3F ldi PC_HISTORY, 0xff
73:
74: 00001E 9478 sei
75:
76: LOOP:
77: ; rcall TOGGLE_LED
78: ; rcall delay
79: 00001F 0000 nop
80: 000020 CFFE rjmp LOOP
81:
82: delay: ; FOR 1 MHz
83: 000021 930F push r16
84: 000022 931F push r17
85:
86: 000023 EF1F ldi r17, 255
87: _loop_0:
88: 000024 E906 ldi r16, 150
89: _dec_0:
90: 000025 950A dec r16
91: 000026 F7F1 brne _dec_0
92: _loop_1:
93: 000027 951A dec r17
94: 000028 F7D9 brne _loop_0
95:
96: 000029 911F pop r17
97: 00002A 910F pop r16
98: 00002B 9508 ret
99:
100: TOGGLE_LED:
101: 00002C 930F push r16
102: 00002D 931F push r17
103:
104: 00002E B319 in r17, PINA
105:
106: 00002F E800 ldi r16, (1<<PA7)
107: 000030 2710 eor r17, r16
108: 000031 BB1B out PORTA, r17
109:
110: 000032 911F pop r17
111: 000033 910F pop r16
112: 000034 9508 ret
List of symbols: List of symbols:
Type nDef nUsed Decimalval Hexval Name Type nDef nUsed Decimalval Hexval Name
T 1 1 27 1B ATTINY26 T 1 1 27 1B ATTINY26
L 1 2 3 03 PIN_CHANGE_VECT L 1 2 3 03 PIN_CHANGE_VECT
L 1 2 6 06 RESET_VECT L 1 2 11 0B _SW_0_HANDLER
L 1 0 9 09 MCU_INIT L 1 2 14 0E _SW_EXIT
L 1 2 15 0F LOOP L 1 2 17 11 RESET_VECT
L 1 0 17 11 ENABLE_LED L 1 0 19 13 MCU_INIT
L 1 2 31 1F LOOP
L 1 2 33 21 DELAY
L 1 2 36 24 _LOOP_0
L 1 2 37 25 _DEC_0
L 1 0 39 27 _LOOP_1
L 1 2 44 2C TOGGLE_LED
R 1 0 20 14 SW_FLAGS
R 1 3 19 13 PC_HISTORY
C 1 0 23 17 NOW_Y C 1 0 23 17 NOW_Y
C 1 0 6 06 NOW_M C 1 0 6 06 NOW_M
C 1 0 8 08 NOW_D C 1 0 9 09 NOW_D
C 1 0 45085 B01D NOW_I C 1 0 45086 B01E NOW_I
C 1 3 7 07 LED_PORT C 1 0 7 07 LED_PORT
C 1 2 6 06 SW_PORT C 1 2 0 00 SW_0_PIN
No macros. No macros.
Program : 19 words. Program : 52 words.
Constants : 0 words. Constants : 0 words.
Total program memory: 19 words. Total program memory: 52 words.
Eeprom space : 0 bytes. Eeprom space : 0 bytes.
Data segment : 0 bytes. Data segment : 0 bytes.
Compilation completed, no errors. Compilation completed, no errors.
Compilation ended 08.06.2023, 19:30:17 Compilation ended 09.06.2023, 21:36:55

View File

@ -1,8 +1,13 @@
/avr_sim_project_file /avr_sim_project_file
/home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny26l_push-to-toggle/main.asm /home/sergeyyarkov/Documents/Projects/Firmwares/AVR/attiny26l_push-to-toggle/main.asm
mainasm=main.asm mainasm=main.asm
file=main.lst,60,1,1
file=main.asm,1,1,1 file=main.asm,1,1,1
clock=0, Div8 clock=1000000, Div8
device-type=ATtiny26 device-type=ATtiny26
windows=acepstwz device-package=32-pin-MLF
alert1=0,0,-1,0,,0,0 windows=acePstwz
alert1=0,0,-1,-1,,0,0
adcvref=5.0000
adcvop=5.0000
adcch=0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000,0.0000