mirror of
https://github.com/sergeyyarkov/attiny2313a_shift-register-example.git
synced 2026-10-11 10:18:52 +03:00
refactor
This commit is contained in:
parent
9a5cd93e9f
commit
01ee88d6fb
24
firmware.asm
24
firmware.asm
@ -6,8 +6,8 @@
|
|||||||
; Device Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/doc8246.pdf
|
; Device Datasheet: http://ww1.microchip.com/downloads/en/DeviceDoc/doc8246.pdf
|
||||||
; Package: SOIC-20W_7.5x12.8mm_P1.27mm
|
; Package: SOIC-20W_7.5x12.8mm_P1.27mm
|
||||||
; Assembler: AVR macro assembler 2.2.7
|
; Assembler: AVR macro assembler 2.2.7
|
||||||
; Clock frequency: 12 MHz External Crystal Oscillator
|
; Clock frequency: 8 MHz Internal with CKDIV8
|
||||||
; Fuses: lfuse: 0x4F, hfuse: 0x9F, efuse: 0xFF, lock: 0xFF
|
; Fuses: lfuse: 0x64, hfuse: 0x9F, efuse: 0xFF, lock: 0xFF
|
||||||
;
|
;
|
||||||
; Written by Sergey Yarkov 28.01.2023
|
; Written by Sergey Yarkov 28.01.2023
|
||||||
|
|
||||||
@ -58,13 +58,13 @@ MCU_INIT:
|
|||||||
|
|
||||||
LOOP:
|
LOOP:
|
||||||
rcall TRANSMIT_595
|
rcall TRANSMIT_595
|
||||||
rcall DELAY
|
|
||||||
rol DATA
|
rol DATA
|
||||||
|
rcall DELAY
|
||||||
rjmp LOOP
|
rjmp LOOP
|
||||||
|
|
||||||
INIT_PORTS:
|
INIT_PORTS:
|
||||||
ldi r16, (1<<CLOCK_PIN) | (1<<LATCH_PIN) | (1<<DATA_PIN)
|
ldi TEMP_A, (1<<CLOCK_PIN) | (1<<LATCH_PIN) | (1<<DATA_PIN)
|
||||||
out DDRB, r16
|
out DDRB, TEMP_A
|
||||||
ret
|
ret
|
||||||
|
|
||||||
;========================================;
|
;========================================;
|
||||||
@ -74,8 +74,10 @@ ret
|
|||||||
TRANSMIT_595:
|
TRANSMIT_595:
|
||||||
in r21, SREG
|
in r21, SREG
|
||||||
mov r19, DATA
|
mov r19, DATA
|
||||||
ldi r16, 8
|
ldi TEMP_B, 8
|
||||||
_TRANSMIT_595_LOOP:
|
_TRANSMIT_595_LOOP:
|
||||||
|
;
|
||||||
|
; Shift a bit into the Carry flag and check if it is set to 1 or 0.
|
||||||
lsl r19
|
lsl r19
|
||||||
brcc _TRANSMIT_595_SEND_LOW
|
brcc _TRANSMIT_595_SEND_LOW
|
||||||
brcs _TRANSMIT_595_SEND_HIGH
|
brcs _TRANSMIT_595_SEND_HIGH
|
||||||
@ -88,16 +90,20 @@ TRANSMIT_595:
|
|||||||
cbi PORTB, DATA_PIN
|
cbi PORTB, DATA_PIN
|
||||||
|
|
||||||
_TRANSMIT_595_COMMIT:
|
_TRANSMIT_595_COMMIT:
|
||||||
sbi PORTB, CLOCK_PIN
|
|
||||||
cbi PORTB, CLOCK_PIN
|
cbi PORTB, CLOCK_PIN
|
||||||
dec r16
|
sbi PORTB, CLOCK_PIN
|
||||||
|
dec TEMP_B
|
||||||
brne _TRANSMIT_595_LOOP
|
brne _TRANSMIT_595_LOOP
|
||||||
|
|
||||||
|
;
|
||||||
|
; Copy data from shift register to storage register
|
||||||
sbi PORTB, LATCH_PIN
|
sbi PORTB, LATCH_PIN
|
||||||
cbi PORTB, LATCH_PIN
|
cbi PORTB, LATCH_PIN
|
||||||
out SREG, r21
|
out SREG, r21
|
||||||
ret
|
ret
|
||||||
|
|
||||||
DELAY:
|
DELAY:
|
||||||
|
push TEMP_A
|
||||||
ldi TEMP_A, 70
|
ldi TEMP_A, 70
|
||||||
_DELAY_1:
|
_DELAY_1:
|
||||||
ldi TEMP_B, 255
|
ldi TEMP_B, 255
|
||||||
@ -107,7 +113,7 @@ DELAY:
|
|||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
brne _DELAY_2
|
brne _DELAY_2
|
||||||
|
|
||||||
dec TEMP_A
|
dec TEMP_A
|
||||||
brne _DELAY_1
|
brne _DELAY_1
|
||||||
|
pop TEMP_A
|
||||||
ret
|
ret
|
||||||
11
firmware.hex
11
firmware.hex
@ -1,7 +1,8 @@
|
|||||||
:020000020000FC
|
:020000020000FC
|
||||||
:1000000000C00FED0DBF06D041E000C006D016D0F5
|
:1000000000C00FED0DBF06D041E000C006D0441F78
|
||||||
:10001000441FFCCF07E007BB08955FB7342F08E00B
|
:1000100015D0FCCF07E007BB08955FB7342F18E079
|
||||||
:10002000330F18F400F0C19A01C0C198C09AC0986B
|
:10002000330F18F400F0C19A01C0C198C098C09A6B
|
||||||
:100030000A95B1F7C29AC2985FBF089506E41FEF10
|
:100030001A95B1F7C29AC2985FBF08950F9306E46C
|
||||||
:100040001A95000000000000D9F70A95C1F708953D
|
:100040001FEF1A95000000000000D9F70A95C1F7CC
|
||||||
|
:040050000F9108956F
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user