Tasks work in progress
This commit is contained in:
38
RotaxMonitor/src/devices.h
Normal file
38
RotaxMonitor/src/devices.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
// Device Libraries
|
||||
#include <ADS1256.h>
|
||||
#include <AD5292.h>
|
||||
#include <Adafruit_SSD1306.h>
|
||||
#include <PCA95x5.h>
|
||||
|
||||
// ADC Channel mapping
|
||||
#define PICKUP_IN_A12 SING_0
|
||||
#define PICKUP_IN_A34 SING_1
|
||||
#define PICKUP_OUT_A12 SING_2
|
||||
#define PICKUP_OUT_A34 SING_3
|
||||
|
||||
#define PICKUP_IN_B12 SING_4
|
||||
#define PICKUP_IN_B34 SING_5
|
||||
#define PICKUP_OUT_B12 SING_6
|
||||
#define PICKUP_OUT_B34 SING_7
|
||||
|
||||
struct Devices {
|
||||
AD5292* pot;
|
||||
ADS1256* adc;
|
||||
Adafruit_SSD1306* lcd;
|
||||
PCA9555* io;
|
||||
};
|
||||
|
||||
float adcReadChannel(ADS1256* adc, const uint32_t ch){
|
||||
adc->setMUX(PICKUP_IN_A12);
|
||||
// scarta 3 conversioni
|
||||
for (int i = 0; i < 3; i++) {
|
||||
while (digitalRead(ADC_DRDY));
|
||||
adc->readSingle();
|
||||
}
|
||||
|
||||
// ora lettura valida a 30kSPS → ~100 µs di settling
|
||||
while (digitalRead(ADC_DRDY));
|
||||
return adc->convertToVoltage(adc->readSingle());
|
||||
}
|
||||
Reference in New Issue
Block a user