Skip to content
Snippets Groups Projects
Commit e40d54b0 authored by Michael DM Dryden's avatar Michael DM Dryden
Browse files

Add eis_misc: functions for gain and reference selection.

parent c4cfa67a
Branches
No related merge requests found
//
// eis_misc.c
// dstat-firmware
//
// Created by Michael Dryden on 2017-03-02.
// Copyright © 2017 Michael Dryden. All rights reserved.
//
#include "eis_misc.h"
#include "ds4550.h"
void eis_set_gain(uint8_t gain){
/**
* Set EIS IV converter gain.
*
* @param gain Gain setting defined in eis_misc.h
*/
switch (gain) {
case EIS_IV_GAIN_0:
ds4550_set_pins(0b110000110, 0b111000000);
break;
case EIS_IV_GAIN_100:
ds4550_set_pins(0b111000110, 0b111000000);
break;
case EIS_IV_GAIN_3k:
ds4550_set_pins(0b101000110, 0b111000000);
break;
case EIS_IV_GAIN_30k:
ds4550_set_pins(0b100000110, 0b111000000);
break;
case EIS_IV_GAIN_300k:
ds4550_set_pins(0b011000110, 0b111000000);
break;
case EIS_IV_GAIN_3M:
ds4550_set_pins(0b010000110, 0b111000000);
break;
case EIS_IV_GAIN_30M:
ds4550_set_pins(0b001000110, 0b111000000);
break;
case EIS_IV_GAIN_100M:
ds4550_set_pins(0b000000110, 0b111000000);
break;
default:
printf("#WAR: EIS: No gain provided\r\n");
break;
}
return;
}
void eis_set_ref(uint8_t ref){
/**
* Set EIS reference resistor switches.
*
* @param ref Reference setting defined in eis_misc.h
*/
switch (ref) {
case EIS_REF_CELL:
ds4550_set_pins(0b000000000, 0b000110000);
break;
case EIS_REF_R1:
ds4550_set_pins(0b000010000, 0b000110000);
break;
case EIS_REF_R2:
ds4550_set_pins(0b000100000, 0b000110000);
break;
case EIS_REF_PARALLEL:
ds4550_set_pins(0b000110000, 0b000110000);
break;
default:
printf("#WAR: EIS: No reference set.\r\n");
break;
}
return;
}
//
// eis_misc.h
// dstat-firmware
//
// Created by Michael Dryden on 2017-03-02.
// Copyright © 2017 Michael Dryden. All rights reserved.
//
#ifndef eis_misc_h
#define eis_misc_h
#include <stdio.h>
#define EIS_IV_GAIN_0 0
#define EIS_IV_GAIN_100 1
#define EIS_IV_GAIN_3k 2
#define EIS_IV_GAIN_30k 3
#define EIS_IV_GAIN_300k 4
#define EIS_IV_GAIN_3M 5
#define EIS_IV_GAIN_30M 6
#define EIS_IV_GAIN_100M 7
#define EIS_REF_CELL 0
#define EIS_REF_R1 1
#define EIS_REF_R2 2
#define EIS_REF_PARALLEL 3
void eis_set_gain(uint8_t gain);
void eis_set_ref(uint8_t ref);
#endif /* eis_misc_h */
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment