80 lines
1.9 KiB
C++
80 lines
1.9 KiB
C++
#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();
|
|
}
|
|
|
|
}
|