38 #define CONFIG_SLAVE_ENABLE() CONFIG_RB3_AS_DIG_OUTPUT()
39 #define SLAVE_ENABLE() _LATB3 = 0 //low true assertion
40 #define SLAVE_DISABLE() _LATB3 = 1
43 void configSPI1(
void) {
45 SPI1CON1 = SEC_PRESCAL_1_1 |
51 #if (defined(__dsPIC33E__) || defined(__PIC24E__))
61 SPI1STATbits.SPIEN = 1;
64 CONFIG_SLAVE_ENABLE();
68 void writeDAC (
uint8_t dacval) {
75 #define VREF 3.3 //assume Vref = 3.3 volts
84 CONFIG_AN0_AS_ANALOG();
92 u8_dacVal = (u16_adcVal>>4) & 0x00FF;
94 f_adcVal = u16_adcVal;
95 f_adcVal = f_adcVal/4096.0 * VREF;
97 f_dacVal = f_dacVal/256.0 * VREF;
100 uint16_t ui16_adcValmv, ui16_dacValmv;
101 ui16_adcValmv = f_adcVal * 1000;
102 ui16_dacValmv = f_dacVal * 1000;
103 printf(
"ADC in: %d mV (0x%04x), To DAC: %d mV (0x%02x) \n",
104 ui16_adcValmv, u16_adcVal, ui16_dacValmv, u8_dacVal);
107 printf(
"ADC in: %4.3f V (0x%04x), To DAC: %4.3f V (0x%02x) \n",
108 (
double) f_adcVal, u16_adcVal, (
double) f_dacVal, u8_dacVal);