PaulS:
Even this code is working fine .
Then, what IS your problem?
Sir.
I am able to send/write data on the SPI but I am not able to read the data, Please help me out.
I tried following code also
#include <SPI.h>// include the SPI library:
const int spidata = 10;//Pin 11 is data(MOSI) and pin 13 SCK ,set pin 10(SS) as the slave select for the digital pot:
int mm =0;
//int ReadByte();
void setup() {
pinMode (spidata, OUTPUT);// set the spi_data_pin as an output:
SPI.setDataMode(SPI_MODE3);
SPI.setClockDivider(SPI_CLOCK_DIV8);
SPCR = B00000000;
SPCR = (1<<SPE);
SPI.begin();// initialize SPI:
Serial.begin(4800);
}
byte ReadByte(void) {
while(!(SPSR & (1<<SPIF)))
return SPDR;
}
// int ReadByte(int value) {
// SPDR = value;
// while((!SPSR & (1<<SPIF)))
// return 0;
//}
//byte WriteByte (byte value) {
// SPDR = value ;
// while (!(SPSR & (1<<SPIF)))
// {}
// return SPDR ;
//}
void loop() {
int arry[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
int rxData;
digitalWrite(spidata,LOW);
rxData = ReadByte(); // Sir, this part is not working, please help me.
Serial.println("Read value ");
Serial.println(rxData, DEC);
Serial.println("Newline");
//if (rxData == 59) {
Serial.println("If condition-1 Matches and recieves 0x3B from SPI then:");
Serial.println("I am Sending 1st data of 15 data on SPI");
Serial.println(arry[0], BIN);
SPI.transfer(arry[0]); // send in the address and value via SPI:
delay(1500);
Serial.println("I am Sending 2nd data of 15 data on SPI");
Serial.println(arry[1], BIN);
SPI.transfer(arry[1]);
delay(1500);
Serial.println("I am Sending 3rd data of 15 data on SPI");
Serial.println(arry[2],BIN);
SPI.transfer(arry[2]);
delay(1500);
Serial.println("I am Sending 4th data of 15 data on SPI");
Serial.println(arry[3], BIN);
SPI.transfer(arry[3]);
delay(1500);
Serial.println("I am Sending 5th data of 15 data on SPI");
Serial.println(arry[4], BIN);
SPI.transfer(arry[4]);
delay(1500);
Serial.println("I am Sending 6th data of 15 data on SPI");
Serial.println(arry[5], BIN);
SPI.transfer(arry[5]);
delay(1500);
Serial.println("I am Sending 7th data of 15 data on SPI");
Serial.println(arry[6], BIN);
SPI.transfer(arry[6]);
delay(1500);
Serial.println("I am Sending 8th data of 15 data on SPI");
Serial.println(arry[7], BIN);
SPI.transfer(arry[7]);
Serial.println("I am Sending 9th data of 15 data on SPI");
Serial.println(arry[8], BIN);
SPI.transfer(arry[8]);
delay(1500);
Serial.println("I am Sending 10th data of 15 data on SPI");
Serial.println(arry[9], BIN);
SPI.transfer(arry[9]);
delay(1500);
Serial.println("I am Sending 11th data of 15 data on SPI");
Serial.println(arry[10], BIN);
SPI.transfer(arry[10]);
delay(1500);
Serial.println("I am Sending 12th data of 15 data on SPI");
Serial.println(arry[11], BIN);
SPI.transfer(arry[11]);
delay(1500);
Serial.println("I am Sending 13th data of 15 data on SPI");
Serial.println(arry[12], BIN);
SPI.transfer(arry[12]);
delay(1500);
Serial.println("I am Sending 14th data of 15 data on SPI");
Serial.println(arry[13], BIN);
SPI.transfer(arry[13]);
delay(1500);
Serial.println("I am Sending 15th data of 15 data on SPI");
Serial.println(arry[14], BIN);
SPI.transfer(arry[14]);
delay(1500);
Serial.println("ALL 15 datas are sent on SPI, process completed ::");
Serial.println("\n");
Serial.println("\n");
digitalWrite(spidata,HIGH);// take the SS pin high to de-select the chip:
delay(1500);
//}
}
Output of the above code:
Read value
0
Newline
If condition-1 Matches and recieves 0x3B from SPI then:
I am Sending 1st data of 15 data on SPI
1
I am Sending 2nd data of 15 data on SPI
10
I am Sending 3rd data of 15 data on SPI
11
I am Sending 4th data of 15 data on SPI
100
I am Sending 5th data of 15 data on SPI
101
I am Sending 6th data of 15 data on SPI
110
I am Sending 7th data of 15 data on SPI
111
I am Sending 8th data of 15 data on SPI
1000
I am Sending 9th data of 15 data on SPI
1001
I am Sending 10th data of 15 data on SPI
1010
I am Sending 11th data of 15 data on SPI
1011
I am Sending 12th data of 15 data on SPI
1100
I am Sending 13th data of 15 data on SPI
1101
I am Sending 14th data of 15 data on SPI
1110
I am Sending 15th data of 15 data on SPI
1111
ALL 15 datas are sent on SPI, process completed ::