Files
hsb/S - Software/0 - HSB MRTS Kathode-MCP/3 - Implementation/0 - Code/HAL/src/DACDevice.c
mmi 711f8e72be Fixed multiple bugs and errors.
- Added WARNING handler
- put voltage calculations to dedicated module

fixed last errors. Updated menu repair screen without ERROR from PID 

This is version 0.9.0.3, which is used for the first duration test
Will also be tagged

git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@272 05563f52-14a8-4384-a975-3d1654cca0fa
2017-11-15 15:40:39 +00:00

131 lines
3.3 KiB
C

// -----------------------------------------------------------------------------
/// @file DACDevice.c
/// @brief Description
// -----------------------------------------------------------------------------
// Micro-Key bv
// Industrieweg 28, 9804 TG Noordhorn
// Postbus 92, 9800 AB Zuidhorn
// The Netherlands
// Tel: +31 594 503020
// Fax: +31 594 505825
// Email: support@microkey.nl
// Web: www.microkey.nl
// -----------------------------------------------------------------------------
/// $Revision$
/// $Author$
/// $Date$
// (c) 2017 Micro-Key bv
// -----------------------------------------------------------------------------
/// @file DACDevice.c
/// @ingroup {group_name}
// -----------------------------------------------------------------------------
// Include files
// -----------------------------------------------------------------------------
#include <stdio.h>
#include "DACDevice.h"
#include "Logger.h"
// -----------------------------------------------------------------------------
// Constant and macro definitions
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Type definitions
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// File-scope variables
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Function declarations
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Function definitions
// -----------------------------------------------------------------------------
ErrorStatus DACDevice_construct(struct DACDevice* self, DACWriteFunction write, DACReadbackFunction readback, unsigned int resolutionInBits)
{
ErrorStatus returnValue = SUCCESS;
if (!self->initialized)
{
self->_write = write;
self->_readback = readback;
self->resolutionInBits = resolutionInBits;
self->initialized = true;
}
else
{
returnValue = ERROR;
}
return returnValue;
}
void DACDevice_destruct(struct DACDevice* self)
{
if (self->initialized)
{
self->initialized = false;
self->_write = NULL;
}
}
ErrorStatus DACDevice_write(const struct DACDevice* self, uint32_t voltage)
{
ErrorStatus returnValue = SUCCESS;
if (self->initialized)
{
if (self->_write != NULL)
{
returnValue = self->_write(self, voltage);
}
else
{
returnValue = ERROR;
}
}
else
{
returnValue = ERROR;
}
return returnValue;
}
uint32_t DACDevice_getCurrentValue(const struct DACDevice* self)
{
uint32_t returnValue = SUCCESS;
if (self->initialized)
{
if (self->_readback != NULL)
{
returnValue = self->_readback(self);
}
else
{
returnValue = 0;
}
}
else
{
returnValue = 0;
}
return returnValue;
}