X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=boards%2Fsam3n-ek%2Fexamples%2Fdisplay%2Fmain.c;h=d79775e8d523fe1b8a408624b81719aecfa53197;hb=aa0dd642dc2dfc525db7a88c9e766e1e1af18011;hp=7eccf43cc24a7abcd923d340ec2ca60ad4186c3a;hpb=8863f70e42fd5c7f2a503afb147bbc21b4a42c97;p=bertos.git diff --git a/boards/sam3n-ek/examples/display/main.c b/boards/sam3n-ek/examples/display/main.c index 7eccf43c..d79775e8 100644 --- a/boards/sam3n-ek/examples/display/main.c +++ b/boards/sam3n-ek/examples/display/main.c @@ -35,34 +35,34 @@ * \author Stefano Fedrigo */ +#include "bitmaps.h" + +#include "hw/hw_led.h" +#include "hw/hw_lcd.h" + +#include + #include + #include #include -#include #include + +#include + #include #include #include + #include + #include + #include + #include #include -#include "hw/hw_spi.h" -#include "bitmaps.h" - - -// Lcd -#define LCD_BACKLIGHT_MAX 15 -#define LCD_BACKLIGHT_PIN BV(13) // Port C -#define LCD_SPICLOCK 12000000 // Minimum cycle len = 80 ns according specs - -// Leds -#define LED_BLUE_PIN BV(23) // Port A -#define LED_AMBER_PIN BV(25) // Port A -#define LED_GREEN_PIN BV(14) // Port B - // Keyboard #define KEY_MASK (K_LEFT | K_RIGHT) @@ -70,13 +70,13 @@ #define PROC_STACK_SIZE KERN_MINSTACKSIZE * 2 #if CONFIG_KERN_HEAP -#define hp_stack NULL -#define lp_stack NULL -#define led_stack NULL + #define hp_stack NULL + #define lp_stack NULL + #define led_stack NULL #else -static PROC_DEFINE_STACK(hp_stack, PROC_STACK_SIZE); -static PROC_DEFINE_STACK(lp_stack, PROC_STACK_SIZE); -static PROC_DEFINE_STACK(led_stack, PROC_STACK_SIZE); + static PROC_DEFINE_STACK(hp_stack, PROC_STACK_SIZE); + static PROC_DEFINE_STACK(lp_stack, PROC_STACK_SIZE); + static PROC_DEFINE_STACK(led_stack, PROC_STACK_SIZE); #endif struct SpiDmaAt91 spi; @@ -88,38 +88,24 @@ static Process *hp_proc, *lp_proc, *led_proc; static hptime_t start, end; -/* - * Leds - */ -static void led_init(void) -{ - PIOA_SODR = LED_BLUE_PIN | LED_AMBER_PIN; - PIOA_OER = LED_BLUE_PIN | LED_AMBER_PIN; - PIOA_PER = LED_BLUE_PIN | LED_AMBER_PIN; - - PIOB_SODR = LED_GREEN_PIN; - PIOB_OER = LED_GREEN_PIN; - PIOB_PER = LED_GREEN_PIN; -} - INLINE void led_on(int idx) { if (idx == 0) - PIOA_CODR = LED_BLUE_PIN; + LED_BLUE_ON(); else if (idx == 1) - PIOB_CODR = LED_GREEN_PIN; + LED_GREEN_ON(); else if (idx == 2) - PIOA_CODR = LED_AMBER_PIN; + LED_AMBER_ON(); } INLINE void led_off(int idx) { if (idx == 0) - PIOA_SODR = LED_BLUE_PIN; + LED_BLUE_OFF(); else if (idx == 1) - PIOB_SODR = LED_GREEN_PIN; + LED_GREEN_OFF(); else if (idx == 2) - PIOA_SODR = LED_AMBER_PIN; + LED_AMBER_OFF(); } static bool led_blinking; @@ -301,32 +287,6 @@ static void uptime(Bitmap *bm) /* * Lcd */ -static void initBacklight(void) -{ - PIOC_OER = LCD_BACKLIGHT_PIN; - PIOC_SODR = LCD_BACKLIGHT_PIN; - PIOC_PER = LCD_BACKLIGHT_PIN; -} - -static void setBacklight(unsigned level) -{ - unsigned i; - - if (level > LCD_BACKLIGHT_MAX) - level = LCD_BACKLIGHT_MAX; - - for (i = level; i <= LCD_BACKLIGHT_MAX; i++) - { - PIOC_CODR = LCD_BACKLIGHT_PIN; - PIOC_CODR = LCD_BACKLIGHT_PIN; - PIOC_CODR = LCD_BACKLIGHT_PIN; - - PIOC_SODR = LCD_BACKLIGHT_PIN; - PIOC_SODR = LCD_BACKLIGHT_PIN; - PIOC_SODR = LCD_BACKLIGHT_PIN; - } -} - static void setBrightness(Bitmap *bm) { while (1) @@ -345,7 +305,7 @@ static void setBrightness(Bitmap *bm) { if (++lcd_brightness > LCD_BACKLIGHT_MAX) lcd_brightness = 0; - setBacklight(lcd_brightness); + lcd_setBacklight(lcd_brightness); } } } @@ -392,15 +352,15 @@ int main(void) IRQ_ENABLE; kdbg_init(); - led_init(); + LED_INIT(); timer_init(); proc_init(); spi_dma_init(&spi); spi_dma_setclock(LCD_SPICLOCK); lcd_ili9225_init(&spi.fd); - initBacklight(); - setBacklight(lcd_brightness); + LCD_BACKLIGHT_INIT(); + lcd_setBacklight(lcd_brightness); gfx_bitmapInit(&lcd_bitmap, raster, LCD_WIDTH, LCD_HEIGHT); gfx_setFont(&lcd_bitmap, &font_luBS14);