]> git.karo-electronics.de Git - oswald.git/blobdiff - ui/oswald_screens.c
Make accelerometer work, interrup driven tilt change mode
[oswald.git] / ui / oswald_screens.c
index 9952365145772194891e3f1d4145d5b8f88e8924..c079e44fed344702d90b57093fbd436ad5106708 100644 (file)
@@ -143,6 +143,8 @@ static accelscreen_data_t accel_screen = {
 
 void draw_accel_screen(accel_data_t *accel_data)
 {
+       uint8_t x,y;
+
        hal_lcd_clear_display();
 
        oswald_draw_bitmap(36, 0, acc_icon_width, acc_icon_height, acc_icon_bits);
@@ -162,7 +164,13 @@ void draw_accel_screen(accel_data_t *accel_data)
        oswald_draw_line(40, 82, 92, 82);
        oswald_draw_line(40, 82, 40, 30);
 
-       oswald_draw_pixel(41+25+((accel_data->x * 50) / (254)), 31+25+((accel_data->y * 50) / (254)));
+       x = 41+25+((accel_data->x * 50) / (254));
+       y = 31+25+((accel_data->y * 50) / (254));
+       oswald_draw_pixel(x, y);
+       oswald_draw_pixel(x+1, y);
+       oswald_draw_pixel(x-1, y);
+       oswald_draw_pixel(x, y+1);
+       oswald_draw_pixel(x, y-1);
 
        hal_lcd_update_display();
 }
@@ -172,6 +180,11 @@ event_ret_t accel_handle_events(uint16_t event, void *data)
        switch (event) {
                case EVENT_SCREEN_VISIBLE:
                        draw_accel_screen(&accel_screen.accdata);
+                       hal_accelerometer_enable();
+                       return EVENT_RET_HANDLED;
+                       break;
+               case EVENT_SCREEN_DESTROY:
+                       hal_accelerometer_disable();
                        return EVENT_RET_HANDLED;
                        break;
                case EVENT_ACCEL_UPDATE: {