#include #include #include #include "..\h\manualSPI.h" void SPI3_send(int data) { int i; for(i=0;i<16;i++) { SPI3_OUT =((data >> i) & 0x01); delay_ms(10); SPI3_CLK = 1; delay_ms(10); SPI3_CLK = 0; //data >>= 1; } } void SPI3_start(void) { SPI3_CS = 1; delay_ms(10); SPI3_CLK = 1; delay_ms(10); SPI3_CS = 0; delay_ms(10); } void SPI3_end(void) { //delay_ms(10); SPI3_CS = 1; delay_ms(10); } void init_dds(void) { int data; TRISD = 0; data = 0x2108; // Reset registers SPI3_start(); SPI3_send(data); SPI3_end(); data = 0x75C3; // 14 LSB's of FREQ0 SPI3_start(); SPI3_send(data); SPI3_end(); data = 0x40A3; // 14 MSB's of FREQ0 SPI3_start(); SPI3_send(data); SPI3_end(); data = 0x8000; // 14 LSB's of FREQ1 = 0 SPI3_start(); SPI3_send(data); SPI3_end(); data = 0x8000; // 14 MSB's of FREQ1 = 0 SPI3_start(); SPI3_send(data); SPI3_end(); data = 0xC000; // PHASE0 = 0 SPI3_start(); SPI3_send(data); SPI3_end(); data = 0xE000; // PHASE1 = 0 SPI3_start(); SPI3_send(data); SPI3_end(); data = 0x2008; // Exit reset SPI3_start(); SPI3_send(data); SPI3_end(); }