Browse Source

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
tags/zoom-1.0
jim 16 years ago
parent
commit
2322b564a3
3 changed files with 26 additions and 6 deletions
  1. +5
    -1
      firmware/dac.c
  2. +6
    -2
      firmware/dac.h
  3. +15
    -3
      firmware/zoom.c

+ 5
- 1
firmware/dac.c 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;


+ 6
- 2
firmware/dac.h 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

+ 15
- 3
firmware/zoom.c 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();


Loading…
Cancel
Save