00001
00101 #include <avr32/io.h>
00102 #include "compiler.h"
00103 #include "board.h"
00104 #include "pm_at32ap7000.h"
00105 #include "gpio.h"
00106 #include "tc.h"
00107
00108
00111
00112 #if BOARD == EVK1100
00113 # define EXAMPLE_TC AVR32_TC
00114 # define EXAMPLE_TC_CHANNEL_ID 0
00115 # define EXAMPLE_TC_CHANNEL_PIN AVR32_TC_A0_0_0_PIN
00116 # define EXAMPLE_TC_CHANNEL_FUNCTION AVR32_TC_A0_0_0_FUNCTION
00117
00118 #elif BOARD == EVK1101
00119 # define EXAMPLE_TC AVR32_TC
00120 # define EXAMPLE_TC_CHANNEL_ID 0
00121 # define EXAMPLE_TC_CHANNEL_PIN AVR32_TC_A0_0_0_PIN
00122 # define EXAMPLE_TC_CHANNEL_FUNCTION AVR32_TC_A0_0_0_FUNCTION
00123
00124 #elif BOARD == STK1000
00125 # define EXAMPLE_TC AVR32_TC0
00126 # define EXAMPLE_TC_CHANNEL_ID 0
00127 # define EXAMPLE_TC_CHANNEL_PIN AVR32_TC0_A0_0_PIN
00128 # define EXAMPLE_TC_CHANNEL_FUNCTION AVR32_TC0_A0_0_FUNCTION
00129 #elif BOARD == NGW100
00130 # define EXAMPLE_TC AVR32_TC0
00131 # define EXAMPLE_TC_CHANNEL_ID 0
00132 # define EXAMPLE_TC_CHANNEL_PIN AVR32_TC0_A0_0_PIN
00133 # define EXAMPLE_TC_CHANNEL_FUNCTION AVR32_TC0_A0_0_FUNCTION
00134 #endif
00136
00137
00140 int main(void)
00141 {
00142
00143
00144 volatile avr32_tc_t *tc = &EXAMPLE_TC;
00145
00146
00147 tc_waveform_opt_t waveform_opt =
00148 {
00149 .channel = EXAMPLE_TC_CHANNEL_ID,
00150
00151 .bswtrg = TC_EVT_EFFECT_NOOP,
00152 .beevt = TC_EVT_EFFECT_NOOP,
00153 .bcpc = TC_EVT_EFFECT_NOOP,
00154 .bcpb = TC_EVT_EFFECT_NOOP,
00155
00156 .aswtrg = TC_EVT_EFFECT_NOOP,
00157 .aeevt = TC_EVT_EFFECT_NOOP,
00158 .acpc = TC_EVT_EFFECT_TOGGLE,
00159 .acpa = TC_EVT_EFFECT_TOGGLE,
00160
00161 .wavsel = TC_WAVEFORM_SEL_UP_MODE,
00162 .enetrg = FALSE,
00163 .eevt = TC_EXT_EVENT_SEL_TIOB_INPUT,
00164 .eevtedg = TC_SEL_NO_EDGE,
00165 .cpcdis = FALSE,
00166 .cpcstop = FALSE,
00167
00168 .burst = TC_BURST_NOT_GATED,
00169 .clki = TC_CLOCK_RISING_EDGE,
00170 .tcclks = TC_CLOCK_SOURCE_TC3
00171 };
00172
00173 #if BOARD == STK1000
00174
00175 pm_reset();
00176
00177
00178 pm_pll_opt_t pll_opt = {
00179 .pll_id = 0,
00180 .mul = 24,
00181 .div = 5,
00182 .osc_id = 0,
00183 .count = 16,
00184 .wait_for_lock = 1,
00185 };
00186 pm_start_pll(&pll_opt);
00187
00188
00189 pm_set_clock_domain_scaler(PM_HSB_DOMAIN, 2);
00190 pm_set_clock_domain_scaler(PM_PBA_DOMAIN, 4);
00191
00192
00193 pm_set_clock_domain_scaler(PM_PBB_DOMAIN, 8);
00194
00195
00196 pm_set_mclk_source(PM_PLL0);
00197 #endif
00198
00199
00200 gpio_enable_module_pin(EXAMPLE_TC_CHANNEL_PIN, EXAMPLE_TC_CHANNEL_FUNCTION);
00201
00202
00203 tc_init_waveform(tc, &waveform_opt);
00204
00205
00206 tc_write_ra(tc, EXAMPLE_TC_CHANNEL_ID, 0x0600);
00207 tc_write_rc(tc, EXAMPLE_TC_CHANNEL_ID, 0x2000);
00208
00209
00210 tc_start(tc, EXAMPLE_TC_CHANNEL_ID);
00211
00212 while (TRUE);
00213 }