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