mirror of
https://github.com/sergeyyarkov/attiny24a_memory-led-game.git
synced 2026-10-11 10:18:58 +03:00
feat: setup interrupt vectors
This commit is contained in:
parent
850fe2a25d
commit
b57e406522
39
firmware.asm
39
firmware.asm
@ -85,14 +85,6 @@
|
||||
pop r16
|
||||
.endm
|
||||
|
||||
.macro clr_btn_flag
|
||||
push r16
|
||||
lds r16, BTN_FLAGS_ADDRESS
|
||||
cbr r16, @0
|
||||
sts BTN_FLAGS_ADDRESS, r16
|
||||
pop r16
|
||||
.endm
|
||||
|
||||
.dseg ; Data segment
|
||||
.org SRAM_START
|
||||
|
||||
@ -108,12 +100,29 @@ BTN_FLAGS_ADDRESS: .byte 0x01
|
||||
.cseg ; Code segment
|
||||
.org 0x00 ; Start program at 0x00
|
||||
|
||||
rjmp start
|
||||
rjmp PCINT4_ISR
|
||||
;
|
||||
; Setup vectors
|
||||
rjmp start ; Program start at RESET vector
|
||||
reti ; External Interrupt Request 0
|
||||
rjmp PCINT0_ISR ; Pin Change Interrupt Request 0 / active
|
||||
reti ; Pin Change Interrupt Request 1 / inactive
|
||||
reti ; Watchdog Time-out / inactive
|
||||
reti ; Timer/Counter1 Capture Event / inactive
|
||||
reti ; Timer/Counter1 Compare Match A / inactive
|
||||
reti ; Timer/Counter1 Compare Match B / inactive
|
||||
reti ; Timer/Counter1 Overflow / inactive
|
||||
reti ; Timer/Counter0 Compare Match A / inactive
|
||||
reti ; Timer/Counter0 Compare Match B / inactive
|
||||
reti ; Timer/Counter0 Overflow / inactive
|
||||
reti ; Analog Comparator / inactive
|
||||
reti ; ADC Conversion Complete / inactive
|
||||
reti ; EEPROM Ready / inactive
|
||||
reti ; USI START / inactive
|
||||
reti ; USI Overflow / inactive
|
||||
|
||||
;
|
||||
; Interrupt service routines
|
||||
PCINT4_ISR: ; First button
|
||||
PCINT0_ISR: ; Button handlers there
|
||||
set_btn_flag 0x01
|
||||
reti
|
||||
|
||||
@ -216,8 +225,6 @@ delay_before_start:
|
||||
ret
|
||||
|
||||
init_interrupts:
|
||||
push r16
|
||||
|
||||
;
|
||||
; Enable Port Change Interrupt
|
||||
ldi r16, (1<<PCIE0)
|
||||
@ -230,13 +237,9 @@ init_interrupts:
|
||||
clr r16
|
||||
|
||||
sei ; Enable Global Interrupts
|
||||
|
||||
pop r16
|
||||
ret
|
||||
|
||||
init_ports: ; Init MCU ports
|
||||
push r16
|
||||
|
||||
; Setup PORTA
|
||||
ldi r16, 0x0f
|
||||
out DDRA, r16 ; Set directions of leds and buttons
|
||||
@ -246,8 +249,6 @@ init_ports: ; Init MCU ports
|
||||
; Setup PORTB
|
||||
sbi DDRB, BUZZ_PIN ; Set direction of buzzer pin to output
|
||||
cbi PORTB, BUZZ_PIN ; Set low signal on buzzer
|
||||
|
||||
pop r16
|
||||
ret
|
||||
|
||||
delay_50ms: ; For 1MHz frequency
|
||||
|
||||
45
firmware.hex
45
firmware.hex
@ -1,24 +1,25 @@
|
||||
:020000020000FC
|
||||
:100000000AC000C00F9301E0009362000F911895A1
|
||||
:1000100020E0209362000FED0DBF0F930091600070
|
||||
:10002000009361000F9301E0009360000F910F9126
|
||||
:1000300000916000013061F441D00F9300916000A5
|
||||
:10004000009361000F9302E0009360000F910F9105
|
||||
:10005000023041F420916200213019F4DA9A4AD03A
|
||||
:1000600001C0DA98033001F4043001F4E1CF1F93AA
|
||||
:100070002F933F934F934BB30F9301EF0BBB0F9114
|
||||
:1000800039D011E033E020EF110F210F2BBB32D01C
|
||||
:100090003A95C9F70F9308EF0BBB0F912BD018E0DF
|
||||
:1000A00033E020EF1695210F2BBB24D03A95C9F7EA
|
||||
:1000B0004BBB4F913F912F911F91089512D008D0C3
|
||||
:1000C00001D0089516E0D3DF1A95E9F71FD00895FF
|
||||
:1000D0000F9300E10BBF00EF02BB002778940F9154
|
||||
:1000E00008950F930FE00ABB02950BBBBA9AC29812
|
||||
:1000F0000F9108952F933F9321E43FEE3A95F1F746
|
||||
:100100002A95E1F700003F912F9108958F939F93D7
|
||||
:1001100024E683EC99E00197F1F72A95D1F724E6DC
|
||||
:100120009F918F9108954D656D6F7279206C656414
|
||||
:100130002067616D652E205772697474656E206248
|
||||
:100140007920536572676579205961726B6F7620EB
|
||||
:0A01500032372E30392E32303231B2
|
||||
:1000000019C018950EC0189518951895189518953B
|
||||
:100010001895189518951895189518951895189578
|
||||
:1000200018950F9301E0009362000F91189520E05E
|
||||
:10003000209362000FED0DBF0F93009160000093BD
|
||||
:1000400061000F9301E0009360000F910F91009108
|
||||
:100050006000013061F441D00F9300916000009383
|
||||
:1000600061000F9302E0009360000F910F91023046
|
||||
:1000700041F420916200213019F4DA9A46D001C08F
|
||||
:10008000DA98033001F4043001F4E1CF1F932F9389
|
||||
:100090003F934F934BB30F9301EF0BBB0F9135D0B1
|
||||
:1000A00011E033E020EF110F210F2BBB2ED03A953A
|
||||
:1000B000C9F70F9308EF0BBB0F9127D018E033E07F
|
||||
:1000C00020EF1695210F2BBB20D03A95C9F74BBBDB
|
||||
:1000D0004F913F912F911F91089510D008D001D0DA
|
||||
:1000E000089516E0D3DF1A95E9F71BD0089500E1D3
|
||||
:1000F0000BBF00EF02BB0027789408950FE00ABB06
|
||||
:1001000002950BBBBA9AC29808952F933F9321E4AE
|
||||
:100110003FEE3A95F1F72A95E1F700003F912F91D4
|
||||
:1001200008958F939F9324E683EC99E00197F1F76C
|
||||
:100130002A95D1F724E69F918F9108954D656D6FB3
|
||||
:100140007279206C65642067616D652E2057726935
|
||||
:100150007474656E206279205365726765792059E1
|
||||
:1001600061726B6F762032372E30392E3230323159
|
||||
:00000001FF
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user