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

Subversion Repositories openmsp430

[/] [openmsp430/] [trunk/] [fpga/] [altera_de0_nano_soc/] [software/] [libs/] [tA/] [timerA.h] - Blame information for rev 221

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 221 olivier.gi
#ifndef TIMERA_H
2
#define TIMERA_H
3
 
4
#include <in430.h>
5
 
6
//----------------------------------------------------------
7
// AVAILABLE FUNCTIONS
8
//----------------------------------------------------------
9
 
10
void ta_wait_no_lpm(unsigned int);
11
void ta_wait(unsigned int);
12
 
13
// Base clock period definitions (in ns)
14
//#define VERILOG_SIMULATION
15
#define DCO_CLK_PERIOD     20
16
#define LFXT_CLK_PERIOD 10240
17
 
18
// Time definitions (base clock of 10us period)
19
#define   WT_20US     (    20000/LFXT_CLK_PERIOD)+1
20
#define   WT_50US     (    50000/LFXT_CLK_PERIOD)+1
21
#ifdef VERILOG_SIMULATION
22
  #define WT_100US    WT_50US
23
  #define WT_200US    WT_50US
24
  #define WT_500US    WT_50US
25
  #define WT_1MS      WT_50US
26
  #define WT_2MS      WT_50US
27
  #define WT_5MS      WT_50US
28
  #define WT_10MS     WT_50US
29
  #define WT_20MS     WT_50US
30
  #define WT_50MS     WT_50US
31
  #define WT_100MS    WT_50US
32
  #define WT_200MS    WT_50US
33
  #define WT_500MS    WT_50US
34
#else
35
  #define WT_100US    (   100000/LFXT_CLK_PERIOD)+1
36
  #define WT_200US    (   200000/LFXT_CLK_PERIOD)+1
37
  #define WT_500US    (   500000/LFXT_CLK_PERIOD)+1
38
  #define WT_1MS      (  1000000/LFXT_CLK_PERIOD)+1
39
  #define WT_2MS      (  2000000/LFXT_CLK_PERIOD)+1
40
  #define WT_5MS      (  5000000/LFXT_CLK_PERIOD)+1
41
  #define WT_10MS     ( 10000000/LFXT_CLK_PERIOD)+1
42
  #define WT_20MS     ( 20000000/LFXT_CLK_PERIOD)+1
43
  #define WT_50MS     ( 50000000/LFXT_CLK_PERIOD)+1
44
  #define WT_100MS    (100000000/LFXT_CLK_PERIOD)+1
45
  #define WT_200MS    (200000000/LFXT_CLK_PERIOD)+1
46
  #define WT_500MS    (500000000/LFXT_CLK_PERIOD)+1
47
#endif
48
 
49
 
50
//----------------------------------------------------------
51
// TIMER A REGISTERS
52
//----------------------------------------------------------
53
#define  TACTL       (*(volatile unsigned int  *) 0x0160)
54
#define  TAR         (*(volatile unsigned int  *) 0x0170)
55
#define  TACCTL0     (*(volatile unsigned int  *) 0x0162)
56
#define  TACCR0      (*(volatile unsigned int  *) 0x0172)
57
#define  TACCTL1     (*(volatile unsigned int  *) 0x0164)
58
#define  TACCR1      (*(volatile unsigned int  *) 0x0174)
59
#define  TACCTL2     (*(volatile unsigned int  *) 0x0166)
60
#define  TACCR2      (*(volatile unsigned int  *) 0x0176)
61
#define  TAIV        (*(volatile unsigned int  *) 0x012E)
62
 
63
//--------------------------------------------------
64
// TIMER A REGISTER FIELD MAPPING
65
//--------------------------------------------------
66
 
67
// Alternate register names
68
#define CCTL0        TACCTL0
69
#define CCTL1        TACCTL1
70
#define CCR0         TACCR0
71
#define CCR1         TACCR1
72
 
73
// Bit-masks
74
#define TASSEL1      (0x0200)  /* Timer A clock source select 1 */
75
#define TASSEL0      (0x0100)  /* Timer A clock source select 0 */
76
#define ID1          (0x0080)  /* Timer A clock input divider 1 */
77
#define ID0          (0x0040)  /* Timer A clock input divider 0 */
78
#define MC1          (0x0020)  /* Timer A mode control 1 */
79
#define MC0          (0x0010)  /* Timer A mode control 0 */
80
#define TACLR        (0x0004)  /* Timer A counter clear */
81
#define TAIE         (0x0002)  /* Timer A counter interrupt enable */
82
#define TAIFG        (0x0001)  /* Timer A counter interrupt flag */
83
 
84
#define MC_0         (0x0000)  /* Timer A mode control: 0 - Stop */
85
#define MC_1         (0x0010)  /* Timer A mode control: 1 - Up to CCR0 */
86
#define MC_2         (0x0020)  /* Timer A mode control: 2 - Continous up */
87
#define MC_3         (0x0030)  /* Timer A mode control: 3 - Up/Down */
88
#define ID_0         (0x0000)  /* Timer A input divider: 0 - /1 */
89
#define ID_1         (0x0040)  /* Timer A input divider: 1 - /2 */
90
#define ID_2         (0x0080)  /* Timer A input divider: 2 - /4 */
91
#define ID_3         (0x00C0)  /* Timer A input divider: 3 - /8 */
92
#define TASSEL_0     (0x0000)  /* Timer A clock source select: 0 - TACLK */
93
#define TASSEL_1     (0x0100)  /* Timer A clock source select: 1 - ACLK  */
94
#define TASSEL_2     (0x0200)  /* Timer A clock source select: 2 - SMCLK */
95
#define TASSEL_3     (0x0300)  /* Timer A clock source select: 3 - INCLK */
96
 
97
#define CM1          (0x8000)  /* Capture mode 1 */
98
#define CM0          (0x4000)  /* Capture mode 0 */
99
#define CCIS1        (0x2000)  /* Capture input select 1 */
100
#define CCIS0        (0x1000)  /* Capture input select 0 */
101
#define SCS          (0x0800)  /* Capture sychronize */
102
#define SCCI         (0x0400)  /* Latched capture signal (read) */
103
#define CAP          (0x0100)  /* Capture mode: 1 /Compare mode : 0 */
104
#define OUTMOD2      (0x0080)  /* Output mode 2 */
105
#define OUTMOD1      (0x0040)  /* Output mode 1 */
106
#define OUTMOD0      (0x0020)  /* Output mode 0 */
107
#define CCIE         (0x0010)  /* Capture/compare interrupt enable */
108
#define CCI          (0x0008)  /* Capture input signal (read) */
109
#define OUT          (0x0004)  /* PWM Output signal if output mode 0 */
110
#define COV          (0x0002)  /* Capture/compare overflow flag */
111
#define CCIFG        (0x0001)  /* Capture/compare interrupt flag */
112
 
113
 
114
#endif

powered by: WebSVN 2.1.0

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