Sardar_nayab
Newbie level 4
am using master slave concept..
4 pins on both sides (SDI SDO SS SCK)
am using mikro c pro compiler
> i think there is problem of clock that is not generating properly..am using 24MHZ crystal
>no data is received at either end
please help.
master
slave
4 pins on both sides (SDI SDO SS SCK)
am using mikro c pro compiler
> i think there is problem of clock that is not generating properly..am using 24MHZ crystal
>no data is received at either end
please help.
master
Code:
sbit Chip_Select at RE2_bit;
sbit Slave_Select at RA5_bit;
sbit Chip_Select_Tris at TRISE2_bit;
sbit led at RB4_bit;
/*
sbit s_din at RB4_bit;
sbit s_dout at RB4_bit;
sbit s_cs at RB4_bit;
sbit s_ss at RB4_bit;
*/
signed short tmp, character, loop, loop2;
int i, size;
char trans[10]=" nayab";
char rec[10];
void main() {
TRISB = 0x00;
//TRISC= 0x93;
Chip_Select_Tris =0;
trise2_bit=0;
trisa5_bit=0;
//************$$$$$$$$$$$$$$$$$$$$$$$$$$$$/////////
TXSTA=0x20;
RCSTA=0x90;
SPBRG = 38;
SSPSTAT = 0xC0;
SSPCON1 = 0x22;
//************$$$$$$$$$$$$$$$$$$$$$$$$$$$$****************************/////////
Chip_Select=1;
Slave_Select =1;
re2_bit=1 ;
led=0;
//************$$$$$$$$$$$$$$$$$$$$$$$$$$$$****************************/////////
//SPI1_Init();
SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV64, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
while(1)
{
led=~led;
Slave_Select =0;
for(i=0;i<10;i++)
{
Delay_ms(10);
spi1_write(trans[i]);
}
Slave_Select =1;
}
}
slave
Code:
sbit Chip_Select at RE2_bit;
sbit Chip_Select_Tris at TRISE2_bit;
sbit SCKK at TRISC3_bit;
sbit led at RB4_bit;
signed short tmp, character, loop, loop2;
int i, size;
char trans[10]="nayab ";
char rec[10];
char urec[10]="notyet ";
char buffer[10]="attique ";
void main() {
TRISB = 0x00;
TRISC= 0x9B;
trisa5_bit=1;
Chip_Select_Tris =1;
//************$$$$$$$$$$$$$$$$$$$$$$$$$$$$/////////
TXSTA=0x20;
RCSTA=0x90;
SPBRG = 38;
SSPSTAT = 0x40;
SSPCON1 = 0x24;
//************$$$$$$$$$$$$$$$$$$$$$$$$$$$$****************************/////////
Chip_Select=1;
led=0;
PORTC=0;
ra5_bit=1;
//************$$$$$$$$$$$$$$$$$$$$$$$$$$$$****************************/////////
UART1_Init(9600);
//SPI1_Init();
SPI1_Init_Advanced(_SPI_SLAVE_SS_ENABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);
while(1)
{
led=~led;
for(i=0;i<10;i++)
{
Delay_ms(10);
if(Chip_Select==0)
{
rec[i]=spi1_read(sspbuf);
led=~led;
}
}
for(i=0;i<10;i++)
{
led=0;
uart1_write(rec[i]);
Delay_ms(10);
}
for(i=0;i<10;i++)
{
Delay_Ms(10);
if (UART1_Data_Ready() == 1)
urec[i] = UART1_Read();
led=~led;
}
for(i=0;i<10;i++)
{
uart1_write(urec[i]);
Delay_ms(10);
}
}
}
Last edited by a moderator: