Example #1
0
//-----------------------------------------------
//Запись 4 байт in по адресу ADR
char lc640_write_long_ptr(int ADR,char* in)
{
char temp; 

while(lc640_rdsr()&0x01)
	{
	}
lc640_wren();	
spi1_config();
CS_ON
spi1(0x02);
temp=*(((char*)&ADR)+1);
spi1(temp);
temp=*((char*)&ADR);
spi1(temp);
temp=in[0];
spi1(temp);
temp=in[1];
spi1(temp);
temp=in[2];
spi1(temp);
temp=in[3];
spi1(temp);

CS_OFF
CS_OFF  
spi1_unconfig();
return temp;
}		
Example #2
0
//----------------------------------------------- 
//Чтение из м-мы байта по адр. ADR
int lc640_read(int ADR)
{
int temp;
temp=0;

while(lc640_rdsr()&0x01)
	{
	}
spi1_config();
CS_ON
CS_ON
//temp_short[0]=PINSEL1;	
//
//IO0DIR|=1UL<<17;
//IO0CLR|=1UL<<17;
spi1(0x03);
temp=*(((char*)&ADR)+1);
spi1(temp);
temp=*((char*)&ADR);
spi1(temp);
temp=spi1(0xff);
//IO0SET|=1UL<<17;
CS_OFF
CS_OFF
spi1_unconfig();
return temp;

}
Example #3
0
//-----------------------------------------------
//Запись 4 байт in по адресу ADR
char lc640_write_long(int ADR,long in)
{
char temp; 

while(lc640_rdsr()&0x01)
	{
	}
lc640_wren();	
spi1_config();
CS_ON
spi1(0x02);
temp=*(((char*)&ADR)+1);
spi1(temp);
temp=*((char*)&ADR);
spi1(temp);
temp=*((char*)&in);
spi1(temp);
temp=*(((char*)&in)+1);
spi1(temp);
temp=*(((char*)&in)+2);
spi1(temp);
temp=*(((char*)&in)+3);
spi1(temp);           
CS_OFF
CS_OFF  
spi1_unconfig();
return temp;
}
Example #4
0
//----------------------------------------------- 
//Чтение из м-мы 4 байт по адр. ADR
long lc640_read_long(int ADR)
{
char temp0,temp1,temp2;
long temp_i;
while(lc640_rdsr()&0x01)
	{
	}
spi1_config();
CS_ON
spi1(0x03);
temp0=*(((char*)&ADR)+1);
spi1(temp0);
temp0=*((char*)&ADR);
spi1(temp0);
temp0=spi1(0xff);
temp1=spi1(0xff);
temp2=spi1(0xff);
temp_i=spi1(0xff);
temp_i<<=8;
temp_i+=temp2;
temp_i<<=8;
temp_i+=temp1;
temp_i<<=8;
temp_i+=temp0;
CS_OFF
CS_OFF
spi1_unconfig();
return temp_i;
}
Example #5
0
//----------------------------------------------- 
//Чтение из м-мы слова по адр. ADR
int lc640_read_int(int ADR)
{



char temp;
int temp_i;

//LPC_GPIO0->FIODIR|=0x00000002;
//LPC_GPIO0->FIOSET|=0x00000002;
while(lc640_rdsr()&0x01)
	{
	}

//lc640_rdsr();
//IO0DIR_bit.P0_11=1;
//IO0SET_bit.P0_11=1;
spi1_config();
CS_ON
spi1(0x03);
temp=*(((char*)&ADR)+1);
spi1(temp);
temp=*((char*)&ADR);
spi1(temp);
temp=spi1(0xff);
temp_i=spi1(0xff);
temp_i<<=8;
temp_i+=temp;
CS_OFF
CS_OFF
spi1_unconfig();

//LPC_GPIO0->FIOCLR|=0x00000002;
return temp_i;
}
Example #6
0
uint8_t spi_buses_init(void)//
{
	spi1_config();
	spi2_config();
	xTaskCreate(spi_task,(signed char*)"SPI_TASK",128,NULL, tskIDLE_PRIORITY + 1, NULL);

	task_watches[SPI_TASK_1].task_status=TASK_IDLE;
	xSPI_Buf_Mutex=xSemaphoreCreateMutex();

	return 0;
}
Example #7
0
//-----------------------------------------------
//Чтение из м-мы регистра состояния
char lc640_rdsr(void)
{
char temp;

spi1_config();
CS_ON
spi1(0x05);
temp=spi1(0xff);
CS_OFF
spi1_unconfig();
return temp;
}
Example #8
0
//----------------------------------------------- 
//Разрешение записи
void lc640_wren(void)
{

spi1_config();

CS_ON

spi1(0x06); 

CS_OFF

spi1_unconfig();
}
Example #9
0
//----------------------------------------------- 
//Чтение из м-мы N байт по адр. ADR
void lc640_read_str(int ADR, char* ram_ptr, char num)
{
char temp0,i;
while(lc640_rdsr()&0x01)
	{
	}
spi1_config();
CS_ON
spi1(0x03);
temp0=*(((char*)&ADR)+1);
spi1(temp0);
temp0=*((char*)&ADR);
spi1(temp0);

for(i=0;i<num;i++)
	{
	*ram_ptr++=spi1(0xff);
	}
CS_OFF
CS_OFF
spi1_unconfig();
}
Example #10
0
//----------------------------------------------- 
//Чтение из м-мы 4 байт по адр. ADR
void lc640_read_long_ptr(int ADR,char* out_ptr)
{
char temp0/*,temp1,temp2*/;
//long temp_i;
while(lc640_rdsr()&0x01)
	{
	}
spi1_config();
CS_ON
spi1(0x03);
temp0=*(((char*)&ADR)+1);
spi1(temp0);
temp0=*((char*)&ADR);
spi1(temp0);
out_ptr[0]=spi1(0xff);
out_ptr[1]=spi1(0xff);
out_ptr[2]=spi1(0xff);
out_ptr[3]=spi1(0xff);
CS_OFF
CS_OFF
spi1_unconfig();
}