/** * \brief Intialize LCD display */ static void _display_init(void) { struct ili9325_opt_t ili9325_display_opt; /* Enable peripheral clock */ pmc_enable_periph_clk(ID_SMC); /* Configure SMC interface for LCD */ smc_set_setup_timing(SMC, BOARD_LCD_SMC_CS, BOARD_LCD_SMC_SETUP); smc_set_pulse_timing(SMC, BOARD_LCD_SMC_CS, BOARD_LCD_SMC_PULSE); smc_set_cycle_timing(SMC, BOARD_LCD_SMC_CS, BOARD_LCD_SMC_CYCLE); smc_set_mode(SMC, BOARD_LCD_SMC_CS, BOARD_LCD_SMC_MODE); /* Initialize display parameter */ ili9325_display_opt.ul_width = ILI9325_LCD_WIDTH; ili9325_display_opt.ul_height = ILI9325_LCD_HEIGHT; ili9325_display_opt.foreground_color = COLOR_BLACK; ili9325_display_opt.background_color = COLOR_WHITE; /* Switch off backlight */ aat31xx_disable_backlight(); /* Initialize LCD */ ili9325_init(&ili9325_display_opt); /* Set backlight level */ aat31xx_set_backlight(AAT31XX_MAX_BACKLIGHT_LEVEL); /* Turn on LCD */ ili9325_display_on(); }
void config_lcd(void){ /* Initialize display parameter */ g_ili9225_display_opt.ul_width = ILI9225_LCD_WIDTH; g_ili9225_display_opt.ul_height = ILI9225_LCD_HEIGHT; g_ili9225_display_opt.foreground_color = COLOR_BLACK; g_ili9225_display_opt.background_color = COLOR_WHITE; /* Switch off backlight */ aat31xx_disable_backlight(); /* Initialize LCD */ ili9225_init(&g_ili9225_display_opt); /* Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); /* Turn on LCD */ ili9225_display_on(); /* Draw filled rectangle with white color */ //ili9225_set_foreground_color(COLOR_WHITE); ili9225_fill(COLOR_WHITE); //ili9225_draw_filled_rectangle(0, 0, ILI9225_LCD_WIDTH, ILI9225_LCD_HEIGHT); }
void gfx_ili9325_init(void) { struct ili9325_opt_t g_ili9325_display_opt; /* initialize globals */ gfx_width = ILI9325_LCD_WIDTH; gfx_height = ILI9325_LCD_HEIGHT; /* Enable peripheral clock */ pmc_enable_periph_clk(ID_SMC); /* Configure SMC interface for Lcd */ smc_set_setup_timing(SMC,ILI9325_LCD_CS,SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2)); smc_set_pulse_timing(SMC, ILI9325_LCD_CS , SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10)); smc_set_cycle_timing(SMC, ILI9325_LCD_CS, SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22)); #if !defined(SAM4S) smc_set_mode(SMC, ILI9325_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT); #else smc_set_mode(SMC, ILI9325_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE); #endif /* Initialize display parameter */ g_ili9325_display_opt.ul_width= ILI9325_LCD_WIDTH; g_ili9325_display_opt.ul_height = ILI9325_LCD_HEIGHT; g_ili9325_display_opt.foreground_color= COLOR_BLACK; g_ili9325_display_opt.background_color = COLOR_WHITE; /* Switch off backlight */ aat31xx_disable_backlight(); /* Initialize LCD */ ili9325_init(&g_ili9325_display_opt); ili9325_display_on(); /* Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); /* Set clipping area to whole screen initially */ gfx_set_clipping(0, 0, gfx_width, gfx_height); gfx_draw_filled_rect(0, 0, gfx_width, gfx_height, GFX_COLOR(0xFF, 0xFF, 0xFF)); }
void configure_LCD(){ /** Enable peripheral clock */ pmc_enable_periph_clk(ID_SMC); /** Configure SMC interface for Lcd */ smc_set_setup_timing(SMC, ILI93XX_LCD_CS, SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2)); smc_set_pulse_timing(SMC, ILI93XX_LCD_CS, SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10)); smc_set_cycle_timing(SMC, ILI93XX_LCD_CS, SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22)); #if ((!defined(SAM4S)) && (!defined(SAM4E))) smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT); #else smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE); #endif /** Initialize display parameter */ g_ili93xx_display_opt.ul_width = ILI93XX_LCD_WIDTH; g_ili93xx_display_opt.ul_height = ILI93XX_LCD_HEIGHT; g_ili93xx_display_opt.foreground_color = COLOR_BLACK; g_ili93xx_display_opt.background_color = COLOR_WHITE; /** Switch off backlight */ aat31xx_disable_backlight(); /** Initialize LCD */ ili93xx_init(&g_ili93xx_display_opt); /** Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); /** Turn on LCD */ ili93xx_display_on(); ili93xx_set_cursor_position(0, 0); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_circle(120, 160, 40); ili93xx_draw_line(120, 160, 60, 160); ili93xx_draw_line(120, 160, 120, 100); ili93xx_draw_line(120, 160, 180, 160); }
/** * \brief Application entry point for ili9225_spi_lcd example. * * \return Unused (ANSI-C compatibility). */ int main(void) { sysclk_init(); board_init(); /* Initialize debug console */ configure_console(); /* Initialize display parameter */ g_ili9225_display_opt.ul_width = ILI9225_LCD_WIDTH; g_ili9225_display_opt.ul_height = ILI9225_LCD_HEIGHT; g_ili9225_display_opt.foreground_color = COLOR_BLACK; g_ili9225_display_opt.background_color = COLOR_WHITE; /* Switch off backlight */ aat31xx_disable_backlight(); /* Initialize LCD */ ili9225_init(&g_ili9225_display_opt); /* Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); /* Turn on LCD */ ili9225_display_on(); /* Draw filled rectangle with white color */ ili9225_set_foreground_color(COLOR_WHITE); ili9225_draw_filled_rectangle(0, 0, ILI9225_LCD_WIDTH, ILI9225_LCD_HEIGHT); /* Draw text and basic shapes on the LCD */ ili9225_set_foreground_color(COLOR_BLACK); ili9225_draw_string(10, 20, (uint8_t *)"ili9225_lcd"); /* Draw three circle with red, green and blue color */ ili9225_set_foreground_color(COLOR_RED); ili9225_draw_circle(60, 80, 30); ili9225_set_foreground_color(COLOR_GREEN); ili9225_draw_circle(60, 120, 30); ili9225_set_foreground_color(COLOR_BLUE); ili9225_draw_circle(60, 160, 30); /* Draw one line */ ili9225_draw_line(0, 0, 176, 220); while (1) { } }
*/ static void configure_lcd(void) { /* Configure SMC interface for Lcd */ smc_set_setup_timing(SMC,ILI9325_LCD_CS,SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2)); smc_set_pulse_timing(SMC, ILI9325_LCD_CS , SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10)); smc_set_cycle_timing(SMC, ILI9325_LCD_CS, SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22)); #if !defined(SAM4S) smc_set_mode(SMC, ILI9325_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT); #else smc_set_mode(SMC, ILI9325_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE); #endif /* Initialize display parameter */ g_ili9325_display_opt.ul_width = ILI9325_LCD_WIDTH; g_ili9325_display_opt.ul_height = ILI9325_LCD_HEIGHT; g_ili9325_display_opt.foreground_color = COLOR_BLACK; g_ili9325_display_opt.background_color = COLOR_WHITE; /* Switch off backlight */ //aat31xx_disable_backlight(); /* Initialize LCD */ ili9325_init(&g_ili9325_display_opt); /* Set backlight level */ aat31xx_set_backlight(AAT31XX_MAX_BACKLIGHT_LEVEL); ili9325_set_foreground_color(COLOR_WHITE); ili9325_draw_filled_rectangle(0, 0, ILI9325_LCD_WIDTH, ILI9325_LCD_HEIGHT); /* Turn on LCD */ ili9325_display_on();
/** * \brief Application entry point for smc_lcd example. * * \return Unused (ANSI-C compatibility). */ int main(void) { sysclk_init(); board_init(); /** Initialize debug console */ configure_console(); /** Enable peripheral clock */ pmc_enable_periph_clk(ID_SMC); /** Configure SMC interface for Lcd */ smc_set_setup_timing(SMC, ILI93XX_LCD_CS, SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2)); smc_set_pulse_timing(SMC, ILI93XX_LCD_CS, SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10)); smc_set_cycle_timing(SMC, ILI93XX_LCD_CS, SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22)); #if ((!defined(SAM4S)) && (!defined(SAM4E))) smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT); #else smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE); #endif /** Initialize display parameter */ g_ili93xx_display_opt.ul_width = ILI93XX_LCD_WIDTH; g_ili93xx_display_opt.ul_height = ILI93XX_LCD_HEIGHT; g_ili93xx_display_opt.foreground_color = COLOR_BLACK; g_ili93xx_display_opt.background_color = COLOR_WHITE; /** Switch off backlight */ aat31xx_disable_backlight(); /** Initialize LCD */ ili93xx_init(&g_ili93xx_display_opt); /** Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); /** Turn on LCD */ ili93xx_display_on(); ili93xx_set_cursor_position(0, 0); /** Draw text, image and basic shapes on the LCD */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(10, 20, (uint8_t *)"ili93xx_lcd example"); ili93xx_set_foreground_color(COLOR_RED); ili93xx_draw_circle(60, 160, 40); ili93xx_set_foreground_color(COLOR_GREEN); ili93xx_draw_circle(120, 160, 40); ili93xx_set_foreground_color(COLOR_BLUE); ili93xx_draw_circle(180, 160, 40); ili93xx_set_foreground_color(COLOR_VIOLET); ili93xx_draw_line(0, 0, 240, 320); while (1) { } }
/** * \brief GFX task core function. * * \param pvParameters Junk parameter. */ static void gfx_task(void *pvParameters) { uint32_t blink = 0; /* Get rid of this compiler warning. */ pvParameters = pvParameters; /* Enable display, backlight and print ATMEL logo. */ ili93xx_set_cursor_position(0,0); ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); gfx_draw_bmpfile(logo_atmel_bmp); ili93xx_display_on(); for (uint32_t i = AAT31XX_MIN_BACKLIGHT_LEVEL; i <= AAT31XX_MAX_BACKLIGHT_LEVEL; ++i) { aat31xx_set_backlight(i); vTaskDelay(40); } vTaskDelay(presentation_delay); /* Draw IP config menu. */ ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); #if (IP_SELECTION == IP_FIXED) /* Static IP button selected. */ /* Button 1. */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_rectangle(20,70,220,130); ili93xx_set_foreground_color(0xE4E4E4u); ili93xx_draw_rectangle(22,72,222,132); ili93xx_set_foreground_color(COLOR_LIGHTGREY); ili93xx_draw_filled_rectangle(21,71,221,131); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(92, 91, (uint8_t *)"Static"); /* Button 2. */ ili93xx_set_foreground_color(0xE4E4E4u); ili93xx_draw_rectangle(20,170,220,230); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_rectangle(22,172,222,232); ili93xx_set_foreground_color(COLOR_LIGHTGREY); ili93xx_draw_filled_rectangle(21,171,221,231); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(102, 191, (uint8_t *)"DHCP"); #else /* DHCP IP button selected. */ /* Button 1. */ ili93xx_set_foreground_color(0xE4E4E4u); ili93xx_draw_rectangle(20,70,220,130); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_rectangle(22,72,222,132); ili93xx_set_foreground_color(COLOR_LIGHTGREY); ili93xx_draw_filled_rectangle(21,71,221,131); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(92, 91, (uint8_t *)"Static"); /* Button 2. */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_rectangle(20,170,220,230); ili93xx_set_foreground_color(0xE4E4E4u); ili93xx_draw_rectangle(22,172,222,232); ili93xx_set_foreground_color(COLOR_LIGHTGREY); ili93xx_draw_filled_rectangle(21,171,221,231); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(102, 191, (uint8_t *)"DHCP"); #endif ili93xx_draw_string(22, 30, (uint8_t *)"IP Configuration"); ili93xx_draw_string(20, 260, (uint8_t *)"Assigned IP:"); ili93xx_draw_rectangle(20,280,220,310); /* Bring up the ethernet interface & initializes timer0, channel0 */ ili93xx_draw_string(30, 290, (uint8_t *)"Please wait..."); init_ethernet(); app_hold = 0; /* Show configured IP and unlock all other waiting tasks. */ ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(20,280,220,310); ili93xx_draw_filled_rectangle(0,0,240,60); ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_rectangle(20,280,220,310); ili93xx_draw_string(30, 290, (uint8_t const*)g_c_ipconfig); /* GFX task Loop. */ while (1) { /* Make HTTP text to blink to show GFX task activity. */ if (blink == 0) { ili93xx_draw_string(5, 30, (uint8_t *)"HTTP server running!"); blink = 1; } else { ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0,0,240,60); ili93xx_set_foreground_color(COLOR_BLACK); blink = 0; } /* Sleep to reach the expected blink rate. */ /* Leave some CPU time for other tasks. */ vTaskDelay(gfx_refresh_rate); } }
*/ int main(void) { sysclk_init(); board_init(); /** Initialize debug console */ configure_console(); /** Configura o timer */ configure_tc(); /* Configura os botões */ configure_buttons(); /** Enable peripheral clock */ pmc_enable_periph_clk(ID_SMC); /** Configure SMC interface for Lcd */ smc_set_setup_timing(SMC, ILI93XX_LCD_CS, SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2)); smc_set_pulse_timing(SMC, ILI93XX_LCD_CS, SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10)); smc_set_cycle_timing(SMC, ILI93XX_LCD_CS, SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22)); #if ((!defined(SAM4S)) && (!defined(SAM4E))) smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT); #else smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE); #endif /** Initialize display parameter */ g_ili93xx_display_opt.ul_width = ILI93XX_LCD_WIDTH; g_ili93xx_display_opt.ul_height = ILI93XX_LCD_HEIGHT; g_ili93xx_display_opt.foreground_color = COLOR_BLACK; g_ili93xx_display_opt.background_color = COLOR_WHITE; /** Switch off backlight */ aat31xx_disable_backlight(); /** Initialize LCD */ ili93xx_init(&g_ili93xx_display_opt); /** Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); /** Turn on LCD */ ili93xx_display_on(); ili93xx_set_cursor_position(0, 0); /** Draw text, image and basic shapes on the LCD */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(80, 10, (uint8_t *)"13 - LCD"); ili93xx_draw_string(10, 40, (uint8_t *)"Andre"); ili93xx_draw_string(10, 60, (uint8_t *)"Thales"); ili93xx_draw_string(10, 80, (uint8_t *)"Tete"); ili93xx_set_foreground_color(COLOR_ORANGE); ili93xx_draw_filled_rectangle(0, 100, ILI93XX_LCD_WIDTH,105); ili93xx_set_foreground_color(COLOR_GREEN); ili93xx_draw_filled_rectangle(0, 106, ILI93XX_LCD_WIDTH,111); while (1) { /* Entra em modo sleep */ pmc_sleep(SAM_PM_SMODE_SLEEP_WFI); }
/** * \brief Application entry point for spi_touchscreen example. * * \return Unused (ANSI-C compatibility). */ int main(void) { uint8_t uc_result; sysclk_init(); board_init(); configure_console(); /* Enable clocks for push buttons management */ pmc_enable_periph_clk(ID_PIOA); pmc_enable_periph_clk(ID_PIOB); pmc_enable_periph_clk(ID_PIOC); /* Output example information */ puts(STRING_HEADER); /* Configure systick for 1 ms. */ puts("Configure system tick to get 1ms tick period.\r"); if (SysTick_Config(sysclk_get_cpu_hz() / 1000)) { puts("Systick configuration error\r"); while (1); } /* Switch off backlight */ aat31xx_disable_backlight(); lcd_init(); lcd_set_foreground_color(UNI_COLOR_WHITE); lcd_draw_filled_rectangle(0, 0, LCD_WIDTH, LCD_HEIGHT); /* Turn on LCD */ lcd_display_on(); /* Switch on backlight */ aat31xx_set_backlight(AAT31XX_MAX_BACKLIGHT_LEVEL); /* Initializes the PIO interrupt management for touchscreen driver */ pio_handler_set_priority(PIOA, PIOA_IRQn, IRQ_PRIOR_PIO); pio_handler_set_priority(PIOB, PIOB_IRQn, IRQ_PRIOR_PIO); pio_handler_set_priority(PIOC, PIOC_IRQn, IRQ_PRIOR_PIO); /* Initialize touchscreen without calibration */ rtouch_init(LCD_WIDTH, LCD_HEIGHT); rtouch_enable(); rtouch_set_event_handler(event_handler); while (1) { uc_result = rtouch_calibrate(); if (uc_result == 0) { puts("Calibration successful !\r"); break; } else { puts("Calibration failed; error delta is too big ! Please retry calibration procedure...\r"); } } while (1) { } }
/** \brief Main function. Execution starts here. */ int main(void) { uint8_t uc_result; /* Initialize the sleep manager */ sleepmgr_init(); membag_init(); sysclk_init(); init_specific_board(); /* Initialize the console uart */ configure_console(); /* Output demo infomation. */ printf("-- SAM Toolkit Demo Example --\n\r"); printf("-- %s\n\r", BOARD_NAME); printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__); /* Configure systick for 1 ms. */ puts("Configure system tick to get 1ms tick period.\r"); if (SysTick_Config(sysclk_get_cpu_hz() / 1000)) { puts("Systick configuration error\r"); while (1) { } } /* Initialize gfx module */ gfx_init(); win_init(); /* Initialize FatFS and bitmap draw interface */ demo_draw_bmpfile_init(); /* Initialize touchscreen without calibration */ rtouch_init(LCD_WIDTH, LCD_HEIGHT); rtouch_enable(); rtouch_set_event_handler(event_handler); /* Initialize demo parameters */ demo_parameters_initialize(); while (g_demo_parameters.calib_points[0].raw.x == 0) { uc_result = rtouch_calibrate(); if (uc_result == 0) { demo_set_special_mode_status(DEMO_LCD_CALIBRATE_MODE, 0); puts("Calibration successful !\r"); break; } else { puts("Calibration failed; error delta is too big ! Please retry calibration procedure...\r"); } } /* Re-caculate the calibration data */ rtouch_compute_calibration( (rtouch_calibration_point_t *)&g_demo_parameters.calib_points[0]); /* Setup root window */ setup_gui_root_window(); gfx_draw_bitmap(&win_startup_bmp, 0, 40); /* Set backlight by the data read from demo parameters */ aat31xx_set_backlight(g_demo_parameters.backlight); /* Default RTC configuration, 24-hour mode */ rtc_set_hour_mode(RTC, 0); rtc_set_time(RTC, g_demo_parameters.hour, g_demo_parameters.minute, g_demo_parameters.second); rtc_set_date( RTC, g_demo_parameters.year, g_demo_parameters.month, g_demo_parameters.day, 1 ); /* Create a semaphore to manage the memories data transfer */ vSemaphoreCreateBinary(main_trans_semphr); /* Turn on main widget */ app_widget_main_on(true); /* Initialize QTouch */ demo_qt_init(); /* Start USB stack to authorize VBus monitoring */ udc_start(); if (!udc_include_vbus_monitoring()) { /* VBUS monitoring is not available on this product * thereby VBUS has to be considered as present */ main_vbus_action(true); } /* Create task to window task */ if (xTaskCreate(task_win, "WIN", TASK_WIN_STACK_SIZE, NULL, TASK_WIN_STACK_PRIORITY, NULL) != pdPASS) { printf("Failed to create test led task\r\n"); } /* Create task to usb mass storage task */ if (xTaskCreate(task_usb, "USB", TASK_USB_STACK_SIZE, NULL, TASK_USB_STACK_PRIORITY, NULL) != pdPASS) { printf("Failed to create test led task\r\n"); } /* Start the scheduler. */ vTaskStartScheduler(); /* Will only get here if there was insufficient memory to create the * idle task. */ return 0; }
/** * \brief Application entry point for smc_lcd example. * * \return Unused (ANSI-C compatibility). */ int main(void) { sysclk_init(); board_init(); /** Configura os botões, o TC e desabilita o Watchdog Timer. */ configure_buttons(); WDT->WDT_MR = WDT_MR_WDDIS; configure_tc(); /** Initialize debug console */ configure_console(); /** Enable peripheral clock */ pmc_enable_periph_clk(ID_SMC); /** Configure SMC interface for Lcd */ smc_set_setup_timing(SMC, ILI93XX_LCD_CS, SMC_SETUP_NWE_SETUP(2) | SMC_SETUP_NCS_WR_SETUP(2) | SMC_SETUP_NRD_SETUP(2) | SMC_SETUP_NCS_RD_SETUP(2)); smc_set_pulse_timing(SMC, ILI93XX_LCD_CS, SMC_PULSE_NWE_PULSE(4) | SMC_PULSE_NCS_WR_PULSE(4) | SMC_PULSE_NRD_PULSE(10) | SMC_PULSE_NCS_RD_PULSE(10)); smc_set_cycle_timing(SMC, ILI93XX_LCD_CS, SMC_CYCLE_NWE_CYCLE(10) | SMC_CYCLE_NRD_CYCLE(22)); #if ((!defined(SAM4S)) && (!defined(SAM4E))) smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE | SMC_MODE_DBW_8_BIT); #else smc_set_mode(SMC, ILI93XX_LCD_CS, SMC_MODE_READ_MODE | SMC_MODE_WRITE_MODE); #endif /** Initialize display parameter */ g_ili93xx_display_opt.ul_width = ILI93XX_LCD_WIDTH; g_ili93xx_display_opt.ul_height = ILI93XX_LCD_HEIGHT; g_ili93xx_display_opt.foreground_color = COLOR_BLACK; g_ili93xx_display_opt.background_color = COLOR_WHITE; /** Switch off backlight */ aat31xx_disable_backlight(); /** Initialize LCD */ ili93xx_init(&g_ili93xx_display_opt); /** Set backlight level */ aat31xx_set_backlight(AAT31XX_AVG_BACKLIGHT_LEVEL); ili93xx_set_foreground_color(COLOR_WHITE); ili93xx_draw_filled_rectangle(0, 0, ILI93XX_LCD_WIDTH, ILI93XX_LCD_HEIGHT); /** Turn on LCD */ ili93xx_display_on(); ili93xx_set_cursor_position(0, 0); /** Escreve os nomes no display. */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(10, 20, (uint8_t *)"Bruna Tavares"); ili93xx_draw_string(10, 40, (uint8_t *)"Bruno Campos"); ili93xx_draw_string(10, 60, (uint8_t *)"Keneth Yamada"); /** Desenha linha */ ili93xx_set_foreground_color(COLOR_BLUEVIOLET); ili93xx_draw_line(0, 90, 240, 90); /** Escreve contador e tempo no display. */ ili93xx_set_foreground_color(COLOR_BLACK); ili93xx_draw_string(10, 110, (uint8_t *)"Contador"); ili93xx_draw_string(10, 300, (uint8_t *)"Tempo "); /** Escreve valores iniciais do contador. */ ili93xx_draw_string(130, 110, (uint8_t *)"000"); ili93xx_draw_string(140, 300, (uint8_t *)"00:00"); while (1) { // Coloca o microcontrolador em modo Sleep aguardando interrupções. pmc_sleep(SAM_PM_SMODE_SLEEP_WFI); } }