Microchip® Advanced Software Framework

ui.c File Reference

User Interface.

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

#include "conf_usb_host.h"
#include <asf.h>
#include "board_monitor.h"

Macros

#define backlight_off()   ioport_set_pin_level(LCD_BL_GPIO,LCD_BL_INACTIVE_LEVEL)
 
#define backlight_on()   ioport_set_pin_level(LCD_BL_GPIO,LCD_BL_ACTIVE_LEVEL)
 
#define backlight_toggle()   ioport_toggle_pin_level(LCD_BL_GPIO)
 
#define UI_WAKEUP_BPM_SRC   BPM_BKUPWEN_EIC
 
#define UI_WAKEUP_EIC_LINE   GPIO_PUSH_BUTTON_EIC_LINE
 
#define UI_WAKEUP_HANDLER   button_handler
 
#define UI_WAKEUP_IRQ_LEVEL   5
 
#define UI_WAKEUP_IRQN   EIC_5_IRQn
 

Functions

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)
 Interrupt handler for interrupt pin change. More...
 
Main user interface functions
void ui_init (void)
 Initializes the user interface. More...
 
void ui_usb_mode_change (bool b_host_mode)
 Notify that the USB mode are switched automatically. This is possible only when ID pin is available. More...
 
Callback to mange the HID mouse events
void ui_uhi_hid_mouse_btn_left (bool b_state)
 
void ui_uhi_hid_mouse_btn_right (bool b_state)
 
void ui_uhi_hid_mouse_btn_middle (bool b_state)
 
void ui_uhi_hid_mouse_move (int8_t x, int8_t y, int8_t scroll)
 
Callback to show the MSC read and write access
void ui_start_read (void)
 
void ui_stop_read (void)
 
void ui_start_write (void)
 
void ui_stop_write (void)
 

Host mode user interface functions

static uhc_enum_status_t ui_enum_status = UHC_ENUM_DISCONNECT
 
static uint16_t ui_device_speed_blink
 
static bool ui_hid_mouse_plug = false
 
static bool ui_msc_plug = false
 
static bool ui_test_done
 
static bool ui_test_result
 
static int16_t bm_x
 
static int16_t bm_y
 
static uint8_t ui_nb_down = 0
 
void ui_usb_vbus_change (bool b_vbus_present)
 Notify that a Vbus are changed Available only in USB hardware with Vbus monitoring. More...
 
void ui_usb_vbus_error (void)
 Notify that a Vbus error has occurred Available only in USB hardware with Vbus monitoring. More...
 
void ui_usb_connection_event (uhc_device_t *dev, bool b_present)
 Notify that a USB device has been connected or disconnected. More...
 
void ui_usb_enum_event (uhc_device_t *dev, uhc_enum_status_t status)
 Notify the end of a USB device enumeration. More...
 
void ui_uhi_hid_mouse_change (uhc_device_t *dev, bool b_plug)
 Notify that a USB device HID has been connected or disconnected. More...
 
void ui_uhi_msc_change (uhc_device_t *dev, bool b_plug)
 Notify that a USB device MSC has been connected or disconnected. More...
 
void ui_usb_wakeup_event (void)
 Notify that a USB device or the host has wake up the USB line. More...
 
void ui_usb_sof_event (void)
 Notify that a SOF has been sent (each 1 ms) More...
 
static void ui_uhi_hid_mouse_btn (bool b_state)
 
void ui_test_flag_reset (void)
 Resets the status flag of the test. More...
 
void ui_test_finish (bool b_success)
 Displays the result of the test. More...
 

#define backlight_on ( )    ioport_set_pin_level(LCD_BL_GPIO,LCD_BL_ACTIVE_LEVEL)

Referenced by ui_test_finish().

#define backlight_toggle ( )    ioport_toggle_pin_level(LCD_BL_GPIO)

Referenced by ui_usb_sof_event().

#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_5_IRQn

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

Initializes the user interface.

References backlight_off, bm_init(), bm_mouse_pointer_ctrl(), LED0, and LED_Off.

Referenced by main().

void ui_start_read ( void  )

References LED0, and LED_On.

void ui_start_write ( void  )

References LED0, and LED_On.

void ui_stop_read ( void  )

References LED0, and LED_Off.

void ui_stop_write ( void  )

References LED0, and LED_Off.

void ui_test_finish ( bool  b_success)

