TUGAS PENDAHULUAN MODUL 3
1. Kondisi [Kembali]
Percobaan 2 kondisi 1 :Buatlah kondisi awal LED mati, lalu hidup berkedip dengan delay 500 ms
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. Vidio Simulasi [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);
}
#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 }}
Tidak ada komentar:
Posting Komentar