00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef _AVERSIVE_TIMERS_H_
00033 #define _AVERSIVE_TIMERS_H_
00034
00035
00036 #define TIMER_8_MODE_NORMAL 0
00037 #define TIMER_8_MODE_PWM_PC 1 // phase correct PWM
00038 #define TIMER_8_MODE_CTC 2
00039 #define TIMER_8_MODE_PWM 3 // fast PWM
00040
00041 #define TIMER_16_MODE_NORMAL 0
00042 #define TIMER_16_MODE_PWM_PC_8 1 // phase correct PWM 8 bits
00043 #define TIMER_16_MODE_PWM_PC_9 2 // phase correct PWM 9 bits
00044 #define TIMER_16_MODE_PWM_PC_10 3 // phase correct PWM 10 bits
00045 #define TIMER_16_MODE_CTC1 4 // clear on compare, TOP = OCRA
00046 #define TIMER_16_MODE_PWM_8 5 // fast PWM 8 bits
00047 #define TIMER_16_MODE_PWM_9 6 // fast PWM 9 bits
00048 #define TIMER_16_MODE_PWM_10 7 // fast PWM 10 bits
00049 #define TIMER_16_MODE_PWM_PFC1 8 // PWM, Phase & Freq Correct
00050 #define TIMER_16_MODE_PWM_PFC2 9 // PWM, Phase & Freq Correct
00051 #define TIMER_16_MODE_PWM_PC1 10 // PWM, Phase Correct
00052 #define TIMER_16_MODE_PWM_PC2 11 // PWM, Phase Correct
00053 #define TIMER_16_MODE_CTC2 12 // clear on compare, TOP = ICR
00054 #define TIMER_16_MODE_PWM_F1 14 // fast PWM
00055 #define TIMER_16_MODE_PWM_F2 15 // fast PWM
00056
00057
00058
00059 #if defined (__AVR_ATmega128__)
00060
00061
00062 #define OCR0_DDR DDRB
00063 #define OCR0_BIT 4
00064 #define OCR1A_DDR DDRB
00065 #define OCR1A_BIT 5
00066 #define OCR1B_DDR DDRB
00067 #define OCR1B_BIT 6
00068 #define OCR1C_DDR DDRB
00069 #define OCR1C_BIT 7
00070 #define OCR2_DDR DDRB
00071 #define OCR2_BIT 7
00072 #define OCR3A_DDR DDRE
00073 #define OCR3A_BIT 3
00074 #define OCR3B_DDR DDRE
00075 #define OCR3B_BIT 4
00076 #define OCR3C_DDR DDRE
00077 #define OCR3C_BIT 5
00078
00079
00080
00081
00082
00083 #elif defined (__AVR_ATmega1281__)
00084
00085
00086 #define OCR0A_DDR DDRB
00087 #define OCR0A_BIT 7
00088 #define OCR0B_DDR DDRG
00089 #define OCR0B_BIT 5
00090 #define OCR1A_DDR DDRB
00091 #define OCR1A_BIT 5
00092 #define OCR1B_DDR DDRB
00093 #define OCR1B_BIT 6
00094 #define OCR1C_DDR DDRB
00095 #define OCR1C_BIT 7
00096 #define OCR2A_DDR DDRB
00097 #define OCR2A_BIT 4
00098 #define OCR3A_DDR DDRE
00099 #define OCR3A_BIT 3
00100 #define OCR3B_DDR DDRE
00101 #define OCR3B_BIT 4
00102 #define OCR3C_DDR DDRE
00103 #define OCR3C_BIT 5
00104
00105
00106
00107
00108 #elif defined (__AVR_ATmega32__) || defined (__AVR_ATmega323__)
00109
00110 #ifdef __AVR_ATmega323__
00111
00112
00113 #define WGM20 PWM2
00114 #define WGM21 CTC2
00115
00116 #define WGM10 PWM10
00117 #define WGM11 PWM11
00118 #define WGM12 3//CTC1
00119 #define WGM13 4 // reserve bit
00120
00121 #define WGM00 PWM0
00122 #define WGM01 CTC0
00123
00124 #endif // mega323
00125
00126
00127
00128 #define OCR0_DDR DDRB
00129 #define OCR0_BIT 3
00130 #define OCR1A_DDR DDRD
00131 #define OCR1A_BIT 5
00132 #define OCR1B_DDR DDRD
00133 #define OCR1B_BIT 4
00134 #define OCR2_DDR DDRD
00135 #define OCR2_BIT 7
00136
00137
00138
00139 #elif defined (__AVR_ATmega8__)
00140
00141
00142 #define OCR1A_DDR DDRB
00143 #define OCR1A_BIT 1
00144 #define OCR1B_DDR DDRB
00145 #define OCR1B_BIT 2
00146 #define OCR2_DDR DDRB
00147 #define OCR2_BIT 3
00148
00149
00150
00151
00152 #elif defined (__AVR_ATmega163__)
00153
00154
00155 #define WGM20 PWM2
00156 #define WGM21 CTC2
00157
00158 #define WGM10 PWM10
00159 #define WGM11 PWM11
00160 #define WGM12 CTC1
00161 #define WGM13 4 // reserve bit
00162
00163
00164 #define OCR1A_DDR DDRD
00165 #define OCR1A_BIT 5
00166 #define OCR1B_DDR DDRD
00167 #define OCR1B_BIT 4
00168 #define OCR2_DDR DDRD
00169 #define OCR2_BIT 7
00170
00171
00172
00173 #elif defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega168__)
00174
00175
00176 #define OCR0A_DDR DDRD
00177 #define OCR0A_BIT 6
00178 #define OCR0B_DDR DDRD
00179 #define OCR0B_BIT 5
00180
00181 #define OCR1A_DDR DDRB
00182 #define OCR1A_BIT 1
00183 #define OCR1B_DDR DDRB
00184 #define OCR1B_BIT 2
00185
00186 #define OCR2A_DDR DDRB
00187 #define OCR2A_BIT 3
00188 #define OCR2B_DDR DDRD
00189 #define OCR2B_BIT 3
00190
00191
00192 #else
00193
00194 #endif
00195
00196 #endif