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);
digitalWrite(LED_PIN, 1);
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.SetOneShot(false);
hub.SetAdc(&ads1015);
@ -83,17 +83,17 @@ void init() {
// Channel one and two are getting processed
adsConverter->m_convertedSamples[0].Connect(&signalProcess[0].m_incommingData);
adsConverter->m_convertedSamples[1].Connect(&signalProcess[1].m_incommingData);
signalProcess[0].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_0);
signalProcess[1].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_1);
//signalProcess[0].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_0);
//signalProcess[1].m_processedData.Connect(&cWebInterface::GetInstance()->m_adc_1);
// Channel three and four are not
adsConverter->m_convertedSamples[2].Connect(&cWebInterface::GetInstance()->m_adc_2);
adsConverter->m_convertedSamples[3].Connect(&cWebInterface::GetInstance()->m_adc_3);
//adsConverter->m_convertedSamples[2].Connect(&cWebInterface::GetInstance()->m_adc_2);
//adsConverter->m_convertedSamples[3].Connect(&cWebInterface::GetInstance()->m_adc_3);
WifiEvents.onStationDisconnect(STADisconnect);
WifiEvents.onStationGotIP(STAGotIP);
cWebInterface::GetInstance()->StartServer();
procTimer.initializeMs(HUB_PERIOD, updateSensorHub).start();
procTimer.initializeUs(HUB_PERIOD, updateSensorHub).start();
mylight.SetCurrent(500);
mylight.RectangleUpdate();
}

3
software/app/signal_process.cpp

@ -7,7 +7,7 @@
#include "signal_process.h"
#include <stddef.h>
#include <SmingCore/SmingCore.h>
#include <rijnfel_core/rijnfel_core.h>
//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) {
Serial.printf("Size:%d\n", size);
//Do whatever here really
}

2
software/app/web_interface.cpp

@ -61,7 +61,7 @@ void wsDisconnected(WebSocketConnection& socket) {
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(
false) {
false) {
for (int i = 0; i < 4; i++) {
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 RESOLUTION_DAC = 1024;
static const int HUB_PERIOD = 5;
static const int ADC_TIMEBASE = 250;
static const int ADC_PERIOD = 5;
static const int HUB_PERIOD = 800;
static const int ADC_TIMEBASE = 800;
static const int ADC_PERIOD = 800;
#define LED_PIN 2 // GPIO2

Loading…
Cancel
Save