1 //########################################################################### 2 // 3 // FILE: F2837xD_Cputimers.h 4 // 5 // TITLE: F2837xD Device CPUTIMERS Register Definitions. 6 // 7 //########################################################################### 8 // $TI Release: F2837xD Support Library v3.05.00.00 $ 9 // $Release Date: Tue Jun 26 03:15:23 CDT 2018 $ 10 // $Copyright: 11 // Copyright (C) 2013-2018 Texas Instruments Incorporated - http://www.ti.com/ 12 // 13 // Redistribution and use in source and binary forms, with or without 14 // modification, are permitted provided that the following conditions 15 // are met: 16 // 17 // Redistributions of source code must retain the above copyright 18 // notice, this list of conditions and the following disclaimer. 19 // 20 // Redistributions in binary form must reproduce the above copyright 21 // notice, this list of conditions and the following disclaimer in the 22 // documentation and/or other materials provided with the 23 // distribution. 24 // 25 // Neither the name of Texas Instruments Incorporated nor the names of 26 // its contributors may be used to endorse or promote products derived 27 // from this software without specific prior written permission. 28 // 29 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 30 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 31 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 32 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 33 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 34 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 35 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 36 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 37 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 // $ 41 //########################################################################### 42 43 #ifndef F2837xD_CPUTIMERVARS_H 44 #define F2837xD_CPUTIMERVARS_H 45 46 #ifdef __cplusplus 47 extern "C" { 48 #endif 49 50 // 51 // Globals 52 // 53 struct CPUTIMER_VARS { 54 volatile struct CPUTIMER_REGS *RegsAddr; 55 Uint32 InterruptCount; 56 float CPUFreqInMHz; 57 float PeriodInUSec; 58 }; 59 60 extern struct CPUTIMER_VARS CpuTimer0; 61 extern struct CPUTIMER_VARS CpuTimer1; 62 extern struct CPUTIMER_VARS CpuTimer2; 63 64 // 65 // Defines 66 // 67 68 // 69 // Start Timer: 70 // 71 #define StartCpuTimer0() CpuTimer0Regs.TCR.bit.TSS = 0 72 73 // 74 // Stop Timer: 75 // 76 #define StopCpuTimer0() CpuTimer0Regs.TCR.bit.TSS = 1 77 78 // 79 // Reload Timer With period Value: 80 // 81 #define ReloadCpuTimer0() CpuTimer0Regs.TCR.bit.TRB = 1 82 83 // 84 // Read 32-Bit Timer Value: 85 // 86 #define ReadCpuTimer0Counter() CpuTimer0Regs.TIM.all 87 88 // 89 // Read 32-Bit Period Value: 90 // 91 #define ReadCpuTimer0Period() CpuTimer0Regs.PRD.all 92 93 // 94 // Start Timer: 95 // 96 #define StartCpuTimer1() CpuTimer1Regs.TCR.bit.TSS = 0 97 #define StartCpuTimer2() CpuTimer2Regs.TCR.bit.TSS = 0 98 99 // 100 // Stop Timer: 101 // 102 #define StopCpuTimer1() CpuTimer1Regs.TCR.bit.TSS = 1 103 #define StopCpuTimer2() CpuTimer2Regs.TCR.bit.TSS = 1 104 105 // 106 // Reload Timer With period Value: 107 // 108 #define ReloadCpuTimer1() CpuTimer1Regs.TCR.bit.TRB = 1 109 #define ReloadCpuTimer2() CpuTimer2Regs.TCR.bit.TRB = 1 110 111 // 112 // Read 32-Bit Timer Value: 113 // 114 #define ReadCpuTimer1Counter() CpuTimer1Regs.TIM.all 115 #define ReadCpuTimer2Counter() CpuTimer2Regs.TIM.all 116 117 // 118 // Read 32-Bit Period Value: 119 // 120 #define ReadCpuTimer1Period() CpuTimer1Regs.PRD.all 121 #define ReadCpuTimer2Period() CpuTimer2Regs.PRD.all 122 123 // 124 // Function Prototypes 125 // 126 void InitCpuTimers(void); 127 void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period); 128 129 #ifdef __cplusplus 130 } 131 #endif /* extern "C" */ 132 133 134 #endif // end of F2837xD_CPUTIMERVARS_H definition 135 136 // 137 // End of file 138 // 139