aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/c_input.h
blob: 4e508f359b734e530009889b893b95b6b96393e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//
// Date init       14.12.2004
//
// Revision date   $Date:: 14-01-09 10:33                                    $
//
// Filename        $Workfile:: c_input.h                                     $
//
// Version         $Revision:: 7                                             $
//
// Archive         $Archive:: /LMS2006/Sys01/Main_V02/Firmware/Source/c_inpu $
//
// Platform        C
//

#ifndef   C_INPUT
#define   C_INPUT

#ifdef    INCLUDE_OS
extern    const HEADER cInput;
#endif

#include  "c_input.iom"

#define   ACTUAL_AD_RES                 1023L
#define   SENSOR_RESOLUTION             1023L
#define   DEBOUNCERELOAD                100
#define   THRESHOLD_FALSE               (UWORD)(ACTUAL_AD_RES * 45L / 100L)
#define   THRESHOLD_TRUE                (UWORD)(ACTUAL_AD_RES * 55L / 100L)

#define   ANGLELIMITA                   (UWORD)(ACTUAL_AD_RES * 4400L / 10000L)
#define   ANGLELIMITB                   (UWORD)(ACTUAL_AD_RES * 6600L / 10000L)
#define   ANGLELIMITC                   (UWORD)(ACTUAL_AD_RES * 8900L / 10000L)

#define   FWDDIR                        1
#define   RWDDIR                        2
#define   MAXSAMPLECNT                  5

typedef   struct
{
  UBYTE   ColorInputDebounce [NO_OF_COLORS];
  UBYTE   ColorEdgeCnt       [NO_OF_COLORS];
  UBYTE   ColorLastAngle     [NO_OF_COLORS];
  UBYTE   ColorSampleCnt     [NO_OF_COLORS];
  UBYTE   ColorInitState;
  UBYTE   ReadCnt;
} VARSCOLOR;


typedef   struct
{
  UWORD     InvalidTimer  [NO_OF_INPUTS];
  UBYTE     InputDebounce [NO_OF_INPUTS];
  UBYTE     EdgeCnt       [NO_OF_INPUTS];
  UBYTE     LastAngle     [NO_OF_INPUTS];
  UBYTE     OldSensorType [NO_OF_INPUTS];
  UBYTE     SampleCnt     [NO_OF_INPUTS];
  VARSCOLOR VarsColor     [NO_OF_INPUTS];
  UBYTE     ColorCnt;
  UBYTE     ColorStatus;
}VARSINPUT;

void      cInputInit(void* pHeader);
void      cInputCtrl(void);
void      cInputExit(void);


#endif