avr: more code sharing.
This commit is contained in:
@@ -71,55 +71,34 @@ AppStats_OnEveryMinute_noIrq:
|
||||
AppStats_OnEveryMinute_store:
|
||||
sts appStatsTimer, r16
|
||||
|
||||
mov r17, r16
|
||||
andi r17, 3
|
||||
brne AppStats_OnEveryMinute_sendStats
|
||||
; send device announcement
|
||||
push r16
|
||||
push yl
|
||||
push yh
|
||||
ldi yl, LOW(netInterfaceData)
|
||||
ldi yh, HIGH(netInterfaceData)
|
||||
rcall AppNetwork_SendDevice
|
||||
#ifdef APP_STATS_NETDEV2
|
||||
ldi yl, LOW(netInterfaceData2)
|
||||
ldi yh, HIGH(netInterfaceData2)
|
||||
rcall AppNetwork_SendDevice
|
||||
#endif
|
||||
pop yh
|
||||
pop yl
|
||||
pop r16
|
||||
AppStats_OnEveryMinute_sendStats:
|
||||
#if 1
|
||||
; debug
|
||||
push r16
|
||||
push yl
|
||||
push yh
|
||||
rcall AppStats_OnEveryMinute_sendMemStats
|
||||
pop yh
|
||||
pop yl
|
||||
pop r16
|
||||
#else
|
||||
cpi r16, 2
|
||||
breq AppStats_OnEveryMinute_sendMemStats
|
||||
#endif
|
||||
|
||||
cpi r16, 3
|
||||
breq AppStats_OnEveryMinute_sendRecvStats1
|
||||
|
||||
cpi r16, 5
|
||||
breq AppStats_OnEveryMinute_sendSendStats1
|
||||
|
||||
#ifdef APP_STATS_NETDEV2
|
||||
cpi r16, 6
|
||||
breq AppStats_OnEveryMinute_sendRecvStats2
|
||||
|
||||
cpi r16, 7
|
||||
breq AppStats_OnEveryMinute_sendSendStats2
|
||||
#endif
|
||||
rcall appStatsWalkTable
|
||||
|
||||
; add more here
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine appStatsTable
|
||||
;
|
||||
; @clobbers r16, r18, r19, r22, Z, (any)
|
||||
|
||||
appStatsWalkTable:
|
||||
ldi zl, LOW(appStatsTable*2)
|
||||
ldi zh, HIGH(appStatsTable*2)
|
||||
lds r16, appStatsTimer
|
||||
bigcall WalkTable
|
||||
ret
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
AppStats_OnEveryMinute_sendDeviceDev1:
|
||||
ldi yl, LOW(netInterfaceData)
|
||||
ldi yh, HIGH(netInterfaceData)
|
||||
rjmp AppNetwork_SendDevice
|
||||
|
||||
AppStats_OnEveryMinute_sendMemStats:
|
||||
ldi yl, LOW(netInterfaceData)
|
||||
ldi yh, HIGH(netInterfaceData)
|
||||
@@ -135,19 +114,46 @@ AppStats_OnEveryMinute_sendSendStats1:
|
||||
ldi yh, HIGH(netInterfaceData)
|
||||
rjmp AppNetwork_SendTxdStats
|
||||
|
||||
#ifdef APP_STATS_NETDEV2
|
||||
AppStats_OnEveryMinute_sendRecvStats2:
|
||||
ldi yl, LOW(netInterfaceData2)
|
||||
ldi yh, HIGH(netInterfaceData2)
|
||||
rjmp AppNetwork_SendRxdStats
|
||||
|
||||
AppStats_OnEveryMinute_sendSendStats2:
|
||||
ldi yl, LOW(netInterfaceData2)
|
||||
ldi yh, HIGH(netInterfaceData2)
|
||||
rjmp AppNetwork_SendTxdStats
|
||||
#ifdef APP_STATS_NETDEV2
|
||||
AppStats_OnEveryMinute_sendDeviceDev2:
|
||||
ldi yl, LOW(netInterfaceData2)
|
||||
ldi yh, HIGH(netInterfaceData2)
|
||||
rjmp AppNetwork_SendDevice
|
||||
|
||||
AppStats_OnEveryMinute_sendRecvStats2:
|
||||
ldi yl, LOW(netInterfaceData2)
|
||||
ldi yh, HIGH(netInterfaceData2)
|
||||
rjmp AppNetwork_SendRxdStats
|
||||
|
||||
AppStats_OnEveryMinute_sendSendStats2:
|
||||
ldi yl, LOW(netInterfaceData2)
|
||||
ldi yh, HIGH(netInterfaceData2)
|
||||
rjmp AppNetwork_SendTxdStats
|
||||
#endif
|
||||
; @end
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; table
|
||||
; time routine (word address)
|
||||
|
||||
appStatsTable:
|
||||
.dw 1, AppStats_OnEveryMinute_sendMemStats
|
||||
.dw 2, AppStats_OnEveryMinute_sendDeviceDev1
|
||||
.dw 3, AppStats_OnEveryMinute_sendRecvStats1
|
||||
.dw 4, AppStats_OnEveryMinute_sendSendStats1
|
||||
.dw 5, AppStats_OnEveryMinute_sendDeviceDev1
|
||||
#ifdef APP_STATS_NETDEV2
|
||||
.dw 6, AppStats_OnEveryMinute_sendDeviceDev2
|
||||
.dw 7, AppStats_OnEveryMinute_sendRecvStats2
|
||||
.dw 8, AppStats_OnEveryMinute_sendSendStats2
|
||||
#endif
|
||||
|
||||
; end of table
|
||||
.dw 0, 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user