Lab_interaccio/2015/EjemploSPI_DVK/EjemploSPI_DVK.ino

80 lines
1.9 KiB
Arduino
Raw Permalink Normal View History

2025-02-25 21:29:42 +01:00
#include <SPI.h>
/*
ARDUINO ports definitions - GPIOS and ADCs
*/
#define RESET 8 //LDR
#define MUX 2 //LDR
#define PROG_MODE A2
#define BLUE A0
#define GREEN A1
#define MMC_CS 10
#define RTX_CS 9
#define POWER 6
#define SELECT_MODE_1 7
#define SELECT_MODE_2 3
#define SHT21_ADDRESS 0x40 // Direction of the sht21
unsigned long t = 0;
byte seq_byte = 0;
void setup() {
pinMode(RESET, OUTPUT);
digitalWrite(RESET, LOW); //RESET ON
delay(100);
digitalWrite(RESET, HIGH); //RESET OFF
pinMode(MUX, OUTPUT);
digitalWrite(MUX, LOW); //NORMAL MODE
pinMode(PROG_MODE, OUTPUT);
digitalWrite(PROG_MODE, LOW); //PROG_MODE OFF
pinMode(GREEN, OUTPUT);
digitalWrite(GREEN, HIGH); //GREEN ON
pinMode(MMC_CS, OUTPUT);
pinMode(52, OUTPUT);
digitalWrite(MMC_CS, HIGH); //SPI MMC NO SELECT
pinMode(RTX_CS, OUTPUT);
digitalWrite(RTX_CS, HIGH); //SPI RTX NO SELECT
pinMode(POWER, OUTPUT);
digitalWrite(POWER, HIGH); //ENABLE POWER RTX
SPI.begin();
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
if (millis() > (t + 3000)) {
//Test SPI (Arduino=Master)
digitalWrite(RTX_CS, HIGH); //Hay que ponerlo ya que SPI.begin no lo baja
SPI.beginTransaction(SPISettings(1000000, LSBFIRST, SPI_MODE0));
if (seq_byte == 254) {
seq_byte == 0;
} else {
seq_byte ++;
}
Serial.println("Datos a enviar:");
Serial.print("->P1: "); Serial.println(seq_byte);
Serial.print("->P2: "); Serial.println(123);
Serial.print("->P3: "); Serial.println(100);
byte p1 = SPI.transfer(seq_byte);
byte p2 = SPI.transfer(123);
byte p3 = SPI.transfer(100);
Serial.println("Datos recibidos:");
Serial.print("<-P1: "); Serial.println(p1);
Serial.print("<-P2: "); Serial.println(p2);
Serial.print("<-P3: "); Serial.println(p3);
SPI.endTransaction();
digitalWrite(RTX_CS, LOW);
t = millis();
}
}