fifo_rd_id.c

来自「C8051F3xx USB Hid Code」· C语言 代码 · 共 32 行

C
32
字号
// FIFO_RD_ID.c
//
// void FIFO_Read_idata( BYTE fifo_adr, BYTE n, BYTE idata * ptr )
//
//--------------------------------------------------------------------

#include <c8051F320.h>
typedef unsigned char BYTE;

void FIFO_Read_idata( BYTE fifo_adr, BYTE n, BYTE idata * ptr )
{
	if ( n != 0 ) {
		if ( --n == 0 ) {
			USB0ADR = fifo_adr | 0x80;	// Set address and initiate first read
			while( USB0ADR & 0x80 );	// Wait for data ready
			*ptr = USB0DAT;				// read out FIFO data
			return;
		}

		USB0ADR = fifo_adr | 0xC0;		// Set address, auto-read and initiate first read
		do {
			while(USB0ADR & 0x80);		// Wait for BUSY->'0' (data ready)
			*ptr++ = USB0DAT;			// Copy data byte
		} while ( --n != 0 );

		while(USB0ADR & 0x80);			// Wait for data ready
		USB0ADR = 0;					// Clear auto-read
		*ptr = USB0DAT;					// Read last data
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?