2. Rangkaian Simulasi [KEMBALI]
3. Flowchart [KEMBALI]
4. Listing Program [KEMBALI]
//MASTER
#include <SPI.h> //Deklarasi library SPI
void setup (void) {
Serial.begin(115200); //Set baud rate 115200
digitalWrite(SS, HIGH);
// disable Slave Select
SPI.begin ();
SPI.setClockDivider(SPI_CLOCK_DIV8); //divide the clock by 8
}
void loop (void) {
char c;
digitalWrite(SS, LOW); //enable Slave Select
// send test string
for (const char * p = "Hello,
world!\r" ; c = *p; p++)
{
SPI.transfer (c);
Serial.print(c);
}
digitalWrite(SS, HIGH); // disable Slave
Select
delay(2000);
}
//SLAVE
#include <SPI.h>
char buff [50];
volatile byte indx;
volatile boolean process;
void setup (void) {
Serial.begin (115200);
pinMode(MISO, OUTPUT); // have to send on
master in so it set as output
SPCR |= _BV(SPE); // turn on SPI in slave
mode
indx = 0; // buffer empty
process = false;
SPI.attachInterrupt(); // turn on interrupt
}
ISR (SPI_STC_vect)
// SPI interrupt routine
{
byte c = SPDR; // read byte from SPI Data
Register
if (indx < sizeof buff) {
buff [indx++] = c; // save data in the next
index in the array buff
if (c == '\r') //check for the end of the
word
process = true;
}
}
void loop (void) {
if (process) {
process = false; //reset the process
Serial.println (buff); //print the array on
serial monitor
indx = 0; //reset button to zero
}
}
5. Analisa [KEMBALI]
Pada percobaan ini yaitu Serial Peripheral Interface (SPI) prinsipnya masih sama dengan komunikasi UART yaitu masih memakai 2 mikrokontroller , cuman disini kita memakai 3 jalur untuk mentranfer data, yaitu
MOSI : Master Output Slave Input
Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi
jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.
MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai
master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka
pin MISO sebagai output.
SCLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku
sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku
sebagai input.pada percobaan ini maka pin 11,12,13 bertindak sebagai jalur, disini master bertindak sebagai output dan slave input atau memakai jalur MOSI, oleh karena itu LED nya dihubungkan pada master, karna nantik master yang bertindak sebegai output. button masih berfungsi sama, yaitu sebagai kondisi high dan low, jika ditekan maka akan berkondisi high, jika tidak maka kondisi low
6. Video Simulasi [KEMBALI]
7. Link Download [KEMBALI]
Download Video Praktikum Disini
Download Listing Program Disini
Tidak ada komentar:
Posting Komentar