git.ucc.asn.au
/
matches
/
MCTX3420.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
edited dilatometer
[matches/MCTX3420.git]
/
server
/
sensors
/
strain.c
diff --git
a/server/sensors/strain.c
b/server/sensors/strain.c
index
4278d6c
..
7c78b56
100644
(file)
--- a/
server/sensors/strain.c
+++ b/
server/sensors/strain.c
@@
-6,6
+6,8
@@
#include <pthread.h>
#define STRAIN_ADC ADC0
#include <pthread.h>
#define STRAIN_ADC ADC0
+// TODO: Choose this
+#define STRAIN_GPIO 45
/**
* Convert Strain gauge id number to a GPIO pin on the Mux
/**
* Convert Strain gauge id number to a GPIO pin on the Mux
@@
-23,13
+25,13
@@
static int Strain_To_GPIO(StrainID id)
switch (id)
{
case STRAIN0:
switch (id)
{
case STRAIN0:
- return
GPIO0_30
;
+ return
44
;
case STRAIN1:
case STRAIN1:
- return
GPIO1_28
;
+ return
26
;
case STRAIN2:
case STRAIN2:
- return
GPIO0_31
;
+ return
46
;
case STRAIN3:
case STRAIN3:
- return
GPIO1_16
;
+ return
65
;
default:
Fatal("Unknown StrainID %d", id);
return -1; // Should never happen
default:
Fatal("Unknown StrainID %d", id);
return -1; // Should never happen
@@
-59,10
+61,11
@@
bool Strain_Init(const char * name, int id)
if (!GPIO_Set(gpio_num, false))
Fatal("Couldn't set GPIO%d for strain sensor %d to LOW", gpio_num, id);
if (!GPIO_Set(gpio_num, false))
Fatal("Couldn't set GPIO%d for strain sensor %d to LOW", gpio_num, id);
- static
bool init_adc = false
;
- if (
!init_adc
)
+ static
int init = 0
;
+ if (
++init == 1
)
{
{
- init_adc = true;
+ GPIO_Export(STRAIN_GPIO);
+ GPIO_Set(STRAIN_GPIO, true);
ADC_Export(STRAIN_ADC);
}
return true;
ADC_Export(STRAIN_ADC);
}
return true;
@@
-70,12
+73,14
@@
bool Strain_Init(const char * name, int id)
bool Strain_Cleanup(int id)
{
bool Strain_Cleanup(int id)
{
- static
bool kill_adc = false
;
- if (
!kill_adc
)
+ static
int killed = 0
;
+ if (
++killed == 4
)
{
{
- kill_adc = true;
+
+ GPIO_Set(STRAIN_GPIO, false);
ADC_Unexport(STRAIN_ADC);
}
ADC_Unexport(STRAIN_ADC);
}
+
int gpio_num = Strain_To_GPIO(id);
GPIO_Unexport(gpio_num);
return true;
int gpio_num = Strain_To_GPIO(id);
GPIO_Unexport(gpio_num);
return true;
UCC
git Repository :: git.ucc.asn.au