#ifndef __SPI__H__
#define __SPI__H__
extern unsigned char time_y = 8;
void SPI_Master_GPIO_Init(void)
{
PC_DDR|=(1<<6 mosi="" nbsp="" span="">
PC_CR1|=(1<<6 span="">
PC_CR2&=~(1<<6 span="">
PC_DDR|=(1<<5 nbsp="" span="">
PC_CR1|=(1<<5 span="">
PC_CR2&=~(1<<5 span="">
PA_DDR|=(1<<3 nbsp="" out="" span="">
PA_CR1|=(1<<3 span="">
PA_CR2&=~(1<<3 span="">
PC_DDR&=~(1<<7 in="" miso="" nbsp="" span="">
PC_CR1|=(1<<7 span="">
PC_CR2&=~(1<<7 span="">
}
void CSN_low (void)
{
PA_ODR &= ~(1<<3 span="">
}
void CSN_high (void)
{
PA_ODR |= (1<<3 span="">
}
void SPI_Slave_GPIO_Init(void)
{
PC_DDR&=~(1<<6 span="">
PC_CR1|=(1<<6 span="">
PC_CR2&=~(1<<6 span="">
PC_DDR&=~(1<<5 span="">
PC_CR1|=(1<<5 span="">
PC_CR2&=~(1<<5 span="">
PA_DDR&=~(1<<3 span="">
PA_CR1|=(1<<3 span="">
PA_CR2&=~(1<<3 span="">
PC_DDR|=(1<<7 span="">
PC_CR1|=(1<<7 span="">
PC_CR2&=~(1<<7 span="">
}
void send_char (unsigned int temp)
{
unsigned char j = 0, i = 0;
for(i=0;i<8 i="" span="">
{
j = 7-i;
PC_ODR &= ~(1<<5 span="">
if((temp>>j) & 0x01)
PC_ODR |= (1<<6 span="">
else
PC_ODR &= ~(1<<6 span="">
time_y = 8;
while(time_y--);
PC_ODR |= (1<<5 span="">
time_y = 8;
while(time_y--);
PC_ODR &= ~(1<<5 span="">
}
}
unsigned char get_char (void)
{
unsigned char j = 0, i = 0;
for(i=0;i<8 i="" span="">
{
unsigned char k = 7-i;
PC_ODR &= ~(1<<5 span="">
time_y = 8;
while(time_y--);
PC_ODR |= (1<<5 span="">
if(PC_IDR & (1<<7 span="">
{
j |= (1<
}
else
time_y = 8;
while(time_y--);
PC_ODR &= ~(1<<5 span="">
}
return j;
}
void write_n_byte (unsigned char add,unsigned char no_of_byte,unsigned char *string_data)
{
unsigned char i = 0;
add |=0x20;
send_char(add);
for (i = 0; i < no_of_byte ; i++)
{
send_char(*string_data+i);
}
}
#endif
#define __SPI__H__
extern unsigned char time_y = 8;
void SPI_Master_GPIO_Init(void)
{
PC_DDR|=(1<<6 mosi="" nbsp="" span="">
PC_CR1|=(1<<6 span="">
PC_CR2&=~(1<<6 span="">
PC_DDR|=(1<<5 nbsp="" span="">
PC_CR1|=(1<<5 span="">
PC_CR2&=~(1<<5 span="">
PA_DDR|=(1<<3 nbsp="" out="" span="">
PA_CR1|=(1<<3 span="">
PA_CR2&=~(1<<3 span="">
PC_DDR&=~(1<<7 in="" miso="" nbsp="" span="">
PC_CR1|=(1<<7 span="">
PC_CR2&=~(1<<7 span="">
}
void CSN_low (void)
{
PA_ODR &= ~(1<<3 span="">
}
void CSN_high (void)
{
PA_ODR |= (1<<3 span="">
}
void SPI_Slave_GPIO_Init(void)
{
PC_DDR&=~(1<<6 span="">
PC_CR1|=(1<<6 span="">
PC_CR2&=~(1<<6 span="">
PC_DDR&=~(1<<5 span="">
PC_CR1|=(1<<5 span="">
PC_CR2&=~(1<<5 span="">
PA_DDR&=~(1<<3 span="">
PA_CR1|=(1<<3 span="">
PA_CR2&=~(1<<3 span="">
PC_DDR|=(1<<7 span="">
PC_CR1|=(1<<7 span="">
PC_CR2&=~(1<<7 span="">
}
void send_char (unsigned int temp)
{
unsigned char j = 0, i = 0;
for(i=0;i<8 i="" span="">
{
j = 7-i;
PC_ODR &= ~(1<<5 span="">
if((temp>>j) & 0x01)
PC_ODR |= (1<<6 span="">
else
PC_ODR &= ~(1<<6 span="">
time_y = 8;
while(time_y--);
PC_ODR |= (1<<5 span="">
time_y = 8;
while(time_y--);
PC_ODR &= ~(1<<5 span="">
}
}
unsigned char get_char (void)
{
unsigned char j = 0, i = 0;
for(i=0;i<8 i="" span="">
{
unsigned char k = 7-i;
PC_ODR &= ~(1<<5 span="">
time_y = 8;
while(time_y--);
PC_ODR |= (1<<5 span="">
if(PC_IDR & (1<<7 span="">
{
j |= (1<
}
else
time_y = 8;
while(time_y--);
PC_ODR &= ~(1<<5 span="">
}
return j;
}
void write_n_byte (unsigned char add,unsigned char no_of_byte,unsigned char *string_data)
{
unsigned char i = 0;
add |=0x20;
send_char(add);
for (i = 0; i < no_of_byte ; i++)
{
send_char(*string_data+i);
}
}
#endif