Files

115 lines
3.8 KiB
C
Executable File

/**
* \file talise_hal.c
* \brief Contains TALISE API Hardware Abstraction Layer (HAL) functions
*
* Talise API version: 3.5.0.2
*
* Copyright 2015-2017 Analog Devices Inc.
* Released under the AD9378-AD9379 API license, for more information see the "LICENSE.txt" file in this zip file.
*/
#include "talise_hal.h"
adiHalErr_t talSpiReadByte(void *devHalInfo, uint16_t addr, uint8_t *readdata)
{
adiHalErr_t halError = ADIHAL_OK;
halError = ADIHAL_spiReadByte(devHalInfo, addr, readdata);
if (halError == ADIHAL_WAIT_TIMEOUT)
{
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
halError = ADIHAL_spiReadByte(devHalInfo, addr, readdata);
}
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
return halError;
}
adiHalErr_t talSpiWriteByte(void *devHalInfo, uint16_t addr, uint8_t data)
{
adiHalErr_t halError = ADIHAL_OK;
halError = ADIHAL_spiWriteByte(devHalInfo, addr, data);
if (halError == ADIHAL_WAIT_TIMEOUT)
{
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
halError = ADIHAL_spiWriteByte(devHalInfo, addr, data);
}
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
return halError;
}
#include "stdio.h"
adiHalErr_t talSpiWriteBytes(void *devHalInfo, uint16_t *addr, uint8_t *data, uint32_t count)
{
adiHalErr_t halError = ADIHAL_OK;
//printf("[%s,%d] start. count=%d addr=0x%x\n", __FUNCTION__, __LINE__, count, addr);
halError = ADIHAL_spiWriteBytes(devHalInfo, addr, data, count);
if (halError == ADIHAL_WAIT_TIMEOUT)
{
//printf("[%s,%d] tout. count=%d addr=0x%x\n", __FUNCTION__, __LINE__, count, addr);
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
halError = ADIHAL_spiWriteBytes(devHalInfo, addr, data, count);
}
//printf("[%s,%d] end. count=%d addr=0x%x\n", __FUNCTION__, __LINE__, count, addr);
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
return halError;
}
adiHalErr_t talSpiReadBytes(void *devHalInfo, uint16_t *addr, uint8_t *readdata, uint32_t count)
{
adiHalErr_t halError = ADIHAL_OK;
halError = ADIHAL_spiReadBytes(devHalInfo, addr, readdata, count);
if (halError == ADIHAL_WAIT_TIMEOUT)
{
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
halError = ADIHAL_spiReadBytes(devHalInfo, addr, readdata, count);
}
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
return halError;
}
adiHalErr_t talSpiReadField(void *devHalInfo, uint16_t addr, uint8_t *fieldVal, uint8_t mask, uint8_t startBit)
{
adiHalErr_t halError = ADIHAL_OK;
halError = ADIHAL_spiReadField(devHalInfo, addr, fieldVal, mask, startBit);
if (halError == ADIHAL_WAIT_TIMEOUT)
{
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
halError = ADIHAL_spiReadField(devHalInfo, addr, fieldVal, mask, startBit);
}
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
return halError;
}
adiHalErr_t talSpiWriteField(void *devHalInfo, uint16_t addr, uint8_t fieldVal, uint8_t mask, uint8_t startBit)
{
adiHalErr_t halError = ADIHAL_OK;
halError = ADIHAL_spiWriteField(devHalInfo, addr, fieldVal, mask, startBit);
if (halError == ADIHAL_WAIT_TIMEOUT)
{
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
halError = ADIHAL_spiWriteField(devHalInfo, addr, fieldVal, mask, startBit);
}
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
return halError;
}
adiHalErr_t talWriteToLog(void *devHalInfo, adiLogLevel_t logLevel, uint32_t errorCode, const char *comment)
{
adiHalErr_t halError = ADIHAL_OK;
halError = ADIHAL_writeToLog(devHalInfo, logLevel, errorCode, comment);
return halError;
}