diff --git a/software/app/application.cpp b/software/app/application.cpp index d124e03..c4e150e 100644 --- a/software/app/application.cpp +++ b/software/app/application.cpp @@ -2,7 +2,7 @@ #include #include #include "ads101x.h" -#include "dac101c085.h" +#include "excitation_light.h" #include "sensor_hub.h" #include "sensor_settings.h" #include "double_buffer.h" @@ -13,9 +13,7 @@ static const int HUB_PERIOD = 5; static const int ADC_TIMEBASE = 250; static const int ADC_PERIOD = 5; -static const uint8_t ADC_ADDRESS = 0x48; -static const uint8_t DAC_ADDRESS = 0xC; - +//static const uint8_t ADC_ADDRESS = 0x48; using namespace rijnfel; @@ -24,9 +22,10 @@ void STADisconnect(String ssid, uint8_t ssid_len, uint8_t bssid[6], void STAGotIP(IPAddress ip, IPAddress mask, IPAddress gateway); Timer procTimer; +Timer rectangleTimer; ads::cADS101x adc(0, ADC_ADDRESS); uint8_t channel = 0; -dac::cDAC101C085 mydac(1, DAC_ADDRESS); +light::cExcitationLight mylight; cSensorHub hub(HUB_PERIOD); @@ -84,11 +83,8 @@ void init() { //procTimer.initializeMs(HUB_PERIOD, updateSensorHub).start(); //procTimer.initializeMs(5000, SettingsTest).start(); - //mydac.CheckDev(); - //Serial.println(mydac.ReadSettings()); - Serial.println(mydac.ChangeSettings(dac::eOpMode::NORMAL, 1023)); - Serial.println(mydac.ReadSettings()); - + mylight.SetCurrent(5000); + mylight.RectangleUpdate(); } void STADisconnect(String ssid, uint8_t ssid_len, uint8_t bssid[6], diff --git a/software/app/excitation_light.cpp b/software/app/excitation_light.cpp index c46586b..c9572bc 100644 --- a/software/app/excitation_light.cpp +++ b/software/app/excitation_light.cpp @@ -19,7 +19,7 @@ namespace light { //-------------------------------------Constructor---------------------------------------------------------------------------- cExcitationLight::cExcitationLight(): - m_rectangleStatus(0), m_DAC_Rect_High(0) + m_rectangleStatus(0), m_DACRectHigh(0) { m_DAC = new dac::cDAC101C085(1, DAC1_ADDRESS); } @@ -31,11 +31,13 @@ cExcitationLight::~cExcitationLight() } //-------------------------------------setCurrent----------------------------------------------------------------------------- -uint8_t cExcitationLight::setCurrent(uint16_t microamp) +uint8_t cExcitationLight::SetCurrent(uint16_t microamp) { + uint16_t new_DACRectHigh = 0 if(microamp < CURR_MAX_UAMP) { - m_DAC_Rect_High = R_SENSE * microamp; + new_DACRectHigh = microamp/R_SENSE_DIV_FACT; + Serial.println(m_DACRectHigh); return 1; } else @@ -43,10 +45,10 @@ uint8_t cExcitationLight::setCurrent(uint16_t microamp) } //-------------------------------------rectangleUpdate------------------------------------------------------------------------ -uint8_t cExcitationLight::rectangleUpdate() +uint8_t cExcitationLight::RectangleUpdate() { m_rectangleStatus ? m_DAC->ChangeSettings(dac::eOpMode::NORMAL, 0) : m_DAC->ChangeSettings(dac::eOpMode::NORMAL, m_DAC_Rect_High); - rectangle_Status ^= 0xFF; + m_rectangleStatus ^= 0xFF; } diff --git a/software/app/excitation_light.h b/software/app/excitation_light.h index 544e8ab..43593ff 100644 --- a/software/app/excitation_light.h +++ b/software/app/excitation_light.h @@ -30,12 +30,12 @@ class cExcitationLight public: cExcitationLight(); // Constructor ~cExcitationLight(); // Destructor - uint8_t setCurrent(uint16_t microamp); - uint8_t rectangleUpdate(); + uint8_t SetCurrent(uint16_t microamp); + uint8_t RectangleUpdate(); private: dac::cDAC101C085 *m_DAC; uint8_t m_rectangleStatus; - uint16_t m_DAC_Rect_High; + uint16_t m_DACRectHigh; }; } diff --git a/software/app/hardware.h b/software/app/hardware.h index 53b225c..8e1f60b 100644 --- a/software/app/hardware.h +++ b/software/app/hardware.h @@ -15,7 +15,7 @@ static const uint8_t ADC_ADDRESS = 0x48; static const uint8_t DAC1_ADDRESS = 0xC; -#define R_SENSE (uint8_t) 100 // 100 Ohm sensing resistor +#define R_SENSE_DIV_FACT 100 // 100 Ohm sensing resistor #define CURR_MAX_UAMP 10000 // 10 mA max. #endif /* APP_HARDWARE_H_ */