00001
00078 #include <avr32/io.h>
00079 #include "pwm.h"
00080 #include "gpio.h"
00081 #include "board.h"
00082
00083
00084 #if BOARD == STK1000
00085 # define EXAMPLE_PWM_PIN AVR32_PWM_0_PIN
00086 # define EXAMPLE_PWM_FUNCTION AVR32_PWM_0_FUNCTION
00087 # define EXAMPLE_PWM_CHANNEL_ID 0
00088 #elif BOARD == NGW100
00089 # define EXAMPLE_PWM_PIN AVR32_PWM_0_PIN
00090 # define EXAMPLE_PWM_FUNCTION AVR32_PWM_0_FUNCTION
00091 # define EXAMPLE_PWM_CHANNEL_ID 0
00092 #endif
00093
00094
00099 int main()
00100 {
00101 pwm_opt_t pwm_opt;
00102 avr32_pwm_channel_t pwm_channel;
00103
00104
00105 unsigned int channel_id;
00106
00107 channel_id = EXAMPLE_PWM_CHANNEL_ID;
00108 gpio_enable_module_pin(EXAMPLE_PWM_PIN, EXAMPLE_PWM_FUNCTION);
00109
00110
00111 pwm_opt.diva = AVR32_PWM_DIVA_CLK_OFF;
00112 pwm_opt.divb = AVR32_PWM_DIVB_CLK_OFF;
00113 pwm_opt.prea = AVR32_PWM_PREA_MCK;
00114 pwm_opt.preb = AVR32_PWM_PREB_MCK;
00115
00116 pwm_init(&pwm_opt);
00117
00118 pwm_channel.CMR.calg = PWM_MODE_LEFT_ALIGNED;
00119 pwm_channel.CMR.cpol = PWM_POLARITY_LOW;
00120 pwm_channel.CMR.cpd = PWM_UPDATE_DUTY;
00121 pwm_channel.CMR.cpre = AVR32_PWM_CPRE_MCK_DIV_1024;
00122 pwm_channel.cdty = 250;
00123 pwm_channel.cprd = 1000;
00124 pwm_channel.cupd = 0;
00125
00126
00127
00128
00129 pwm_channel_init(channel_id, &pwm_channel);
00130
00131 pwm_start_channels(1 << channel_id);
00132
00133 while(1);
00134
00135
00136 pwm_stop_channels(1 << channel_id);
00137
00138 return 0;
00139 }