2025-02-18 15:37:37 -05:00

52 lines
1.1 KiB
C

#include "SPI.h"
#include "define.h"
#include "BoardCfg.h"
#include "DACInterface.h"
unsigned char mDACSPIBaudrate;
void DACInit()
{
mDACSPIBaudrate = SPICalculateBRG(PERIPHERAL_FREQ, 20000000);
}
int DACSetValue(int Channel, int Value)
{
unsigned short Buf;
unsigned char LSByte, MSByte;
Buf = Value << 2;
Buf &= (0x0FFF);
LSByte = (unsigned char)(Buf & 0xFF);
Buf >>= 8;
MSByte = (Buf & 0xFF);
switch(Channel)
{
case BUREAU_DAC_CHANNEL:
{
SPI2CONbits.CKE = 0;
VU1_DAC_SYNC_PIN = 0;
SPITransaction(MSByte,mDACSPIBaudrate);
SPITransaction(LSByte,mDACSPIBaudrate);
VU1_DAC_SYNC_PIN = 1;
SPI2CONbits.CKE = 1;
break;
}
case CUISINE_DAC_CHANNEL:
{
SPI2CONbits.CKE = 0;
VU2_DAC_SYNC_PIN = 0;
SPITransaction(MSByte,mDACSPIBaudrate);
SPITransaction(LSByte,mDACSPIBaudrate);
VU2_DAC_SYNC_PIN = 1;
SPI2CONbits.CKE = 1;
break;
}
default:
{
break;
}
}
}