Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
vexencoder.h
Go to the documentation of this file.
1
/*-----------------------------------------------------------------------------*/
2
/* */
3
/* Copyright (c) James Pearman */
4
/* 2013 */
5
/* All Rights Reserved */
6
/* */
7
/*-----------------------------------------------------------------------------*/
8
/* */
9
/* Module: vexencoder.h */
10
/* Author: James Pearman */
11
/* Created: 7 May 2013 */
12
/* */
13
/* Revisions: */
14
/* V1.00 4 July 2013 - Initial release */
15
/* */
16
/*-----------------------------------------------------------------------------*/
17
/* */
18
/* This file is part of ConVEX. */
19
/* */
20
/* The author is supplying this software for use with the VEX cortex */
21
/* control system. ConVEX is free software; you can redistribute it */
22
/* and/or modify it under the terms of the GNU General Public License */
23
/* as published by the Free Software Foundation; either version 3 of */
24
/* the License, or (at your option) any later version. */
25
/* */
26
/* ConVEX is distributed in the hope that it will be useful, */
27
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
28
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
29
/* GNU General Public License for more details. */
30
/* */
31
/* You should have received a copy of the GNU General Public License */
32
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
33
/* */
34
/* A special exception to the GPL can be applied should you wish to */
35
/* distribute a combined work that includes ConVEX, without being obliged */
36
/* to provide the source code for any proprietary components. */
37
/* See the file exception.txt for full details of how and when the */
38
/* exception can be applied. */
39
/* */
40
/* The author can be contacted on the vex forums as jpearman */
41
/* or electronic mail using jbpearman_at_mac_dot_com */
42
/* Mentor for team 8888 RoboLancers, Pasadena CA. */
43
/* */
44
/*-----------------------------------------------------------------------------*/
45
46
#ifndef __VEXENCODER__
47
#define __VEXENCODER__
48
49
/*-----------------------------------------------------------------------------*/
50
/** @file vexencoder.h
51
* @brief Header for the encoder driver
52
*/
/*---------------------------------------------------------------------------*/
53
54
/*-----------------------------------------------------------------------------*/
55
/** @brief Encoder channel number */
56
/*-----------------------------------------------------------------------------*/
57
typedef
enum
{
58
kVexQuadEncoder_1
= 0,
59
kVexQuadEncoder_2
,
60
kVexQuadEncoder_3
,
61
kVexQuadEncoder_4
,
62
kVexQuadEncoder_5
,
63
64
kVexQuadEncoder_Num
65
}
tVexQuadEncoderChannel
;
66
67
/*-----------------------------------------------------------------------------*/
68
/** @brief Holds information relating to an encoder */
69
/*-----------------------------------------------------------------------------*/
70
/** @note
71
* pin refers to the digital pin 1 through 12, port refers to the
72
* STM32 port, GPIOA, GPIOB etc. pad refers to the bit on the digital port
73
* 0 through 15
74
*/
75
76
typedef
struct
_vexQuadEncoder_t
{
77
volatile
int32_t
count
;
///< current encoder count
78
int32_t
offset
;
///< current encoder offset (subtracted from count)
79
int16_t
state
;
///< flag iondicating encoder is installed
80
tVexDigitalPin
pa
;
///< Encoder digital pin a
81
tVexDigitalPin
pb
;
///< Encoder digital pin b
82
ioportid_t
pa_port
;
///< Encoder GPIO port a
83
int16_t
pa_pad
;
///< Encoder GPIO pad a
84
ioportid_t
pb_port
;
///< Encoder GPIO port b
85
int16_t
pb_pad
;
///< Encoder GPIO pad b
86
}
vexQuadEncoder_t
;
87
88
89
#ifdef __cplusplus
90
extern
"C"
{
91
#endif
92
93
void
vexEncoderInit
(
void
);
94
void
vexEncoderAdd
(
tVexQuadEncoderChannel
channel,
tVexDigitalPin
pa,
tVexDigitalPin
pb );
95
void
vexEncoderStart
(
tVexQuadEncoderChannel
channel );
96
void
vexEncoderStop
(
tVexQuadEncoderChannel
channel );
97
void
vexEncoderStartAll
(
void
);
98
int32_t
vexEncoderGet
( int16_t channel );
99
void
vexEncoderSet
( int16_t channel, int32_t value );
100
int16_t
vexEncoderGetId
( int16_t channel );
101
void
vexEncoderDebug
(
vexStream
*chp,
int
argc,
char
*argv[]);
102
103
#ifdef __cplusplus
104
}
105
#endif
106
107
108
#endif // __VEXENCODER__
convex
cortex
fw
vexencoder.h
Generated on Sun Jan 5 2014 15:43:37 for Convex by
1.8.4