void dac_init(void){ /*Tri-state the output driver by selecting an input -> added after reading user manual pg 409*/ Chip_SCU_PinMuxSet(4,4,SCU_MODE_FUNC0); Chip_GPIO_SetPinDIRInput(LPC_GPIO_PORT, 2, 4); // set GPIO port direction register Chip_SCU_PinMuxSet(4,4,SCU_MODE_INACT); // disable pull up and pull down resistor LPC_SCU->SFSP[4][4] &= ~(1<<6);//disable receiveing by setting the EZI bit to zero. Chip_SCU_DAC_Analog_Config(); //select DAC function Chip_DAC_Init(LPC_DAC); //initialize DAC Chip_DAC_SetDMATimeOut(LPC_DAC, 0xFFFF); Chip_DAC_ConfigDAConverterControl(LPC_DAC, (DAC_CNT_ENA | DAC_DMA_ENA)); } void DACTask1(void) { static uint32_t tmp = 0; uint32_t i = 0; while (1) { tmp++; if (tmp == DATA_SIZE)) { tmp = 0; } Chip_DAC_UpdateValue(LPC_DAC, sine_wave[tmp]); //update DAC value while (!(Chip_DAC_GetIntStatus(LPC_DAC))) {} for(i = 0; i < 10000; i++); } } |