not sure what your expecting from the output , it works for men on out 2
i used this code / with fvr and vdd for vsource+ both work
the pickit3 i used did not seem to load the out2 pin so i left it connected for tests

i did make portc digital . i also tried setting out2 pin as an input ,it makes no difference either way making it analog is not relevent

Code:
;********************************************************************************'*  Name    : DACtest.pbp                               #### 1/2 Working code ####   *
'*  Date    : 02/08/20                                                           *
'*  Device  : 16F1705                                                            *
'*  Version : 1     (PBP 3.0.10.4)                                               *
'*********************************************************************************
'
'=========================================================================================================
'        CONFIGURE DEVICE
'=========================================================================================================
#CONFIG ; 16F1705
    __config _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CP_OFF & _BOREN_ON & _CLKOUTEN_OFF
    __config _CONFIG2, _WRT_OFF & _PPS1WAY_OFF & _ZCDDIS_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_LO & _LPBOR_OFF & _LVP_OFF	   
#ENDCONFIG


' Connections as follows:
'     ****16F1705 PIC**** Comments
'
' Vdd          (pin 1)    5 volts.      
'         RA5  (pin 2)    T1clk.                Spare.       
'         RA4  (pin 3)	  AN3, T1G.             Spare.
' MCLR    RA3  (pin 4)    IOC.  Pull High 10k.  Spare.
'         RC5  (pin 5)	  Opamp2in+, CCP1.      Spare.
'         RC4  (pin 6)    Opamp2in-.            Serin for setting from laptop (9600).
'         RC3  (pin 7)    AN7, Opamp2Out, CCP2. Serout for monitoring (9600).      
'         RC2  (pin 8)    AN6, Opamp1Out.       Spare.
'         RC1  (pin 9)    AN5, Opamp1in-.       Spare.
'         RC0  (pin 10)   AN4, Opamp1in+.       Spare.
'         RA2  (pin 11)   AN2, DAC1out2.        DAC alternate output.
' ICSPclk RA1  (pin 12)   AN1, Vref+.           Spare.
' ICSPdat RA0  (pin 13)   AN0, DAC1out1.        Default output voltage from DAC.
' Vss  Ground  (pin 14)   


'=========================================================================================================
'        PIN ASSIGNMENTS, SYSTEM CONSTANTS, TEMPORARY VARIABLES
'=========================================================================================================
' Alias pins


'=========================================================================================================
' Variables
'=========================================================================================================
a   var byte                    ' Loop counter. 
b var byte[8]
'=========================================================================================================
' Constants
'=========================================================================================================
 
' -----[ Initialization ]---------------------------------------------------------------- 


'    Clear                       ' Reset all variables.


	INCLUDE "modedefs.bas"		' Include serial modes.
	
    DEFINE DEBUG_REG PORTC      ' Debug pin port.
    DEFINE DEBUG_BIT 3          ' Debug pin.
    DEFINE DEBUG_BAUD 9600      ' Debug baud rate
    DEFINE DEBUG_MODE 1         ' Debug mode: 0 = True, 1 = Inverted
'    DEFINE DEBUG_PACING 1000    ' Debug character pacing in us
    DEFINE DEBUGIN_BIT 4        ' Input pin.


    DEFINE  OSC 4               ' Adjust to suit design.
    OSCCON  = %01101011         ' Internal 4MHz osc.
'    OSCCON  = %01110011         ' Internal 8MHz osc.
'    OSCCON  = %01111011         ' Internal 16MHz osc.
'    OSCCON  = %11110011         ' Internal 32MHz osc PLL.


    OPTION_REG.7 = 1            ' Disable weak pullups.
'    OPTION_REG.7 = 0            ' Enable weak pullups.


'    DEFINE ADC_BITS 10          ' Set number of bits in result.
'    DEFINE ADC_CLOCK 3          ' Set clock source (rc = 3).
'    DEFINE ADC_SAMPLEUS 50      ' Set sampling time in microseconds. 


    ADCON0 = 0                  ' No ADC.
'    ADCON0 = %00000001          ' Enable ADC.
'    ADCON1 = %10000000          ' Right justify, Frc, use Vdd for Vref.
'    ADCON2 = %00000000          ' No Trigger selects.


    ANSELA = 0                  ' Disable ADC.
'    ANSELA = %00000100          ' AN2 the rest Dig.
    ANSELC = %00000000          ' All Dig.


    CM1CON0 = 0                  ' Comparators off.


'    FVRCON = %0                 ' Disabled.
    FVRCON = %11000101          ' Enabled, Vref 1.024V.
'    DAC1CON0 = %10101000        ' Vref from FVR, DAC1out1 (RA0).
'=========================================================================================================
' ####### RA2 Sits at 2.277V with RA0 selected and running correctly.
    DAC1CON0 = %10010000        ' Vref from FVR, DAC1out2 (RA2).  
'=========================================================================================================
'    DAC1CON0 = %10111000        ' Vref from FVR, both outputs (RA0, RA2).  [Not sure if this is possible]
    DAC1CON1 = %10000000        ' Set initial output value to 50% of Vref.


    TRISA = %000000             ' All output.
    TRISC = %010100             ' C.4 serial in.


    latC.3 = 0                  ' Else first serial chars can be garbled...
    Pause 1000					' Short wait for things to settle.
debug "I'm Alive!", 13,10       ' Eureka moment.
    pause 3000                  ' Time enough to gloat.
    
   b[0]=128
   b[1]=192
   b[2]=255
   b[3]=192
   b[4]=128
   b[5]=40
   b[6]=0
   b[7]=40
'=========================================================================================================
' Subroutines
'=========================================================================================================


'=========================================================================================================
' Main
'=========================================================================================================
First:  
    a=7
    while a
    DAC1CON1 = b[a]
;debug "DAC = ",#a,13,10     ' 
    pause 5            ' Let the DMM settle.
    a=a-1
    wend
    goto first              ' Cycle.


    end
Name:  20200803_164145.jpg
Views: 1536
Size:  350.8 KB