#include "rpp/rpp.h"
+#include "rpp/mutex.h"
#ifndef FREERTOS_POSIX
#include "drv/dac.h"
#include "drv/spi_tms570.h"
#endif
+RPP_MUTEX_DEFINE(mutex_dac);
+
static boolean_t initialized = FALSE;
int8_t rpp_dac_init()
{
if (initialized)
return FAILURE;
+ if (!RPP_MUTEX_INIT(mutex_dac))
+ return FAILURE;
initialized = TRUE;
#ifndef FREERTOS_POSIX
spi_tms570_init();
uint8_t index = pin - 1;
+ RPP_MUTEX_LOCK(mutex_dac);
// Mark state
enabled_cache[index] = enabled;
// Mark as changed
changed_st[index] = TRUE;
-
+ RPP_MUTEX_UNLOCK(mutex_dac);
return SUCCESS;
}
uint8_t index = pin - 1;
+ RPP_MUTEX_LOCK(mutex_dac);
// Set value to output cache
out_cache[index] = val;
// Mark as changed
changed_st[index] = TRUE;
+ RPP_MUTEX_UNLOCK(mutex_dac);
return SUCCESS;
}
uint8_t index = pin - 1;
+ RPP_MUTEX_LOCK(mutex_dac);
// Set value to output cache
out_cache[index] = val;
// Mark as changed
changed_st[index] = TRUE;
+ RPP_MUTEX_UNLOCK(mutex_dac);
return SUCCESS;
}
int i = 0;
for (i = 0; i < 4; i++) {
-
+ RPP_MUTEX_LOCK(mutex_dac);
// If changed commit changes to hardware
if (changed_st[i]) {
changed_st[i] = FALSE;
}
+ RPP_MUTEX_UNLOCK(mutex_dac);
}
return SUCCESS;