sam3_tc.h
Go to the documentation of this file.00001
00041 #ifndef SAM3_TC_H
00042 #define SAM3_TC_H
00043
00045 #define TC0_BASE 0x40080000 ///< TC0 Base Address.
00046 #define TC1_BASE 0x40084000 ///< TC1 Base Address.
00047 #define TC2_BASE 0x40088000 ///< TC2 Base Address.
00048
00052 #define TC0_CCR0_OFF 0x00 ///< TC0 Channel Control Register (channel = 0).
00053 #define TC0_CCR0 (*((reg32_t*)(TC0_BASE + TC0_CCR0_OFF))) ///< TC0 Channel Control Register (channel = 0).
00054
00055 #define TC0_CMR0_OFF 0x04 ///< TC0 Channel Mode Register (channel = 0).
00056 #define TC0_CMR0 (*((reg32_t*)(TC0_BASE + TC0_CMR0_OFF))) ///< TC0 Channel Mode Register (channel = 0).
00057
00058 #define TC_CMR_CPCTRG 14 ///< RC Compare Trigger Enable
00059 #define TC_CMR_WAVE 15 ///< Waveform mode is enabled
00060
00061 #define TC_CMR_ACPA_SET 0x10000 ///< RA Compare Effect: set
00062 #define TC_CMR_ACPA_CLEAR 0x20000 ///< RA Compare Effect: clear
00063 #define TC_CMR_ACPA_TOGGLE 0x30000 ///< RA Compare Effect: toggle
00064
00065 #define TC_CMR_ACPC_SET 0x40000 ///< RC Compare Effect: set
00066 #define TC_CMR_ACPC_CLEAR 0x80000 ///< RC Compare Effect: clear
00067 #define TC_CMR_ACPC_TOGGLE 0xC0000 ///< RC Compare Effect: toggle
00068
00069 #define TC_CCR_CLKEN 0 ///< Counter Clock Enable Command
00070 #define TC_CCR_CLKDIS 1 ///< Counter Clock Disable Command
00071 #define TC_CCR_SWTRG 2 ///< Software Trigger Command
00072
00073 #define TC_TIMER_CLOCK1 0 ///< Select timer clock TCLK1
00074 #define TC_TIMER_CLOCK2 1 ///< Select timer clock TCLK2
00075
00076 #define TC0_SMMR0_OFF 0x08 ///< TC0 Stepper Motor Mode Register (channel = 0).
00077 #define TC0_SMMR0 (*((reg32_t*)(TC0_BASE + TC0_SMMR0_OFF))) ///< TC0 Stepper Motor Mode Register (channel = 0).
00078
00079 #define TC0_CV0_OFF 0x10 ///< TC0 Conter Vale (channel = 0).
00080 #define TC0_CV0 (*((reg32_t*)(TC0_BASE + TC0_CV0_OFF))) ///< TC0 Conter Vale (channel = 0).
00081
00082 #define TC0_RA0_OFF 0x14 ///< TC0 Register A (channel = 0).
00083 #define TC0_RA0 (*((reg32_t*)(TC0_BASE + TC0_RA0_OFF))) ///< TC0 Register A (channel = 0).
00084
00085 #define TC0_RB0_OFF 0x18 ///< TC0 Register B (channel = 0).
00086 #define TC0_RB0 (*((reg32_t*)(TC0_BASE + TC0_RB0_OFF))) ///< TC0 Register B (channel = 0).
00087
00088 #define TC0_RC0_OFF 0x1C ///< TC0 Register C (channel = 0).
00089 #define TC0_RC0 (*((reg32_t*)(TC0_BASE + TC0_RC0_OFF))) ///< TC0 Register C (channel = 0).
00090
00091 #define TC0_SR0_OFF 0x20 ///< TC0 Stats Register (channel = 0).
00092 #define TC0_SR0 (*((reg32_t*)(TC0_BASE + TC0_SR0_OFF))) ///< TC0 Stats Register (channel = 0).
00093
00094 #define TC0_IER0_OFF 0x24 ///< TC0 Interrpt Enable Register (channel = 0).
00095 #define TC0_IER0 (*((reg32_t*)(TC0_BASE + TC0_IER0_OFF))) ///< TC0 Interrpt Enable Register (channel = 0).
00096
00097 #define TC0_IDR0_OFF 0x28 ///< TC0 Interrpt Disable Register (channel = 0).
00098 #define TC0_IDR0 (*((reg32_t*)(TC0_BASE + TC0_IDR0_OFF))) ///< TC0 Interrpt Disable Register (channel = 0).
00099
00100 #define TC0_IMR0_OFF 0x2C ///< TC0 Interrpt Mask Register (channel = 0).
00101 #define TC0_IMR0 (*((reg32_t*)(TC0_BASE + TC0_IMR0_OFF))) ///< TC0 Interrpt Mask Register (channel = 0).
00102
00103 #define TC0_CCR1_OFF 0x40 ///< TC0 Channel Control Register (channel = 1).
00104 #define TC0_CCR1 (*((reg32_t*)(TC0_BASE + TC0_CCR1_OFF))) ///< TC0 Channel Control Register (channel = 1).
00105
00106 #define TC0_CMR1_OFF 0x44 ///< TC0 Channel Mode Register (channel = 1).
00107 #define TC0_CMR1 (*((reg32_t*)(TC0_BASE + TC0_CMR1_OFF))) ///< TC0 Channel Mode Register (channel = 1).
00108
00109 #define TC0_SMMR1_OFF 0x48 ///< TC0 Stepper Motor Mode Register (channel = 1).
00110 #define TC0_SMMR1 (*((reg32_t*)(TC0_BASE + TC0_SMMR1_OFF))) ///< TC0 Stepper Motor Mode Register (channel = 1).
00111
00112 #define TC0_CV1_OFF 0x50 ///< TC0 Conter Vale (channel = 1).
00113 #define TC0_CV1 (*((reg32_t*)(TC0_BASE + TC0_CV1_OFF))) ///< TC0 Conter Vale (channel = 1).
00114
00115 #define TC0_RA1_OFF 0x54 ///< TC0 Register A (channel = 1).
00116 #define TC0_RA1 (*((reg32_t*)(TC0_BASE + TC0_RA1_OFF))) ///< TC0 Register A (channel = 1).
00117
00118 #define TC0_RB1_OFF 0x58 ///< TC0 Register B (channel = 1).
00119 #define TC0_RB1 (*((reg32_t*)(TC0_BASE + TC0_RB1_OFF))) ///< TC0 Register B (channel = 1).
00120
00121 #define TC0_RC1_OFF 0x5C ///< TC0 Register C (channel = 1).
00122 #define TC0_RC1 (*((reg32_t*)(TC0_BASE + TC0_RC1_OFF))) ///< TC0 Register C (channel = 1).
00123
00124 #define TC0_SR1_OFF 0x60 ///< TC0 Stats Register (channel = 1).
00125 #define TC0_SR1 (*((reg32_t*)(TC0_BASE + TC0_SR1_OFF))) ///< TC0 Stats Register (channel = 1).
00126
00127 #define TC0_IER1_OFF 0x64 ///< TC0 Interrpt Enable Register (channel = 1).
00128 #define TC0_IER1 (*((reg32_t*)(TC0_BASE + TC0_IER1_OFF))) ///< TC0 Interrpt Enable Register (channel = 1).
00129
00130 #define TC0_IDR1_OFF 0x68 ///< TC0 Interrpt Disable Register (channel = 1).
00131 #define TC0_IDR1 (*((reg32_t*)(TC0_BASE + TC0_IDR1_OFF))) ///< TC0 Interrpt Disable Register (channel = 1).
00132
00133 #define TC0_IMR1_OFF 0x6C ///< TC0 Interrpt Mask Register (channel = 1).
00134 #define TC0_IMR1 (*((reg32_t*)(TC0_BASE + TC0_IMR1_OFF))) ///< TC0 Interrpt Mask Register (channel = 1).
00135
00136 #define TC0_CCR2_OFF 0x80 ///< TC0 Channel Control Register (channel = 2).
00137 #define TC0_CCR2 (*((reg32_t*)(TC0_BASE + TC0_CCR2_OFF))) ///< TC0 Channel Control Register (channel = 2).
00138
00139 #define TC0_CMR2_OFF 0x84 ///< TC0 Channel Mode Register (channel = 2).
00140 #define TC0_CMR2 (*((reg32_t*)(TC0_BASE + TC0_CMR2_OFF))) ///< TC0 Channel Mode Register (channel = 2).
00141
00142 #define TC0_SMMR2_OFF 0x88 ///< TC0 Stepper Motor Mode Register (channel = 2).
00143 #define TC0_SMMR2 (*((reg32_t*)(TC0_BASE + TC0_SMMR2_OFF))) ///< TC0 Stepper Motor Mode Register (channel = 2).
00144
00145 #define TC0_CV2_OFF 0x90 ///< TC0 Conter Vale (channel = 2).
00146 #define TC0_CV2 (*((reg32_t*)(TC0_BASE + TC0_CV2_OFF))) ///< TC0 Conter Vale (channel = 2).
00147
00148 #define TC0_RA2_OFF 0x94 ///< TC0 Register A (channel = 2).
00149 #define TC0_RA2 (*((reg32_t*)(TC0_BASE + TC0_RA2_OFF))) ///< TC0 Register A (channel = 2).
00150
00151 #define TC0_RB2_OFF 0x98 ///< TC0 Register B (channel = 2).
00152 #define TC0_RB2 (*((reg32_t*)(TC0_BASE + TC0_RB2_OFF))) ///< TC0 Register B (channel = 2).
00153
00154 #define TC0_RC2_OFF 0x9C ///< TC0 Register C (channel = 2).
00155 #define TC0_RC2 (*((reg32_t*)(TC0_BASE + TC0_RC2_OFF))) ///< TC0 Register C (channel = 2).
00156
00157 #define TC0_SR2_OFF 0xA0 ///< TC0 Stats Register (channel = 2).
00158 #define TC0_SR2 (*((reg32_t*)(TC0_BASE + TC0_SR2_OFF))) ///< TC0 Stats Register (channel = 2).
00159
00160 #define TC0_IER2_OFF 0xA4 ///< TC0 Interrpt Enable Register (channel = 2).
00161 #define TC0_IER2 (*((reg32_t*)(TC0_BASE + TC0_IER2_OFF))) ///< TC0 Interrpt Enable Register (channel = 2).
00162
00163 #define TC0_IDR2_OFF 0xA8 ///< TC0 Interrpt Disable Register (channel = 2).
00164 #define TC0_IDR2 (*((reg32_t*)(TC0_BASE + TC0_IDR2_OFF))) ///< TC0 Interrpt Disable Register (channel = 2).
00165
00166 #define TC0_IMR2_OFF 0xAC ///< TC0 Interrpt Mask Register (channel = 2).
00167 #define TC0_IMR2 (*((reg32_t*)(TC0_BASE + TC0_IMR2_OFF))) ///< TC0 Interrpt Mask Register (channel = 2).
00168
00169 #define TC0_BCR_OFF 0xC0 ///< TC0 Block Control Register.
00170 #define TC0_BCR (*((reg32_t*)(TC0_BASE + TC0_BCR_OFF))) ///< TC0 Block Control Register.
00171
00172 #define TC0_BMR_OFF 0xC4 ///< TC0 Block Mode Register.
00173 #define TC0_BMR (*((reg32_t*)(TC0_BASE + TC0_BMR_OFF))) ///< TC0 Block Mode Register.
00174
00175 #define TC0_QIER_OFF 0xC8 ///< TC0 QDEC Interrpt Enable Register.
00176 #define TC0_QIER (*((reg32_t*)(TC0_BASE + TC0_QIER_OFF))) ///< TC0 QDEC Interrpt Enable Register.
00177
00178 #define TC0_QIDR_OFF 0xCC ///< TC0 QDEC Interrpt Disable Register.
00179 #define TC0_QIDR (*((reg32_t*)(TC0_BASE + TC0_QIDR_OFF))) ///< TC0 QDEC Interrpt Disable Register.
00180
00181 #define TC0_QIMR_OFF 0xD0 ///< TC0 QDEC Interrpt Mask Register.
00182 #define TC0_QIMR (*((reg32_t*)(TC0_BASE + TC0_QIMR_OFF))) ///< TC0 QDEC Interrpt Mask Register.
00183
00184 #define TC0_QISR_OFF 0xD4 ///< TC0 QDEC Interrpt Stats Register.
00185 #define TC0_QISR (*((reg32_t*)(TC0_BASE + TC0_QISR_OFF))) ///< TC0 QDEC Interrpt Stats Register.
00186
00187 #define TC0_FMR_OFF 0xD8 ///< TC0 Falt Mode Register.
00188 #define TC0_FMR (*((reg32_t*)(TC0_BASE + TC0_FMR_OFF))) ///< TC0 Falt Mode Register.
00189
00190 #define TC0_WPMR_OFF 0xE4 ///< TC0 Write Protect Mode Register.
00191 #define TC0_WPMR (*((reg32_t*)(TC0_BASE + TC0_WPMR_OFF))) ///< TC0 Write Protect Mode Register.
00192
00193 #endif