⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get_data_dummy.c

📁 完整的OFDM系统,含Matlab仿真代码和DSP源代码下载.平台Tms320C6000.含项目说明文档.绝对高质量的源代码.
💻 C
字号:
//get_data_dummy.c
//dummy funktion f鰎 att simulera datah鋗tning

//#define FillHostBuffer1_MM	1
//#define FillHostBuffer2_MM	2

//#define HostBufferSize 10 //numbers of 32 bit segments in each HostBuffer
//#define HostBufferBitLength (HostBufferSize*32) //numbers of bits in HostBuffer
volatile unsigned int HostBuffer1[HostBufferSize]; //buffer 1
volatile unsigned int HostBuffer2[HostBufferSize]; //buffer 2
volatile unsigned int *CurrentHostBuffer; //current buffer used
static unsigned int offset; //bit offset in current buffer to read next time


void get_data(unsigned char nr_of_bits, unsigned char *outdata){
	unsigned char bits_read = 0;
	if(offset + nr_of_bits < HostBufferBitLength){	//All data needed is in same buffer
		*outdata = (unsigned char) GET_FIELD(CurrentHostBuffer,offset,nr_of_bits);
		offset += nr_of_bits;	//increase offset
	}else{	//data needed is in both buffers, split
		bits_read = HostBufferBitLength-1-offset;//number of bits left in current buffer
		*outdata = (unsigned char) GET_FIELD(CurrentHostBuffer,offset,bits_read); //read the remainding part of current buffer
		//change HostBuffer
		if(CurrentHostBuffer == HostBuffer1){
			//fill HostBuffer1 and change to buffer2
			pci_message_send(FillHostBuffer1_MM);//send mailbox message to host
			CurrentHostBuffer == HostBuffer2; //change buffer
		}else{
			//fill HostBuffer2 and change to buffer1
			pci_message_send(FillHostBuffer2_MM);//send mailbox message to host
			CurrentHostBuffer == HostBuffer1;	//change buffer
		}
		(*outdata) = (*outdata) | (GET_FIELD(CurrentHostBuffer, 0, nr_of_bits - bits_read) << bits_read); //take the bits needed
		offset = nr_of_bits - bits_read;	//set offset to the number of bits read from current buffer
	}
}

void init_get_data(void){
CurrentHostBuffer = HostBuffer1;    //At startup set current buffer to HostBuffer1
offset = 0;                         //Begining of buffer
//fill HostBuffer1
pci_message_sync_send(FillHostBuffer1_MM);//send mailbox message to host
//fill HostBuffer2
pci_message_sync_send(FillHostBuffer2_MM);//send mailbox message to host
}

void init_get_data_dummy(void){
     CurrentHostBuffer = HostBuffer1;
     offset = 0;
     memset(HostBuffer1,0xAAAAAAAA, HostBufferSize*sizeof(unsigned int)); //Fill buffer 1
     memset(HostBuffer2,0x55555555, HostBufferSize*sizeof(unsigned int)); //Fill buffer 2
}

⌨️ 快捷键说明

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