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

Subversion Repositories openrisc

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

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

Line No. Rev Author Line
1 610 jeremybenn
//*****************************************************************************
2
//
3
// timer.h - Prototypes for the timer module
4
//
5
// Copyright (c) 2005-2007 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.  Any use in violation
14
// of the foregoing restrictions may subject the user to criminal sanctions
15
// under applicable laws, as well as to civil liability for the breach of the
16
// terms and conditions of this license.
17
// 
18
// THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
19
// OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
20
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
21
// LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
22
// CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
23
// 
24
// This is part of revision 1582 of the Stellaris Peripheral Driver Library.
25
//
26
//*****************************************************************************
27
 
28
#ifndef __TIMER_H__
29
#define __TIMER_H__
30
 
31
#ifdef __cplusplus
32
extern "C"
33
{
34
#endif
35
 
36
//*****************************************************************************
37
//
38
// Values that can be passed to TimerConfigure as the ulConfig parameter.
39
//
40
//*****************************************************************************
41
#define TIMER_CFG_32_BIT_OS     0x00000001  // 32-bit one-shot timer
42
#define TIMER_CFG_32_BIT_PER    0x00000002  // 32-bit periodic timer
43
#define TIMER_CFG_32_RTC        0x01000000  // 32-bit RTC timer
44
#define TIMER_CFG_16_BIT_PAIR   0x04000000  // Two 16-bit timers
45
#define TIMER_CFG_A_ONE_SHOT    0x00000001  // Timer A one-shot timer
46
#define TIMER_CFG_A_PERIODIC    0x00000002  // Timer A periodic timer
47
#define TIMER_CFG_A_CAP_COUNT   0x00000003  // Timer A event counter
48
#define TIMER_CFG_A_CAP_TIME    0x00000007  // Timer A event timer
49
#define TIMER_CFG_A_PWM         0x0000000A  // Timer A PWM output
50
#define TIMER_CFG_B_ONE_SHOT    0x00000100  // Timer B one-shot timer
51
#define TIMER_CFG_B_PERIODIC    0x00000200  // Timer B periodic timer
52
#define TIMER_CFG_B_CAP_COUNT   0x00000300  // Timer B event counter
53
#define TIMER_CFG_B_CAP_TIME    0x00000700  // Timer B event timer
54
#define TIMER_CFG_B_PWM         0x00000A00  // Timer B PWM output
55
 
56
//*****************************************************************************
57
//
58
// Values that can be passed to TimerIntEnable, TimerIntDisable, and
59
// TimerIntClear as the ulIntFlags parameter, and returned from TimerIntStatus.
60
//
61
//*****************************************************************************
62
#define TIMER_CAPB_EVENT        0x00000400  // CaptureB event interrupt
63
#define TIMER_CAPB_MATCH        0x00000200  // CaptureB match interrupt
64
#define TIMER_TIMB_TIMEOUT      0x00000100  // TimerB time out interrupt
65
#define TIMER_RTC_MATCH         0x00000008  // RTC interrupt mask
66
#define TIMER_CAPA_EVENT        0x00000004  // CaptureA event interrupt
67
#define TIMER_CAPA_MATCH        0x00000002  // CaptureA match interrupt
68
#define TIMER_TIMA_TIMEOUT      0x00000001  // TimerA time out interrupt
69
 
70
//*****************************************************************************
71
//
72
// Values that can be passed to TimerControlEvent as the ulEvent parameter.
73
//
74
//*****************************************************************************
75
#define TIMER_EVENT_POS_EDGE    0x00000000  // Count positive edges
76
#define TIMER_EVENT_NEG_EDGE    0x00000404  // Count negative edges
77
#define TIMER_EVENT_BOTH_EDGES  0x00000C0C  // Count both edges
78
 
79
//*****************************************************************************
80
//
81
// Values that can be passed to most of the timer APIs as the ulTimer
82
// parameter.
83
//
84
//*****************************************************************************
85
#define TIMER_A                 0x000000ff  // Timer A
86
#define TIMER_B                 0x0000ff00  // Timer B
87
#define TIMER_BOTH              0x0000ffff  // Timer Both
88
 
89
//*****************************************************************************
90
//
91
// Prototypes for the APIs.
92
//
93
//*****************************************************************************
94
extern void TimerEnable(unsigned long ulBase, unsigned long ulTimer);
95
extern void TimerDisable(unsigned long ulBase, unsigned long ulTimer);
96
extern void TimerConfigure(unsigned long ulBase, unsigned long ulConfig);
97
extern void TimerControlLevel(unsigned long ulBase, unsigned long ulTimer,
98
                              tBoolean bInvert);
99
extern void TimerControlTrigger(unsigned long ulBase, unsigned long ulTimer,
100
                                tBoolean bEnable);
101
extern void TimerControlEvent(unsigned long ulBase, unsigned long ulTimer,
102
                              unsigned long ulEvent);
103
extern void TimerControlStall(unsigned long ulBase, unsigned long ulTimer,
104
                              tBoolean bStall);
105
extern void TimerRTCEnable(unsigned long ulBase);
106
extern void TimerRTCDisable(unsigned long ulBase);
107
extern void TimerPrescaleSet(unsigned long ulBase, unsigned long ulTimer,
108
                             unsigned long ulValue);
109
extern unsigned long TimerPrescaleGet(unsigned long ulBase,
110
                                      unsigned long ulTimer);
111
extern void TimerPrescaleMatchSet(unsigned long ulBase, unsigned long ulTimer,
112
                                  unsigned long ulValue);
113
extern unsigned long TimerPrescaleMatchGet(unsigned long ulBase,
114
                                           unsigned long ulTimer);
115
extern void TimerLoadSet(unsigned long ulBase, unsigned long ulTimer,
116
                         unsigned long ulValue);
117
extern unsigned long TimerLoadGet(unsigned long ulBase, unsigned long ulTimer);
118
extern unsigned long TimerValueGet(unsigned long ulBase,
119
                                   unsigned long ulTimer);
120
extern void TimerMatchSet(unsigned long ulBase, unsigned long ulTimer,
121
                          unsigned long ulValue);
122
extern unsigned long TimerMatchGet(unsigned long ulBase,
123
                                   unsigned long ulTimer);
124
extern void TimerIntRegister(unsigned long ulBase, unsigned long ulTimer,
125
                             void (*pfnHandler)(void));
126
extern void TimerIntUnregister(unsigned long ulBase, unsigned long ulTimer);
127
extern void TimerIntEnable(unsigned long ulBase, unsigned long ulIntFlags);
128
extern void TimerIntDisable(unsigned long ulBase, unsigned long ulIntFlags);
129
extern unsigned long TimerIntStatus(unsigned long ulBase, tBoolean bMasked);
130
extern void TimerIntClear(unsigned long ulBase, unsigned long ulIntFlags);
131
extern void TimerQuiesce(unsigned long ulBase);
132
 
133
#ifdef __cplusplus
134
}
135
#endif
136
 
137
#endif // __TIMER_H__

powered by: WebSVN 2.1.0

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