Fix DAC stuff slightly

Update code to test bipolar dac

git-svn-id: https://bucket.mit.edu/svn/nilm/zoom@6027 ddd99763-3ecb-0310-9145-efcb8ce7c51f
This commit is contained in:
jim 2008-02-29 09:25:05 +00:00
parent 97d0350be5
commit 2322b564a3
3 changed files with 26 additions and 6 deletions

View File

@ -30,7 +30,11 @@ void dac_init(void)
dac_write(0x0000);
}
/* Write raw 16-bit value to DAC */
/* Write raw 16-bit value to DAC:
0xFFFF 4.9998v
0x8000 0v
0x0000 -5v
*/
void dac_write(uint16_t val)
{
LATGbits.LATG9 = 0;

View File

@ -3,10 +3,14 @@
#include "config.h"
/* Initialize ADC */
/* Initialize DAC (AD5542) */
void dac_init(void);
/* Write raw 16-bit value to DAC */
/* Write raw 16-bit value to DAC:
0xFFFF 4.9998v
0x8000 0v
0x0000 -5v
*/
void dac_write(uint16_t val);
#endif

View File

@ -30,8 +30,10 @@ void fast_callback(void)
if (v < ADC_MIN && dac_cmd < DAC_MAX)
dac_cmd ++;
if (v > ADC_MAX && dac_cmd > DAC_MIN)
else if (v > ADC_MAX && dac_cmd > DAC_MIN)
dac_cmd --;
else
return; /* No new command */
/* Write new value to DAC */
dac_write(dac_cmd << DAC_SHIFT);
@ -66,9 +68,19 @@ int main(void)
adcext_init();
dac_init();
adc_init();
adc_adc_callback = fast_callback;
adc_dma_callback = slow_callback;
// adc_adc_callback = fast_callback;
// adc_dma_callback = slow_callback;
{
int16_t i = 0;
while(1) {
i++;
dac_write(i);
uart1_put_hex16(i);
uart1_crlf();
}
}
while(1) {
if (send_data) {
send_to_pc();