From c7ec79e08096ca81b690de154adab9c25a78e47a Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Mon, 23 Sep 2013 18:53:26 +0000 Subject: fixed stepper stop fixed limits git-svn-id: https://svn.spreadspace.org/avr/trunk@228 aa12f405-d877-488e-9caf-2d797e2a1cc7 --- tuer-rfid/limits.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'tuer-rfid/limits.c') diff --git a/tuer-rfid/limits.c b/tuer-rfid/limits.c index 6f567af..4e14b05 100644 --- a/tuer-rfid/limits.c +++ b/tuer-rfid/limits.c @@ -25,40 +25,48 @@ #include "limits.h" #include +#include + #define LIMITS_ADC_CHAN_NUM 8 #define LIMITS_ADC_CHAN ADC_CHANNEL8 #define LIMITS_RINGBUF_SIZE 5 /* HINT: this is compared to a sliding sum not an average! */ -#define LIMITS_TH_CLOSE 250 -#define LIMITS_TH_OPEN 1000 +#define LIMITS_TH_CLOSE 500 +#define LIMITS_TH_OPEN 3200 void limits_init(void) { ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_128); ADC_SetupChannel(LIMITS_ADC_CHAN_NUM); - ADC_StartReading(ADC_REFERENCE_INT2560MV | ADC_LEFT_ADJUSTED | LIMITS_ADC_CHAN); + ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | LIMITS_ADC_CHAN); } -limits_t limits_get(void) +static uint16_t sum = 0; + +void limits_task(void) { - static uint8_t s = 0; - static uint8_t r[LIMITS_RINGBUF_SIZE] = { 0 }; + static uint16_t r[LIMITS_RINGBUF_SIZE] = { 0 }; static uint8_t idx = 0; if(ADC_IsReadingComplete()) { - r[idx] = (ADC_GetResult()>>8); + r[idx] = ADC_GetResult(); idx = (idx + 1) % LIMITS_RINGBUF_SIZE; - s = 0; + cli(); + sum = 0; uint8_t i; - for(i=0; i