#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; } } }