Hardware Reference
In-Depth Information
Bedeutung der Status
Siehe dazu USBTMC: Tabellen 29 und 16.
STATUS_PENDING
Wird vom Gerät gesendet, wenn es noch kein short packet über den Bulk-IN End-
point abliefern konnte oder wenn das Gerät gar kein USBTMC-Kommando emp-
fangen hat, das eine Antwort generiert. Wenn das Gerät noch ein oder mehr Pakete
abzuliefern hat, dann muss es bmAbortBulkIn auf 0x01 setzen. Wenn es gar keine
Pakete liefern kann, muss es bmAbortBulkIn auf 0x00 setzen. NBYTES_TXD ist auf
0x00000000 zu setzen.
STATUS_SUCCESS
Dieser Status wird gemeldet, wenn das Gerät in der Lage war, ein short packet abzu-
liefern, der Bulk-IN Endpoint leer ist und es in der Lage ist, ein neues USBTMC-
Kommando zu empfangen, das eine Antwort generiert. NBYTES_TXD muss die
Anzahl der mit dem IN-Transfer übertragenen Nettobytes melden, bmAbortBulkIn
muss auf 0x00 gesetzt sein.
;******************************************************************************
; USBTMC Request: CHECK_ABORT_BULK_IN_STATUS
;******************************************************************************
; Reference: USBTMC Chapter 4.2.1.5
CHECK_ABORT_BULK_IN_STATUS
movlw controlINlow
movwf FSR0L
movlw controlINhigh
movwf FSR0H
movlw 0x00
cpfseq BULKIN_PROGRESS
bra CHECK_IN_PENDING
movlw 0x01
movff WREG,POSTINC0 ;STATUS_SUCCESS
CHECK_IN_Cont
movlw 0x00
movff WREG,POSTINC0 ;bulk-IN FIFO is empty
movff WREG,POSTINC0 ;reserved
movff WREG,POSTINC0 ;reserved
movff BULKIN_TXD,POSTINC0
movff BULKIN_TXD+1,POSTINC0
movff BULKIN_TXD+2,POSTINC0
movff BULKIN_TXD+3,POSTINC0
; set the byte counter to 0x0008
movlw 0x05
movwf
FSR0L
movlw 0x04
movwf FSR0H
movlw 0x08