diff --git a/avr/com.asm b/avr/com.asm index c226f65..8bd602b 100644 --- a/avr/com.asm +++ b/avr/com.asm @@ -167,7 +167,7 @@ COM_EnqueuePacket_error: COM_EnqueuePing: ldi yl, LOW(comRingBuffer) ldi yh, HIGH(comRingBuffer) - ldi r16, 3+1 ; 3 bytes for buffer length, flags and destination address, cmd + ldi r16, 3+2 ; 3 bytes for buffer length, flags and destination address, cmd, source addr push r17 rcall RingBuffer_Alloc ; r16: pos of allocated buffer (r16, r17, r18, r19, r20, r21) pop r17 @@ -176,7 +176,7 @@ COM_EnqueuePing: mov r18, r16 ; r18: start of packet in ring buffer mov r20, r16 ; r20: start of packet in ring buffer ldd r19, y+RINGBUFFER_OFFS_MAXSIZE - ldi r16, 3+1 + ldi r16, 3+2 rcall RingBuffer_Write ; write length (r3, r22) clr r16 rcall RingBuffer_Write ; write flags @@ -185,6 +185,8 @@ COM_EnqueuePing: ; write payload ldi r16, COM_CMD_PING rcall RingBuffer_Write ; write cmd + lds r16, comAddress + rcall RingBuffer_Write ; write source address mov r18, r20 ldi r20, COM_REPEAT_INFO rcall COM_EnqueuePacket