avr: introduced screens.
This commit is contained in:
166
avr/modules/com2/screen.asm
Normal file
166
avr/modules/com2/screen.asm
Normal file
@@ -0,0 +1,166 @@
|
||||
; ***************************************************************************
|
||||
; copyright : (C) 2024 by Martin Preuss
|
||||
; email : martin@libchipcard.de
|
||||
;
|
||||
; ***************************************************************************
|
||||
; * This file is part of the project "AqHome". *
|
||||
; * Please see toplevel file COPYING of that project for license details. *
|
||||
; ***************************************************************************
|
||||
|
||||
|
||||
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
; This file contains timer handlers for the address protocol
|
||||
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
;
|
||||
|
||||
|
||||
; ***************************************************************************
|
||||
; code
|
||||
|
||||
.cseg
|
||||
|
||||
|
||||
|
||||
COM2_Screen_RecvStats:
|
||||
in r15, SREG
|
||||
push r15
|
||||
cli
|
||||
|
||||
ldi r16, 0
|
||||
rcall LCD_Fill
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 0
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenRecvText_title)
|
||||
ldi zh, HIGH(com2ScreenRecvText_title)
|
||||
rcall LCD_PrintFromFlash
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 2
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenRecvText_packetsIn)
|
||||
ldi zh, HIGH(com2ScreenRecvText_packetsIn)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsPacketsIn
|
||||
lds r19, com2StatsPacketsIn+1
|
||||
rcall LCD_PrintHexWord
|
||||
ldi r16, 32
|
||||
rcall LCD_PrintChar
|
||||
lds r18, com2StatsNotForMe
|
||||
lds r19, com2StatsNotForMe+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 3
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenRecvText_handled)
|
||||
ldi zh, HIGH(com2ScreenRecvText_handled)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsHandled
|
||||
lds r19, com2StatsHandled+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 4
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenRecvText_contentErrs)
|
||||
ldi zh, HIGH(com2ScreenRecvText_contentErrs)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsContentError
|
||||
lds r19, com2StatsContentError+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 5
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenRecvText_IoErrs)
|
||||
ldi zh, HIGH(com2ScreenRecvText_IoErrs)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsIoError
|
||||
lds r19, com2StatsIoError+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 6
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenRecvText_NoBufErrs)
|
||||
ldi zh, HIGH(com2ScreenRecvText_NoBufErrs)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsNoBufferError
|
||||
lds r19, com2StatsNoBufferError+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
pop r15
|
||||
out SREG, r15
|
||||
ret
|
||||
|
||||
|
||||
#if 0
|
||||
COM2_Screen_SendStats:
|
||||
in r15, SREG
|
||||
push r15
|
||||
cli
|
||||
|
||||
ldi r16, 0
|
||||
rcall LCD_Fill
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 0
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenSendText_title)
|
||||
ldi zh, HIGH(com2ScreenSendText_title)
|
||||
rcall LCD_PrintFromFlash
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 2
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenSendText_packetsOut)
|
||||
ldi zh, HIGH(com2ScreenSendText_packetsOut)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsPacketsOut
|
||||
lds r19, com2StatsPacketsOut+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 3
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenSendText_collisions)
|
||||
ldi zh, HIGH(com2ScreenSendText_collisions)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsCollisions
|
||||
lds r19, com2StatsCollisions+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 4
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(com2ScreenSendText_busy)
|
||||
ldi zh, HIGH(com2ScreenSendText_busy)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r18, com2StatsBusyError
|
||||
lds r19, com2StatsBusyError+1
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
pop r15
|
||||
out SREG, r15
|
||||
ret
|
||||
#endif
|
||||
|
||||
|
||||
com2ScreenRecvText_title: .db "COM2 Recv Stats", 0
|
||||
com2ScreenRecvText_packetsIn: .db "In : ", 0
|
||||
com2ScreenRecvText_handled: .db "Hdl : ", 0
|
||||
com2ScreenRecvText_contentErrs: .db "ECon : ", 0
|
||||
com2ScreenRecvText_IoErrs: .db "EIO : ", 0
|
||||
com2ScreenRecvText_NoBufErrs: .db "ENBuf: ", 0
|
||||
|
||||
|
||||
#if 0
|
||||
com2ScreenSendText_title: .db "COM2 Send Stats", 0
|
||||
com2ScreenSendText_packetsOut: .db "Out : ", 0
|
||||
com2ScreenSendText_collisions: .db "E Coll : ", 0
|
||||
com2ScreenSendText_busy: .db "E Busy : ", 0
|
||||
#endif
|
||||
|
||||
|
||||
@@ -39,6 +39,11 @@ CPRO_Address_OnPacketReceived:
|
||||
ld r16, x
|
||||
sbiw xh:xl, COM2_MSG_OFFS_CMD
|
||||
|
||||
sts cproLastAddrCmd, r16
|
||||
lds r18, cproCountAddr
|
||||
inc r18
|
||||
sts cproCountAddr, r18
|
||||
|
||||
cpi r16, CPRO_CMD_NEED_ADDRESS
|
||||
brcs CPRO_Address_OnPacketReceived_nc ; smaller than 60
|
||||
|
||||
@@ -147,6 +152,10 @@ cproHandleClaimAddr_done:
|
||||
|
||||
|
||||
cproHandleDenyAddr:
|
||||
lds r16, cproCountDeny
|
||||
inc r16
|
||||
sts cproCountDeny, r16
|
||||
|
||||
; check mode
|
||||
lds r17, cproMode
|
||||
cpi r17, CPRO_MODE_CLAIMING_ADDR1
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
|
||||
cproDataBegin:
|
||||
cproMode: .byte 1
|
||||
cproCountAddr: .byte 1
|
||||
cproCountDeny: .byte 1
|
||||
cproLastAddrCmd: .byte 1
|
||||
cproDataEnd:
|
||||
|
||||
|
||||
|
||||
125
avr/modules/comproto/screen.asm
Normal file
125
avr/modules/comproto/screen.asm
Normal file
@@ -0,0 +1,125 @@
|
||||
; ***************************************************************************
|
||||
; copyright : (C) 2024 by Martin Preuss
|
||||
; email : martin@libchipcard.de
|
||||
;
|
||||
; ***************************************************************************
|
||||
; * This file is part of the project "AqHome". *
|
||||
; * Please see toplevel file COPYING of that project for license details. *
|
||||
; ***************************************************************************
|
||||
|
||||
|
||||
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
; This file contains timer handlers for the address protocol
|
||||
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
;
|
||||
|
||||
|
||||
; ***************************************************************************
|
||||
; code
|
||||
|
||||
.cseg
|
||||
|
||||
|
||||
|
||||
CPRO_Screen:
|
||||
in r15, SREG ; debug
|
||||
push r15
|
||||
cli
|
||||
|
||||
ldi r16, 0
|
||||
rcall LCD_Fill
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 0
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(cproScreenText_title)
|
||||
ldi zh, HIGH(cproScreenText_title)
|
||||
rcall LCD_PrintFromFlash
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 2
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(cproScreenText_uid)
|
||||
ldi zh, HIGH(cproScreenText_uid)
|
||||
rcall LCD_PrintFromFlash
|
||||
push xh ; 1-4: UID
|
||||
push xl
|
||||
rcall Utils_ReadUid ; (R16, X)
|
||||
pop xl
|
||||
pop xh
|
||||
push r18
|
||||
push r19
|
||||
mov r18, r20
|
||||
mov r19, r21
|
||||
rcall LCD_PrintHexWord
|
||||
pop r19
|
||||
pop r18
|
||||
rcall LCD_PrintHexWord
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 3
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(cproScreenText_addr)
|
||||
ldi zh, HIGH(cproScreenText_addr)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r16, com2Address
|
||||
rcall LCD_PrintHexByte
|
||||
ldi r16, 32
|
||||
rcall LCD_PrintChar
|
||||
lds r16, cproMode
|
||||
rcall LCD_PrintHexByte
|
||||
ldi r16, 32
|
||||
rcall LCD_PrintChar
|
||||
lds r16, cproAddrRangeBegin
|
||||
rcall LCD_PrintHexByte
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 4
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(cproScreenText_bitmap)
|
||||
ldi zh, HIGH(cproScreenText_bitmap)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r16, cproUsedAddresses
|
||||
rcall LCD_PrintHexByte
|
||||
lds r16, cproUsedAddresses+1
|
||||
rcall LCD_PrintHexByte
|
||||
lds r16, cproUsedAddresses+2
|
||||
rcall LCD_PrintHexByte
|
||||
lds r16, cproUsedAddresses+3
|
||||
rcall LCD_PrintHexByte
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 5
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(cproScreenText_msgs)
|
||||
ldi zh, HIGH(cproScreenText_msgs)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r16, cproCountAddr
|
||||
rcall LCD_PrintHexByte
|
||||
ldi r16, 32
|
||||
rcall LCD_PrintChar
|
||||
lds r16, cproLastAddrCmd
|
||||
rcall LCD_PrintHexByte
|
||||
|
||||
ldi r18, 0
|
||||
ldi r19, 6
|
||||
rcall LCD_SetCursor
|
||||
ldi zl, LOW(cproScreenText_deny)
|
||||
ldi zh, HIGH(cproScreenText_deny)
|
||||
rcall LCD_PrintFromFlash
|
||||
lds r16, cproCountDeny
|
||||
rcall LCD_PrintHexByte
|
||||
|
||||
pop r15
|
||||
out SREG, r15
|
||||
ret
|
||||
|
||||
|
||||
cproScreenText_title: .db "CPRO Screen", 0
|
||||
cproScreenText_uid: .db "UID : ", 0
|
||||
cproScreenText_addr: .db "Address: ", 0
|
||||
cproScreenText_bitmap: .db "BITMAP : ", 0
|
||||
cproScreenText_msgs: .db "nADDR : ", 0
|
||||
cproScreenText_deny: .db "nDENY : ", 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user