Télécharger Imprimer la page

Raspberry PICO Mode D'emploi page 115

Publicité

18.2.2 Multicore
Le même programme, mais en multicore. Un cœur gère la partie convertisseurs A/D et l'autre le SPI.
#include <SPI.h>
const uint8_t
SPI_MISO
const uint8_t
SPI_CS
const uint8_t
SPI_SCK
const uint8_t
SPI_MOSI
int
compteur
= 0;
bool
sens
= true;
// Core 0 lecture des valeurs analogiques
void
setup() {
Serial.begin(9600);
delay(10);
Serial.println("Setup 0
pinMode(A0,INPUT);
pinMode(A1,INPUT);
analogReadResolution(12);
Serial.println("Init analogique
delay(10000);
Serial.println("Setup 0
}
void
loop() {
Serial.print("Valeur broche A0:
Serial.print(analogRead(A0));
Serial.print(" - Valeur broche A1:
Serial.println(analogRead(A1));
delay(100);
}
// Core 1 modification des potentiomètres
void
setup1() {
delay(100);
Serial.println("Setup 1
bool
spiOK
= SPI.setRX(SPI_MISO);
spiOK
&= SPI.setTX(SPI_MOSI);
spiOK
&= SPI.setSCK(SPI_SCK);
spiOK
&= SPI.setCS(SPI_CS);
if
(spiOK) {
Serial.println("Init SPI
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer16(0b0000000000000000);
SPI.end();
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer16(0b0001000100000000);
SPI.end();
}
else
{
Serial.println("Init SPI
}
delay(10000);
Serial.println("Setup 1
}
void
loop1() {
if(sens) {
// Incrémente pot 0
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer(0b00000100);
SPI.end();
// Décrémente pot 1
SPI.begin(true);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
SPI.transfer(0b00011000);
SPI.end();
}
else
{
// Décrémente pot 0
SPI.begin(true);
= 16;
= 17;
= 18;
= 19;
Début");
OK");
fin");
");
");
Début");
OK");
KO");
Fin");

Publicité

loading

Ce manuel est également adapté pour:

Pico w