Hm.... false alarm. The DAC chip was bad.
We have it (or at least a simple saw tooth wave demo) working now:
Code:
;@ __CONFIG _HS_OSC & _WDT_OFF
DEFINE OSC 20
DEFINE I2C_SLOW 1
' Allocate RAM
result VAR WORD ' ADC result '2
Iter VAR BYTE ' Generic Iterator '1
' Initialize ports and directions
TRISB.1 = 0 ' Pin for SDA
TRISB.4 = 0 ' Pin for SCL
mainloop: ' Main program loop
'This should set the DAC to output.
FOR ITER =0 TO 254
result = ITER
result=result<<4
PAUSE 100
I2CWRITE PORTB.1, PORTB.4, $9C, [result.HIGHBYTE, result.LOWBYTE]
NEXT
FOR ITER =255 TO 1 STEP -1
result = ITER
result=result<<4
PAUSE 100
I2CWRITE PORTB.1, PORTB.4, $9C, [result.HIGHBYTE, result.LOWBYTE]
NEXT
goto mainloop
Bookmarks