OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [Common/] [drivers/] [LuminaryMicro/] [qei.h] - Blame information for rev 818

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 610 jeremybenn
//*****************************************************************************
2
//
3
// qei.h - Prototypes for the Quadrature Encoder Driver.
4
//
5
// Copyright (c) 2005-2008 Luminary Micro, Inc.  All rights reserved.
6
// 
7
// Software License Agreement
8
// 
9
// Luminary Micro, Inc. (LMI) is supplying this software for use solely and
10
// exclusively on LMI's microcontroller products.
11
// 
12
// The software is owned by LMI and/or its suppliers, and is protected under
13
// applicable copyright laws.  All rights are reserved.  You may not combine
14
// this software with "viral" open-source software in order to form a larger
15
// program.  Any use in violation of the foregoing restrictions may subject
16
// the user to criminal sanctions under applicable laws, as well as to civil
17
// liability for the breach of the terms and conditions of this license.
18
// 
19
// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
20
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
21
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
22
// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
23
// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
24
// 
25
// This is part of revision 2523 of the Stellaris Peripheral Driver Library.
26
//
27
//*****************************************************************************
28
 
29
#ifndef __QEI_H__
30
#define __QEI_H__
31
 
32
//*****************************************************************************
33
//
34
// If building with a C++ compiler, make all of the definitions in this header
35
// have a C binding.
36
//
37
//*****************************************************************************
38
#ifdef __cplusplus
39
extern "C"
40
{
41
#endif
42
 
43
//*****************************************************************************
44
//
45
// Values that can be passed to QEIConfigure as the ulConfig paramater.
46
//
47
//*****************************************************************************
48
#define QEI_CONFIG_CAPTURE_A    0x00000000  // Count on ChA edges only
49
#define QEI_CONFIG_CAPTURE_A_B  0x00000008  // Count on ChA and ChB edges
50
#define QEI_CONFIG_NO_RESET     0x00000000  // Do not reset on index pulse
51
#define QEI_CONFIG_RESET_IDX    0x00000010  // Reset position on index pulse
52
#define QEI_CONFIG_QUADRATURE   0x00000000  // ChA and ChB are quadrature
53
#define QEI_CONFIG_CLOCK_DIR    0x00000004  // ChA and ChB are clock and dir
54
#define QEI_CONFIG_NO_SWAP      0x00000000  // Do not swap ChA and ChB
55
#define QEI_CONFIG_SWAP         0x00000002  // Swap ChA and ChB
56
 
57
//*****************************************************************************
58
//
59
// Values that can be passed to QEIVelocityConfigure as the ulPreDiv parameter.
60
//
61
//*****************************************************************************
62
#define QEI_VELDIV_1            0x00000000  // Predivide by 1
63
#define QEI_VELDIV_2            0x00000040  // Predivide by 2
64
#define QEI_VELDIV_4            0x00000080  // Predivide by 4
65
#define QEI_VELDIV_8            0x000000C0  // Predivide by 8
66
#define QEI_VELDIV_16           0x00000100  // Predivide by 16
67
#define QEI_VELDIV_32           0x00000140  // Predivide by 32
68
#define QEI_VELDIV_64           0x00000180  // Predivide by 64
69
#define QEI_VELDIV_128          0x000001C0  // Predivide by 128
70
 
71
//*****************************************************************************
72
//
73
// Values that can be passed to QEIEnableInts, QEIDisableInts, and QEIClearInts
74
// as the ulIntFlags parameter, and returned by QEIGetIntStatus.
75
//
76
//*****************************************************************************
77
#define QEI_INTERROR            0x00000008  // Phase error detected
78
#define QEI_INTDIR              0x00000004  // Direction change
79
#define QEI_INTTIMER            0x00000002  // Velocity timer expired
80
#define QEI_INTINDEX            0x00000001  // Index pulse detected
81
 
82
//*****************************************************************************
83
//
84
// Prototypes for the APIs.
85
//
86
//*****************************************************************************
87
extern void QEIEnable(unsigned long ulBase);
88
extern void QEIDisable(unsigned long ulBase);
89
extern void QEIConfigure(unsigned long ulBase, unsigned long ulConfig,
90
                         unsigned long ulMaxPosition);
91
extern unsigned long QEIPositionGet(unsigned long ulBase);
92
extern void QEIPositionSet(unsigned long ulBase, unsigned long ulPosition);
93
extern long QEIDirectionGet(unsigned long ulBase);
94
extern tBoolean QEIErrorGet(unsigned long ulBase);
95
extern void QEIVelocityEnable(unsigned long ulBase);
96
extern void QEIVelocityDisable(unsigned long ulBase);
97
extern void QEIVelocityConfigure(unsigned long ulBase, unsigned long ulPreDiv,
98
                                 unsigned long ulPeriod);
99
extern unsigned long QEIVelocityGet(unsigned long ulBase);
100
extern void QEIIntRegister(unsigned long ulBase, void (*pfnHandler)(void));
101
extern void QEIIntUnregister(unsigned long ulBase);
102
extern void QEIIntEnable(unsigned long ulBase, unsigned long ulIntFlags);
103
extern void QEIIntDisable(unsigned long ulBase, unsigned long ulIntFlags);
104
extern unsigned long QEIIntStatus(unsigned long ulBase, tBoolean bMasked);
105
extern void QEIIntClear(unsigned long ulBase, unsigned long ulIntFlags);
106
 
107
//*****************************************************************************
108
//
109
// Mark the end of the C bindings section for C++ compilers.
110
//
111
//*****************************************************************************
112
#ifdef __cplusplus
113
}
114
#endif
115
 
116
#endif // __QEI_H__

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.