comparison nuc-fw/bsp/timer2.c @ 114:17b0511b243c

nuc-fw: continuing lowest-level BSP integration
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Thu, 24 Oct 2013 02:47:14 +0000
parents
children
comparison
equal deleted inserted replaced
113:3b2e941043d8 114:17b0511b243c
1 /******************************************************************************
2 TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
3
4 Property of Texas Instruments -- For Unrestricted Internal Use Only
5 Unauthorized reproduction and/or distribution is strictly prohibited. This
6 product is protected under copyright law and trade secret law as an
7 unpublished work. Created 1987, (C) Copyright 1997 Texas Instruments. All
8 rights reserved.
9
10
11 Filename : timer2.c
12
13 Description : Set of useful functions for TIMER module test cases
14
15 Project : drivers
16
17 Author : pmonteil@tif.ti.com Patrice Monteil.
18 Version number : 1.3
19
20 Date and time : 08/18/00 14:42:39
21
22 Previous delta : 07/10/00 16:15:18
23
24 SCCS file : /db/gsm_asp/db_ht96/dsp_0/gsw/rel_0/mcu_l1/release_gprs/RELEASE_GPRS/drivers1/common/SCCS/s.timer2.c
25
26 Sccs Id (SID) : '@(#) timer2.c 1.3 08/18/00 14:42:39 '
27
28
29
30 *****************************************************************************/
31
32 #include "../include/sys_types.h"
33
34 #include "mem.h"
35 #include "timer2.h"
36
37 /*--------------------------------------------------------------*/
38 /* Dtimer2_Get_cntlreg() */
39 /*--------------------------------------------------------------*/
40 /* Parameters : none */
41 /* Return : none */
42 /* Functionality : read one of the TIMER register */
43 /*--------------------------------------------------------------*/
44
45 SYS_UWORD16 Dtimer2_Get_cntlreg(void)
46 {
47 SYS_UWORD16 timerReg;
48
49 timerReg = (( * (volatile SYS_UWORD16 *) D_TIMER_CNTL) & D_TIMER_CNTL_MASK);
50 return(timerReg);
51 }
52
53
54 /*--------------------------------------------------------------*/
55 /* Dtimer2_Init_cntl() */
56 /*--------------------------------------------------------------*/
57 /* Parameters :start/stop,reload yes/no,pre scale,ext clk on/off*/
58 /* Return : none */
59 /* Functionality : initialize the timer start, autoreload, Ptv */
60 /* and clock enable */
61 /*--------------------------------------------------------------*/
62
63 void Dtimer2_Init_cntl (SYS_UWORD16 St, SYS_UWORD16 Reload, SYS_UWORD16 clockScale, SYS_UWORD16 clkon)
64 {
65 SYS_UWORD16 cntl = * (volatile SYS_UWORD16 *) D_TIMER_CNTL;
66
67
68 cntl &= ~(D_TIMER_ST | D_TIMER_PTV); /* stop and reset values */
69
70 (Reload) ? (cntl |= D_TIMER_AR) : (cntl &= ~D_TIMER_AR);
71
72 cntl |= (clockScale << 2 );
73
74 cntl |= ( clkon << 5 );
75
76
77 * (volatile SYS_UWORD16 *) D_TIMER_LOAD = St;
78
79 * (volatile SYS_UWORD16 *) D_TIMER_CNTL = cntl;
80 }
81
82 /*--------------------------------------------------------------*/
83 /* Dtimer2_AR() */
84 /*--------------------------------------------------------------*/
85 /* Parameters :start/stop,reload yes/no,pre scale,ext clk on/off*/
86 /* Return : none */
87 /* Functionality : set the AR bit Ar = 0 | 1 */
88 /*--------------------------------------------------------------*/
89
90 void Dtimer2_AR(SYS_UWORD16 Ar)
91 {
92 SYS_UWORD16 cntl = * (volatile SYS_UWORD16 *) D_TIMER_CNTL;
93
94 cntl &= ~(D_TIMER_ST); /* stop the timer */
95
96 cntl &= ~(D_TIMER_AR);
97
98 cntl |= ( Ar << 1 );
99
100 * (volatile SYS_UWORD16 *) D_TIMER_CNTL = cntl;
101 }
102
103 /*--------------------------------------------------------------*/
104 /* Dtimer2_PTV() */
105 /*--------------------------------------------------------------*/
106 /* Parameters : pre scale */
107 /* Return : none */
108 /* Functionality : set the Ptv bits Ptv = 0 => 7 */
109 /*--------------------------------------------------------------*/
110
111 void Dtimer2_PTV(SYS_UWORD16 Ptv)
112 {
113 SYS_UWORD16 cntl = * (volatile SYS_UWORD16 *) D_TIMER_CNTL;
114
115 cntl &= ~(D_TIMER_ST); /* stop the timer */
116
117 cntl &= ~(D_TIMER_PTV); /* Ptv[4:0] set to 0 */
118
119 cntl |= ( Ptv << 2 );
120
121 * (volatile SYS_UWORD16 *) D_TIMER_CNTL = cntl;
122 }
123
124 /*--------------------------------------------------------------*/
125 /* Dtimer1_Clken() */
126 /*--------------------------------------------------------------*/
127 /* Parameters : ext clk on/off */
128 /* Return : none */
129 /* Functionality : set the clock_enable bit En = 0 | 1 */
130 /*--------------------------------------------------------------*/
131
132 void Dtimer2_Clken(SYS_UWORD16 En)
133 {
134 SYS_UWORD16 cntl = * (volatile SYS_UWORD16 *) D_TIMER_CNTL;
135
136 cntl &= ( ~D_TIMER_CLK_EN);
137
138 cntl |= ( En << 5 );
139
140 * (volatile SYS_UWORD16 *) D_TIMER_CNTL = cntl;
141 }
142
143
144
145 /*--------------------------------------------------------------*/
146 /* Dtimer2_Start() */
147 /*--------------------------------------------------------------*/
148 /* Parameters : on/off */
149 /* Return : none */
150 /* Functionality : Start or stop the timer */
151 /*--------------------------------------------------------------*/
152
153 void Dtimer2_Start (SYS_UWORD16 startStop)
154 {
155 (startStop == D_TIMER_ST) ?
156 ((* (SYS_UWORD16 *) D_TIMER_CNTL) |= D_TIMER_ST) : /* condition vrai */
157 ((* (SYS_UWORD16 *) D_TIMER_CNTL) &= ~D_TIMER_ST); /* condition fausse */
158 }
159
160 /*--------------------------------------------------------------*/
161 /* Dtimer2_ReadValue() */
162 /*--------------------------------------------------------------*/
163 /* Parameters : on/off */
164 /* Return : none */
165 /* Functionality : Read timer value */
166 /*--------------------------------------------------------------*/
167
168 SYS_UWORD16 Dtimer2_ReadValue (void)
169 {
170 return(* (SYS_UWORD16 *) D_TIMER_READ);
171 }
172
173 /*--------------------------------------------------------------*/
174 /* Parameters : on/off */
175 /* Return : none */
176 /* Functionality : Write timer value */
177 /*--------------------------------------------------------------*/
178
179 void Dtimer2_WriteValue (SYS_UWORD16 value)
180 {
181 (* (SYS_UWORD16 *) D_TIMER_LOAD) = value;
182 }