2020-2021 Sunseeker Telemetry and Lighting System
tec.c
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // tec.c - Driver for the tec Module.
4 //
5 //*****************************************************************************
6 
7 //*****************************************************************************
8 //
11 //
12 //*****************************************************************************
13 
14 #include "inc/hw_memmap.h"
15 
16 #ifdef __MSP430_HAS_TEV0__
17 #include "tec.h"
18 
19 #include <assert.h>
20 
21 void TEC_initExternalClearInput (uint16_t baseAddress,
22  uint8_t signalType,
23  uint8_t signalHold,
24  uint8_t polarityBit
25  )
26 {
27  HWREG8(baseAddress + OFS_TEC0XCTL2_L) &= ~(TEC_EXTERNAL_CLEAR_SIGNALTYPE_LEVEL_SENSITIVE +
28  TEC_EXTERNAL_CLEAR_SIGNAL_HELD +
29  TEC_EXTERNAL_CLEAR_POLARITY_RISING_EDGE_OR_HIGH_LEVEL
30  );
31 
32  HWREG8(baseAddress + OFS_TEC0XCTL2_L) |= (signalType +
33  signalHold +
34  polarityBit
35  );
36 }
37 
38 void TEC_initExternalFaultInput(uint16_t baseAddress,
39  TEC_initExternalFaultInputParam *param)
40 {
41  HWREG8(baseAddress + OFS_TEC0XCTL2_L) &= ~((TEC_EXTERNAL_FAULT_SIGNALTYPE_LEVEL_SENSITIVE << param->selectedExternalFault)+
42  (TEC_EXTERNAL_FAULT_POLARITY_RISING_EDGE_OR_HIGH_LEVEL << param->selectedExternalFault)+
43  (TEC_EXTERNAL_FAULT_SIGNAL_HELD << param->selectedExternalFault )
44  );
45 
46  HWREG8(baseAddress + OFS_TEC0XCTL2_L) |= ((param->signalType << param->selectedExternalFault)+
47  (param->polarityBit << param->selectedExternalFault) +
48  (param->signalHold << param->selectedExternalFault )
49  );
50 }
51 
52 void TEC_enableExternalFaultInput (uint16_t baseAddress,
53  uint8_t channelEventBlock
54  )
55 {
56  HWREG8(baseAddress + OFS_TEC0XCTL0_H) |= (1 << channelEventBlock );
57 }
58 
59 void TEC_disableExternalFaultInput (uint16_t baseAddress,
60  uint8_t channelEventBlock
61  )
62 {
63  HWREG8(baseAddress + OFS_TEC0XCTL0_H) &= ~(1 << channelEventBlock );
64 }
65 
66 void TEC_enableExternalClearInput (uint16_t baseAddress )
67 {
68  HWREG8(baseAddress + OFS_TEC0XCTL2_L) |= TECEXCLREN;
69 }
70 
71 void TEC_disableExternalClearInput (uint16_t baseAddress )
72 {
73  HWREG8(baseAddress + OFS_TEC0XCTL2_L) &= ~TECEXCLREN;
74 }
75 
76 void TEC_enableAuxiliaryClearSignal (uint16_t baseAddress )
77 {
78  HWREG8(baseAddress + OFS_TEC0XCTL2_L) |= TECAXCLREN;
79 }
80 
81 void TEC_disableAuxiliaryClearSignal (uint16_t baseAddress )
82 {
83  HWREG8(baseAddress + OFS_TEC0XCTL2_L) &= ~TECAXCLREN;
84 }
85 
86 void TEC_clearInterrupt (uint16_t baseAddress,
87  uint8_t mask
88  )
89 {
90  HWREG8(baseAddress + OFS_TEC0XINT_L) &= ~mask;
91 }
92 
93 uint8_t TEC_getInterruptStatus (uint16_t baseAddress,
94  uint8_t mask
95  )
96 {
97  //Return the interrupt status of the request masked bit.
98  return (HWREG8(baseAddress + OFS_TEC0XINT_L) & mask);
99 }
100 
101 void TEC_enableInterrupt (uint16_t baseAddress,
102  uint8_t mask
103  )
104 {
105  //Enable the interrupt masked bit
106  HWREG8(baseAddress + OFS_TEC0XINT_H) |= mask;
107 }
108 
109 void TEC_disableInterrupt (uint16_t baseAddress,
110  uint8_t mask
111  )
112 {
113  //Disable the interrupt masked bit
114  HWREG8(baseAddress + OFS_TEC0XINT_H) &= ~(mask);
115 }
116 
117 uint8_t TEC_getExternalFaultStatus (uint16_t baseAddress,
118  uint8_t mask
119  )
120 {
121  //Return the interrupt status of the request masked bit.
122  return (HWREG8(baseAddress + OFS_TEC0STA_L) & mask);
123 }
124 
125 void TEC_clearExternalFaultStatus (uint16_t baseAddress,
126  uint8_t mask
127  )
128 {
129  HWREG8(baseAddress + OFS_TEC0STA_L) &= ~mask;
130 }
131 
132 uint8_t TEC_getExternalClearStatus (uint16_t baseAddress)
133 
134 {
135  //Return the interrupt status of the request masked bit.
136  return (HWREG8(baseAddress + OFS_TEC0STA_L) & TECXCLRSTA);
137 }
138 
139 void TEC_clearExternalClearStatus (uint16_t baseAddress)
140 {
141  HWREG8(baseAddress + OFS_TEC0STA_L) &= ~TECXCLRSTA;
142 }
143 
144 
145 #endif
146 //*****************************************************************************
147 //
150 //
151 //*****************************************************************************
MPU_initThreeSegmentsParam param
#define HWREG8(x)
Definition: hw_memmap.h:41