Lab_interaccio/2018/LLAC-RGBW-varios/ZERO/M0-spi2/M0-spi-sercom1/M0-spi-sercom1.ino
2025-02-25 21:29:42 +01:00

31 lines
919 B
C++

#include <SPI.h>
#include "wiring_private.h" // pinPeripheral() function
// DOCUMENTACIÓN AQUI:
// https://learn.adafruit.com/using-atsamd21-sercom-to-add-more-spi-i2c-serial-ports?view=all
// SPIClass SPI (&PERIPH_SPI, PIN_SPI_MISO, PIN_SPI_SCK, PIN_SPI_MOSI, PAD_SPI_TX, PAD_SPI_RX);
// SPI_PAD_0_SCK_1 means MOSI is on SERCOMn.0 and SCK is on SERCOMn.1
// SERCOM_RX_PAD_3 means MISO on SERCOMn.3
SPIClass mySPI (&sercom1, 12, 13, 11, SPI_PAD_0_SCK_1, SERCOM_RX_PAD_3);
void setup() {
Serial.begin(115200);
// do this first, for Reasons
mySPI.begin();
// Assign pins 11, 12, 13 to SERCOM functionality
pinPeripheral(11, PIO_SERCOM); // MOSI
pinPeripheral(12, PIO_SERCOM); // MISO
pinPeripheral(13, PIO_SERCOM); // SCK
}
uint8_t i=0;
void loop() {
SerialUSB.println(i);
mySPI.beginTransaction(SPISettings(8000000, MSBFIRST, SPI_MODE0));
mySPI.transfer(i++);
mySPI.endTransaction();
}