Displays the result of the test.

Parameters
b_successtrue, if the test is successful

References backlight_on, ui_test_done, and ui_test_result.

Referenced by main().

void ui_test_flag_reset ( void  )

Resets the status flag of the test.

References backlight_off, and ui_test_done.

Referenced by main().

static void ui_uhi_hid_mouse_btn ( bool  b_state)
static
void ui_uhi_hid_mouse_btn_left ( bool  b_state)
void ui_uhi_hid_mouse_btn_middle ( bool  b_state)
void ui_uhi_hid_mouse_btn_right ( bool  b_state)
void ui_uhi_hid_mouse_change ( uhc_device_t dev,
bool  b_plug 
)

Notify that a USB device HID has been connected or disconnected.

Parameters
devPointer on USB device information
b_plugtrue, if the device has been connected

References bm_mouse_pointer_ctrl(), ui_hid_mouse_plug, and UNUSED.

void ui_uhi_hid_mouse_move ( int8_t  x,
int8_t  y,
int8_t  scroll 
)

References bm_x, bm_y, Max, Min, and UNUSED.

void ui_uhi_msc_change ( uhc_device_t dev,
bool  b_plug 
)

Notify that a USB device MSC has been connected or disconnected.

Parameters
devPointer on USB device information
b_plugtrue, if the device has been connected

References ui_msc_plug, and UNUSED.

void ui_usb_connection_event ( uhc_device_t dev,
bool  b_present 
)

Notify that a USB device has been connected or disconnected.

Parameters
devPointer on USB device information
b_presenttrue, if the device has been connected

References backlight_off, bm_mouse_pointer_ctrl(), LED0, LED_On, UHC_ENUM_DISCONNECT, ui_enum_status, and UNUSED.

Referenced by main_usb_connection_event().

void ui_usb_enum_event ( uhc_device_t dev,
uhc_enum_status_t  status 
)

Notify the end of a USB device enumeration.

Parameters
devPointer on USB device information
statusStatus of the USB enumeration

References bm_x, bm_y, uhc_device_t::speed, UHC_ENUM_SUCCESS, UHD_SPEED_FULL, UHD_SPEED_HIGH, UHD_SPEED_LOW, ui_device_speed_blink, ui_enum_status, ui_test_done, and UNUSED.

void ui_usb_mode_change ( bool  b_host_mode)

Notify that the USB mode are switched automatically. This is possible only when ID pin is available.

Parameters
b_host_modetrue, if the host mode has been selected

References LED0, LED_Off, and LED_On.

void ui_usb_vbus_change ( bool  b_vbus_present)

Notify that a Vbus are changed Available only in USB hardware with Vbus monitoring.

Parameters
b_vbus_presenttrue, if Vbus is high.

References UNUSED.

void ui_usb_vbus_error ( void  )

Notify that a Vbus error has occurred Available only in USB hardware with Vbus monitoring.

void ui_usb_wakeup_event ( void  )

Notify that a USB device or the host has wake up the USB line.

References ui_disable_asynchronous_interrupt().

int16_t bm_x
static

Manages device mouse moving

Referenced by ui_uhi_hid_mouse_move(), ui_usb_enum_event(), and ui_usb_sof_event().

int16_t bm_y
static
uint16_t ui_device_speed_blink
static

Blink frequency depending on device speed

Referenced by ui_usb_enum_event(), and ui_usb_sof_event().

uhc_enum_status_t ui_enum_status = UHC_ENUM_DISCONNECT
static

Status of device enumeration

Referenced by ui_usb_connection_event(), ui_usb_enum_event(), and ui_usb_sof_event().

bool ui_hid_mouse_plug = false
static

Notify the presence of a USB device mouse

Referenced by ui_uhi_hid_mouse_change(), and ui_usb_sof_event().

bool ui_msc_plug = false
static

Notify the presence of a USB device MSC

Referenced by ui_uhi_msc_change(), and ui_usb_sof_event().

uint8_t ui_nb_down = 0
static

Manages device mouse button down

Referenced by ui_usb_sof_event().

bool ui_test_done
static

Status of the MSC test

Referenced by ui_test_finish(), ui_test_flag_reset(), ui_usb_enum_event(), and ui_usb_sof_event().

bool ui_test_result
static

Result of the MSC test

Referenced by ui_test_finish(), and ui_usb_sof_event().