Microchip® Advanced Software Framework

ui.c File Reference

User Interface.

Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.

#include <asf.h>
#include "ui.h"

Macros

#define MOUSE_MOVE_COUNT   50
 
#define MOUSE_MOVE_RANGE   3
 
#define MOVE_DOWN   2
 
#define MOVE_LEFT   3
 
#define MOVE_RIGHT   1
 
#define MOVE_UP   0
 
#define UI_WAKEUP_BPM_SRC   BPM_BKUPWEN_EIC
 
#define UI_WAKEUP_EIC_LINE   SW0_EIC_LINE
 
#define UI_WAKEUP_HANDLER   button_handler
 
#define UI_WAKEUP_IRQ_LEVEL   5
 
#define UI_WAKEUP_IRQN   EIC_1_IRQn
 

Functions

void ui_init (void)
 Initializes the user interface. More...
 
void ui_powerdown (void)
 Enters the user interface in power down mode. More...
 
void ui_process (uint16_t framenumber)
 This process is called each 1ms It is called only if the USB interface is enabled. More...
 
void ui_wakeup (void)
 Exits the user interface of power down mode. More...
 
void ui_wakeup_disable (void)
 Disables the asynchronous interrupts of the user interface. More...
 
void ui_wakeup_enable (void)
 Enables the asynchronous interrupts of the user interface. More...
 
Internal routines to manage asynchronous interrupt pin change

This interrupt is connected to a switch and allows to wakeup CPU in low sleep mode. This wakeup the USB devices connected via a downstream resume.

static void ui_enable_asynchronous_interrupt (void)
 Initializes and enables interrupt pin change. More...
 
static void ui_disable_asynchronous_interrupt (void)
 Disables interrupt pin change. More...
 
static void UI_WAKEUP_HANDLER (void)
 

Variables

static int32_t move_count = MOUSE_MOVE_COUNT
 
static uint8_t move_dir = MOVE_UP
 

#define MOUSE_MOVE_COUNT   50

Referenced by ui_process().

#define MOUSE_MOVE_RANGE   3

Referenced by ui_process().

#define MOVE_DOWN   2

Referenced by ui_process().

#define MOVE_LEFT   3

Referenced by ui_process().

#define MOVE_RIGHT   1

Referenced by ui_process().

#define MOVE_UP   0

Referenced by ui_process().

#define UI_WAKEUP_BPM_SRC   BPM_BKUPWEN_EIC
#define UI_WAKEUP_HANDLER   button_handler
#define UI_WAKEUP_IRQ_LEVEL   5
#define UI_WAKEUP_IRQN   EIC_1_IRQn

static void ui_disable_asynchronous_interrupt ( void  )
static
void ui_init ( void  )

Initializes the user interface.

References LED0, and LED_On.

Referenced by main().

void ui_powerdown ( void  )

Enters the user interface in power down mode.

References LED0, and LED_Off.

Referenced by main(), and main_suspend_action().

void ui_process ( uint16_t  framenumber)

This process is called each 1ms It is called only if the USB interface is enabled.

Parameters
framenumberCurrent frame number

References ioport_get_pin_level(), LED0, LED_Off, LED_On, MOUSE_MOVE_COUNT, MOUSE_MOVE_RANGE, move_count, move_dir, MOVE_DOWN, MOVE_LEFT, MOVE_RIGHT, MOVE_UP, SW0_PIN, udi_hid_mouse_moveX(), and udi_hid_mouse_moveY().

Referenced by main(), and main_sof_action().

void ui_wakeup ( void  )

Exits the user interface of power down mode.

References LED0, and LED_On.

Referenced by main_resume_action().

void ui_wakeup_disable ( void  )

Disables the asynchronous interrupts of the user interface.

References ui_disable_asynchronous_interrupt().

Referenced by main_remotewakeup_disable().

void ui_wakeup_enable ( void  )

Enables the asynchronous interrupts of the user interface.

References ui_enable_asynchronous_interrupt().

Referenced by main_remotewakeup_enable().

int32_t move_count = MOUSE_MOVE_COUNT
static

Referenced by ui_process().

uint8_t move_dir = MOVE_UP
static

Referenced by ui_process().