avr: moved COM and COMPROTO defs and routines into dedicated files.
This commit is contained in:
@@ -174,6 +174,63 @@ wait: ; wait for possibly previous SPM to complete
|
||||
ret
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; flashReadEepromIncr
|
||||
;
|
||||
; Read a byte from EEPROM (see example in ATtiny24/44/84 manual p.19).
|
||||
;
|
||||
; IN:
|
||||
; - X: EEPROM Address to read from
|
||||
; OUT:
|
||||
; - R16: byte read
|
||||
; - X: EEPROM Address incremented
|
||||
; MODIFIED REGISTERS: R16
|
||||
|
||||
flashReadEepromIncr:
|
||||
sbic EECR, EEPE ; wait for previous write to complete (if any)
|
||||
rjmp flashReadEepromIncr
|
||||
out EEARH, xh ; set EEPROM address
|
||||
out EEARL, xl
|
||||
sbi EECR, EERE ; start EEPROM read by writing EERE
|
||||
in r16, EEDR ; read data from data register
|
||||
adiw xh:xl, 1
|
||||
ret
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; flashReadUid
|
||||
;
|
||||
; Read UID from EEPROM.
|
||||
;
|
||||
; IN:
|
||||
; OUT:
|
||||
; - R18:R19:R20:R21: UID
|
||||
; REGS: R16, X
|
||||
|
||||
flashReadUid:
|
||||
in r15, SREG
|
||||
push r15
|
||||
cli
|
||||
ldi xl, LOW(EEPROM_OFFS_UUID)
|
||||
ldi xh, HIGH(EEPROM_OFFS_UUID)
|
||||
rcall flashReadEepromIncr ; (R16)
|
||||
mov r18, r16
|
||||
rcall flashReadEepromIncr ; (R16)
|
||||
mov r19, r16
|
||||
rcall flashReadEepromIncr ; (R16)
|
||||
mov r20, r16
|
||||
rcall flashReadEepromIncr ; (R16)
|
||||
mov r21, r16
|
||||
pop r15
|
||||
out SREG, r15
|
||||
ret
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
FLASH_END:
|
||||
.equ MODULE_SIZE_FLASH = FLASH_END-FLASH_BEGIN
|
||||
|
||||
|
||||
Reference in New Issue
Block a user