diff --git a/avr/main.asm b/avr/main.asm index cb29658..627ba80 100644 --- a/avr/main.asm +++ b/avr/main.asm @@ -289,6 +289,9 @@ onEvery10s: rcall COM_EnqueuePing pop r15 out SREG, r15 + + rcall printSendStats + ret @@ -375,3 +378,69 @@ debugSendByte: pop r15 ret + + + +printSendStats: + ldi r18, 0 + ldi r19, 2 + rcall LCD_SetCursor + ldi zl, LOW(textStatsPacketsIn) + ldi zh, HIGH(textStatsPacketsIn) + rcall LCD_PrintFromFlash + lds r18, comStatsPacketsIn + lds r19, comStatsPacketsIn+1 + rcall LCD_PrintHexWord + + ldi r18, 0 + ldi r19, 3 + rcall LCD_SetCursor + ldi zl, LOW(textStatsPacketsRecvErr) + ldi zh, HIGH(textStatsPacketsRecvErr) + rcall LCD_PrintFromFlash + lds r18, comStatsRecvErrs + lds r19, comStatsRecvErrs+1 + rcall LCD_PrintHexWord + + + ldi r18, 0 + ldi r19, 5 + rcall LCD_SetCursor + ldi zl, LOW(textStatsPacketsOut) + ldi zh, HIGH(textStatsPacketsOut) + rcall LCD_PrintFromFlash + lds r18, comStatsPacketsOut + lds r19, comStatsPacketsOut+1 + rcall LCD_PrintHexWord + + ldi r18, 0 + ldi r19, 6 + rcall LCD_SetCursor + ldi zl, LOW(textStatsCollisions) + ldi zh, HIGH(textStatsCollisions) + rcall LCD_PrintFromFlash + lds r18, comStatsCollisions + lds r19, comStatsCollisions+1 + rcall LCD_PrintHexWord + + ldi r18, 0 + ldi r19, 7 + rcall LCD_SetCursor + ldi zl, LOW(textStatsAborted) + ldi zh, HIGH(textStatsAborted) + rcall LCD_PrintFromFlash + lds r18, comStatsAborted + lds r19, comStatsAborted+1 + rcall LCD_PrintHexWord + + ret + + + +textStatsPacketsIn: .db "In : ", 0 +textStatsPacketsRecvErr: .db "RecvErr: ", 0 +textStatsPacketsOut: .db "Out : ", 0 +textStatsCollisions: .db "Coll : ", 0 +textStatsAborted: .db "Aborted: ", 0 + +