#define cs 14 // chip select 10 uno
#define rdy 12 // data ready, input 9 uno
//#define rst 8 // may omit
#define SPISPEED 1250000
// 1700000
#include <SPI.h>
#include <math.h>
#include <Wire.h>
byte vz;
byte s8;
...
byte dp;
unsigned long adc_val =0; // store reading
byte adc_val1 =0; //byte1
byte adc_val2 =0; //byte2
byte adc_val3 =0; //byte3
double voltage;
void setup()
{
Serial.begin(115200);
Serial.println("ADS 1256 V 0.1");
Wire.begin();
pinMode(cs, OUTPUT);
pinMode(10, OUTPUT);
digitalWrite(10,HIGH); // Versorgung PDWN
//pinMode(2, OUTPUT);
//pinMode(3, OUTPUT);
digitalWrite(cs, LOW); // tied low is also OK.
pinMode(rdy, INPUT);
//pinMode(rst, OUTPUT);
//digitalWrite(rst, LOW);
delay(1); // LOW at least 4 clock cycles of onboard clock. 100 microsecons is enough
//digitalWrite(rst, HIGH); // now reset to deafult values
delay(500);
SPI.begin(); //start the spi-bus
delay(500);
Serial.println("spi begin");
//init
digitalWrite(cs, LOW); //
Serial.println("cs low");
while (digitalRead(rdy)) {Serial.print("rdy= ");Serial.println(digitalRead(rdy));delay(250);} // wait for ready_line to go low Ausgabe ist '1'
Serial.println("dig read rdy");
SPI.beginTransaction(SPISettings(SPISPEED, MSBFIRST, SPI_MODE1)); // start SPI
delayMicroseconds(10);
Moin,
Ich habe ein ADS-Modul über SPI an den F103 angeschlossen. Null
Reaktion. Verwendet habe ich die Pins PA7 - PA4. Muss ich im SETUP
irgendwas angeben, um genau diesen SPI-Port anzusprechen, ähnlich wie
Serial und Serial1?
#include <SPI.h> und SPI.begin() sind natürlich angegeben.
Er bleibt in der while-Schleife hängen.
Edith meinte, ich sollte noch dabei sagen, dass das Ganze an einem UNO funktioniert.