Starter Kit Demo.
Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries.
#include <asf.h>
#include <string.h>
Macros | |
#define | BUFFER_SIZE 128 |
#define | IRQ_PRIOR_PIO 0 |
Functions | |
static void | Button1_Handler (uint32_t id, uint32_t mask) |
Handler for Button 1 rising edge interrupt. More... | |
static void | Button2_Handler (uint32_t id, uint32_t mask) |
Handler for Button 2 rising edge interrupt. More... | |
static void | Button3_Handler (uint32_t id, uint32_t mask) |
Handler for Button 3 rising edge interrupt. More... | |
static void | configure_adc (void) |
Configure the ADC for the light sensor. More... | |
static void | configure_buttons (void) |
Configure the Pushbuttons. More... | |
static void | display_sd_files (void) |
Show SD card content on the OLED screen. More... | |
static void | display_sd_info (void) |
Show SD card status on the OLED screen. More... | |
static void | get_num_files_on_sd (void) |
Get the number of files at the root of the SD card. More... | |
int | main (void) |
static void | ProcessButtonEvt (uint8_t uc_button) |
Process Buttons Events. More... | |
static void | SD_Detect_Handler (uint32_t id, uint32_t mask) |
Handler for SD card detect rising edge interrupt. More... | |
static void | ssd1306_clear_char (void) |
Clear one character at the cursor current position on the OLED screen. More... | |
static void | ssd1306_draw_graph (uint8_t col, uint8_t page, uint8_t width, uint8_t height, uint8_t *tab) |
Draw graph on the OLED screen using the provided point array. More... | |
Variables | |
volatile uint32_t | app_mode = 2 |
volatile uint32_t | app_mode_switch = 1 |
FATFS | fs |
volatile uint32_t | sd_fs_found = 0 |
volatile uint32_t | sd_listing_pos = 0 |
volatile uint32_t | sd_num_files = 0 |
volatile uint32_t | sd_update = 0 |
#define BUFFER_SIZE 128 |
Referenced by main().
#define IRQ_PRIOR_PIO 0 |
Referenced by configure_buttons().
|
static |
Handler for Button 1 rising edge interrupt.
id | The button ID. |
mask | The button mask. |
References PIN_PUSHBUTTON_1_ID, PIN_PUSHBUTTON_1_MASK, and ProcessButtonEvt().
Referenced by configure_buttons().
|
static |
Handler for Button 2 rising edge interrupt.
id | The button ID. |
mask | The button mask. |
References PIN_PUSHBUTTON_2_ID, PIN_PUSHBUTTON_2_MASK, and ProcessButtonEvt().
Referenced by configure_buttons().
|
static |
Handler for Button 3 rising edge interrupt.
id | The button ID. |
mask | The button mask. |
References PIN_PUSHBUTTON_3_ID, PIN_PUSHBUTTON_3_MASK, and ProcessButtonEvt().
Referenced by configure_buttons().
|
static |
Configure the ADC for the light sensor.
References ADC_CHANNEL_4, adc_configure_trigger(), adc_enable_channel(), adc_init(), ADC_TRIG_SW, gpio_configure_pin, LIGHT_SENSOR_FLAGS, LIGHT_SENSOR_GPIO, pmc_enable_periph_clk(), and sysclk_get_cpu_hz().
Referenced by main().
|
static |
Configure the Pushbuttons.
Configure the PIO as inputs and generate corresponding interrupt when pressed or released.
References Button1_Handler(), Button2_Handler(), Button3_Handler(), IRQ_PRIOR_PIO, PIN_PUSHBUTTON_1_ATTR, PIN_PUSHBUTTON_1_ID, PIN_PUSHBUTTON_1_MASK, PIN_PUSHBUTTON_1_PIO, PIN_PUSHBUTTON_2_ATTR, PIN_PUSHBUTTON_2_ID, PIN_PUSHBUTTON_2_MASK, PIN_PUSHBUTTON_2_PIO, PIN_PUSHBUTTON_3_ATTR, PIN_PUSHBUTTON_3_ID, PIN_PUSHBUTTON_3_MASK, PIN_PUSHBUTTON_3_PIO, pio_enable_interrupt(), pio_handler_set(), pio_handler_set_priority(), pio_set_debounce_filter(), pmc_enable_periph_clk(), SD_Detect_Handler(), SD_MMC_0_CD_ATTR, SD_MMC_0_CD_ID, SD_MMC_0_CD_MASK, and SD_MMC_0_CD_PIO.
Referenced by main().
|
static |
Show SD card content on the OLED screen.
References _MAX_LFN, f_opendir(), f_readdir(), FILINFO::fname, FR_OK, FILINFO::lfname, FILINFO::lfsize, sd_listing_pos, ssd1306_set_column_address(), ssd1306_set_page_address(), and ssd1306_write_text().
Referenced by main().
|
static |
Show SD card status on the OLED screen.
References CARD_TYPE_HC, CARD_TYPE_SD, CARD_TYPE_SD_COMBO, CARD_TYPE_SDIO, delay_ms, f_mount(), FR_INVALID_DRIVE, get_num_files_on_sd(), gpio_pin_is_low, LUN_ID_SD_MMC_0_MEM, sd_fs_found, SD_MMC_0_CD_GPIO, sd_mmc_check(), sd_mmc_get_capacity(), sd_mmc_get_type(), sd_mmc_init(), SD_MMC_OK, sd_num_files, ssd1306_set_column_address(), ssd1306_set_page_address(), and ssd1306_write_text().
Referenced by main().
|
static |
Get the number of files at the root of the SD card.
Result is stored in global sd_num_files.
References _MAX_LFN, f_opendir(), f_readdir(), FILINFO::fname, FR_OK, FILINFO::lfname, FILINFO::lfsize, and sd_num_files.
Referenced by display_sd_info().
int main | ( | void | ) |
References ADC_CHANNEL_4, adc_get_channel_value(), adc_start(), app_mode, app_mode_switch, at30tse_init(), at30tse_read_temperature(), board_init(), BUFFER_SIZE, configure_adc(), configure_buttons(), delay_ms, display_sd_files(), display_sd_info(), IO1_LED1_ACTIVE, IO1_LED1_PIN, IO1_LED2_ACTIVE, IO1_LED2_PIN, IO1_LED3_ACTIVE, IO1_LED3_PIN, ioport_set_pin_level(), sd_listing_pos, sd_update, ssd1306_clear(), ssd1306_clear_char(), SSD1306_CMD_SET_PAGE_START_ADDRESS, ssd1306_draw_graph(), ssd1306_init(), ssd1306_set_column_address(), ssd1306_set_page_address(), ssd1306_write_command(), ssd1306_write_data(), ssd1306_write_text(), sysclk_init(), and TWI_SUCCESS.
|
static |
Process Buttons Events.
uc_button | The button number. |
References app_mode, app_mode_switch, sd_fs_found, sd_listing_pos, sd_num_files, and sd_update.
Referenced by Button1_Handler(), Button2_Handler(), and Button3_Handler().
|
static |
Handler for SD card detect rising edge interrupt.
id | The button ID. |
mask | The button mask. |
References sd_fs_found, sd_listing_pos, SD_MMC_0_CD_ID, SD_MMC_0_CD_MASK, sd_num_files, and sd_update.
Referenced by configure_buttons().
|
static |
Clear one character at the cursor current position on the OLED screen.
References ssd1306_write_data().
Referenced by main().
|
static |
Draw graph on the OLED screen using the provided point array.
col | X coordinate. |
page | Y coordinate (please refer to OLED datasheet for page description). |
width | Graph width. |
height | Graph height. |
tab | Data to draw. Must contain width elements. |
References SSD1306_CMD_SET_PAGE_START_ADDRESS, ssd1306_set_column_address(), ssd1306_write_command(), and ssd1306_write_data().
Referenced by main().
volatile uint32_t app_mode = 2 |
Referenced by main(), and ProcessButtonEvt().
volatile uint32_t app_mode_switch = 1 |
Referenced by main(), and ProcessButtonEvt().
FATFS fs |
Referenced by chk_mounted(), f_mkfs(), and f_mount().
volatile uint32_t sd_fs_found = 0 |
Referenced by display_sd_info(), ProcessButtonEvt(), and SD_Detect_Handler().
volatile uint32_t sd_listing_pos = 0 |
Referenced by display_sd_files(), main(), ProcessButtonEvt(), and SD_Detect_Handler().
volatile uint32_t sd_num_files = 0 |
Referenced by display_sd_info(), get_num_files_on_sd(), ProcessButtonEvt(), and SD_Detect_Handler().
volatile uint32_t sd_update = 0 |
Referenced by main(), ProcessButtonEvt(), and SD_Detect_Handler().