00001
00047 #include "board.h"
00048 #include "gpio.h"
00049 #include "power_clocks_lib.h"
00050 #include "et024006dhu.h"
00051 #include "delay.h"
00052 #include "avr32_logo.h"
00053
00054 #if BOARD == EVK1105
00055 #include "pwm.h"
00056 avr32_pwm_channel_t pwm_channel6 = {
00057
00058
00059
00060
00061
00062
00063
00064 .cdty = 0,
00065 .cprd = 100
00066 };
00067
00068 static void tft_bl_init(void)
00069 {
00070
00071 pwm_opt_t opt = {
00072 .diva = 0,
00073 .divb = 0,
00074 .prea = 0,
00075 .preb = 0
00076 };
00077
00078
00079
00080
00081
00082
00083
00084 pwm_init(&opt);
00085 pwm_channel6.CMR.calg = PWM_MODE_LEFT_ALIGNED;
00086 pwm_channel6.CMR.cpol = PWM_POLARITY_HIGH;
00087 pwm_channel6.CMR.cpd = PWM_UPDATE_DUTY;
00088 pwm_channel6.CMR.cpre = AVR32_PWM_CMR_CPRE_MCK_DIV_2;
00089
00090 pwm_channel_init(6, &pwm_channel6);
00091 pwm_start_channels(AVR32_PWM_ENA_CHID6_MASK);
00092
00093 }
00094 #endif
00095
00096 int main(void)
00097 {
00098 U32 i;
00099
00100
00101 pcl_switch_to_osc(PCL_OSC0, FOSC0, OSC0_STARTUP);
00102
00103 gpio_enable_gpio_pin(LED0_GPIO);
00104 gpio_enable_gpio_pin(LED1_GPIO);
00105 gpio_enable_gpio_pin(LED2_GPIO);
00106 gpio_enable_gpio_pin(LED3_GPIO);
00107
00108 delay_init(FOSC0);
00109 et024006_Init( FOSC0, FOSC0 );
00110
00111 #if BOARD == EVK1105
00112
00113
00114
00115 tft_bl_init();
00116 #elif BOARD == EVK1104 || BOARD == UC3C_EK
00117 gpio_set_gpio_pin(ET024006DHU_BL_PIN);
00118 #endif
00119
00120
00121 et024006_DrawFilledRect(0 , 0, ET024006_WIDTH, ET024006_HEIGHT, BLACK );
00122
00123
00124 et024006_PutPixmap(avr32_logo, 320, 0, 0, 0, 0, 320, 240);
00125
00126
00127 for( i=0 ; i<16 ; i++ )
00128 {
00129
00130 et024006_DrawFilledRect(20*i, 0, 20, 20, (2*i) | ((4*i)<<5) | ((2*i)<<11) );
00131
00132 et024006_DrawFilledRect(20*i, 20, 20, 20, (2*i) );
00133
00134 et024006_DrawFilledRect(20*i, 200, 20, 20, ((4*i)<<5) );
00135
00136 et024006_DrawFilledRect(20*i, 220, 20, 20, ((2*i)<<11) );
00137 }
00138
00139
00140 #if BOARD == EVK1105
00141
00142 while(pwm_channel6.cdty < pwm_channel6.cprd)
00143 {
00144 pwm_channel6.cdty++;
00145 pwm_channel6.cupd = pwm_channel6.cdty;
00146
00147 pwm_async_update_channel(AVR32_PWM_ENA_CHID6, &pwm_channel6);
00148 delay_ms(10);
00149 }
00150 #endif
00151
00152
00153 et024006_PrintString("AVR32", (const unsigned char *)&FONT6x8, 80, 50, BLUE, -1);
00154 et024006_PrintString("AVR32", (const unsigned char *)&FONT8x8, 80, 60, BLACK, -1);
00155
00156
00157 et024006_DrawHorizLine(10, 50, 20, BLACK);
00158 et024006_DrawVertLine(10, 50, 20, BLACK);
00159 et024006_DrawHorizLine(10, 70, 20, BLACK);
00160 et024006_DrawVertLine(30, 50, 20, BLACK);
00161 et024006_DrawLine(10, 50, 30, 70, BLACK);
00162 et024006_DrawLine(30, 50, 10, 70, BLACK);
00163
00164 while(TRUE);
00165 }