Browse Source

Try the faster adc

software_fast_adc
Elmar van Rijnswou 7 years ago
parent
commit
343dc35727
  1. 12
      software/app/application.cpp
  2. 3
      software/app/signal_process.cpp
  3. 2
      software/app/web_interface.cpp
  4. 6
      software/include/hardware.h

12
software/app/application.cpp

@ -69,7 +69,7 @@ void init() {
pinMode(LED_PIN, OUTPUT); pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, 1); digitalWrite(LED_PIN, 1);
ads1015.SetMux(ads::eInputMux::AIN_0); ads1015.SetMux(ads::eInputMux::AIN_0);
ads1015.SetSampleSpeed(ads::eSampleSpeed::SPS_3300); ads1015.SetSampleSpeed(ads::eSampleSpeed::SPS_2400);
ads1015.SetGain(ads::eGainAmplifier::FSR_4_096); ads1015.SetGain(ads::eGainAmplifier::FSR_4_096);
ads1015.SetOneShot(false); ads1015.SetOneShot(false);
hub.SetAdc(&ads1015); hub.SetAdc(&ads1015);
@ -83,17 +83,17 @@ void init() {
// Channel one and two are getting processed // Channel one and two are getting processed
adsConverter->m_convertedSamples[0].Connect(&signalProcess[0].m_incommingData); adsConverter->m_convertedSamples[0].Connect(&signalProcess[0].m_incommingData);
adsConverter->m_convertedSamples[1].Connect(&signalProcess[1].m_incommingData); adsConverter->m_convertedSamples[1].Connect(&signalProcess[1].m_incommingData);
signalProcess[0].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_0); //signalProcess[0].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_0);
signalProcess[1].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_1); //signalProcess[1].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_1);
// Channel three and four are not // Channel three and four are not
adsConverter->m_convertedSamples[2].Connect(&cWebInterface::GetInstance()->m_adc_2); //adsConverter->m_convertedSamples[2].Connect(&cWebInterface::GetInstance()->m_adc_2);
adsConverter->m_convertedSamples[3].Connect(&cWebInterface::GetInstance()->m_adc_3); //adsConverter->m_convertedSamples[3].Connect(&cWebInterface::GetInstance()->m_adc_3);
WifiEvents.onStationDisconnect(STADisconnect); WifiEvents.onStationDisconnect(STADisconnect);
WifiEvents.onStationGotIP(STAGotIP); WifiEvents.onStationGotIP(STAGotIP);
cWebInterface::GetInstance()->StartServer(); cWebInterface::GetInstance()->StartServer();
procTimer.initializeMs(HUB_PERIOD, updateSensorHub).start(); procTimer.initializeUs(HUB_PERIOD, updateSensorHub).start();
mylight.SetCurrent(500); mylight.SetCurrent(500);
mylight.RectangleUpdate(); mylight.RectangleUpdate();
} }

3
software/app/signal_process.cpp

@ -7,7 +7,7 @@
#include "signal_process.h" #include "signal_process.h"
#include <stddef.h> #include <stddef.h>
#include <SmingCore/SmingCore.h>
#include <rijnfel_core/rijnfel_core.h> #include <rijnfel_core/rijnfel_core.h>
//TODO remove this //TODO remove this
@ -33,6 +33,7 @@ void cSignalProcess::ReceiveCallback(void* i_data, cDataReceiver* i_provider) {
} }
void cSignalProcess::process(uint32_t* io_array, size_t size) { void cSignalProcess::process(uint32_t* io_array, size_t size) {
Serial.printf("Size:%d\n", size);
//Do whatever here really //Do whatever here really
} }

2
software/app/web_interface.cpp

@ -61,7 +61,7 @@ void wsDisconnected(WebSocketConnection& socket) {
cWebInterface::cWebInterface() : cWebInterface::cWebInterface() :
m_serverStarted(false), m_adc_0(this), m_adc_1(this), m_adc_2(this), m_adc_3(this), m_connectedUser(NULL), m_sendWebsocket( m_serverStarted(false), m_adc_0(this), m_adc_1(this), m_adc_2(this), m_adc_3(this), m_connectedUser(NULL), m_sendWebsocket(
false) { false) {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
m_adc_value_average[i] = 0; m_adc_value_average[i] = 0;
} }

6
software/include/hardware.h

@ -22,9 +22,9 @@ static const uint16_t CURR_MAX_UAMP = 10000; // 10 mA max.
static const uint16_t VREF_DAC = 3300; // in mV static const uint16_t VREF_DAC = 3300; // in mV
static const uint16_t RESOLUTION_DAC = 1024; static const uint16_t RESOLUTION_DAC = 1024;
static const int HUB_PERIOD = 5; static const int HUB_PERIOD = 800;
static const int ADC_TIMEBASE = 250; static const int ADC_TIMEBASE = 800;
static const int ADC_PERIOD = 5; static const int ADC_PERIOD = 800;
#define LED_PIN 2 // GPIO2 #define LED_PIN 2 // GPIO2

Loading…
Cancel
Save