/***************************************************************************** * Copyright 2014 Microchip Technology Inc. and its subsidiaries. * You may use this software and any derivatives exclusively with * Microchip products. * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE * OF THESE TERMS. *****************************************************************************/ /** @file mec14xx_bbled.h *MEC14xx Blinking Breathing LED definitions */ /** @defgroup MEC14xx Peripherals LED */ #ifndef _MEC14XX_BBLED_H #define _MEC14XX_BBLED_H #include #ifdef __cplusplus extern "C" { #endif #define LED_NUM_BLOCKS (3) #define LED_INSTANCE_OFFSET (0x100UL) // // LED Configuration Register // #define LED_CFG_CNTL_MASK (0x0003u) #define LED_CFG_CNTL_LO (0x0000u) #define LED_CFG_CNTL_BREATH (0x0001u) #define LED_CFG_CNTL_BLINK (0x0002u) #define LED_CFG_CNTL_HI (0x0003u) #define LED_CFG_CLK_SRC_MCLK (0x0002u) #define LED_CFG_CLK_SRC_32K (0x0000u) #define LED_CFG_SYNC (0x0008u) #define LED_CFG_PWM_COUNT_WIDTH_MASK (0x0030u) #define LED_CFG_COUNT_WIDTH_8 (0x0000u) #define LED_CFG_COUNT_WIDTH_7 (0x0010u) #define LED_CFG_COUNT_WIDTH_6 (0x0020u) #define LED_CFG_EN_UPDATE (0x0040u) #define LED_CFG_RESET (0x0080u) #define LED_CFG_WDT_PRELOAD_MASK (0xFF00u) #define LED_CFG_WDT_PRELOAD_POR (0x1400u) #define LED_CFG_SYMMETRY_EN (0x10000u) // // LED Limit Register // #define LED_LIMIT_MIN_BITPOS (0u) #define LED_LIMIT_MIN_MASK (0xFFu) #define LED_LIMIT_MAX_BITPOS (8u) #define LED_LIMIT_MAX_MASK (0xFF00u) // // LED Delay Register // #define LED_DELAY_LOW_MASK (0x0000FFFu) #define LED_DELAY_HIGH_MASK (0x0FFF000u) #define LED_DELAY_HIGH_BITPOS (12u) // // LED Step Size Register // #define LED_STEP_FIELD_WIDTH (4u) #define LED_STEP0_MASK (0x0000000Fu) #define LED_STEP1_MASK (0x000000F0u) #define LED_STEP2_MASK (0x00000F00u) #define LED_STEP3_MASK (0x0000F000u) #define LED_STEP4_MASK (0x000F0000u) #define LED_STEP5_MASK (0x00F00000u) #define LED_STEP6_MASK (0x0F000000u) #define LED_STEP7_MASK (0xF0000000u) // // LED Update Register // #define LED_UPDATE_FIELD_WIDTH (4u) #define LED_UPDATE0_MASK (0x0000000Fu) #define LED_UPDATE1_MASK (0x000000F0u) #define LED_UPDATE2_MASK (0x00000F00u) #define LED_UPDATE3_MASK (0x0000F000u) #define LED_UPDATE4_MASK (0x000F0000u) #define LED_UPDATE5_MASK (0x00F00000u) #define LED_UPDATE6_MASK (0x0F000000u) #define LED_UPDATE7_MASK (0xF0000000u) #define BLINK_0P5_HZ_DUTY_CYCLE (0x010ul) #define BLINK_0P5_HZ_PRESCALE (0x0FFul) #define BLINK_1_HZ_DUTY_CYCLE (0x020ul) #define BLINK_1_HZ_PRESCALE (0x07Ful) /***************************************************************************** * BBLED API *****************************************************************************/ #define LED0_ID (0x00u) #define LED1_ID (0x01u) #define LED2_ID (0x02u) #define LED_ID_MAX (0x03u) #define BLINK_0P5_HZ_DUTY_CYCLE (0x010ul) #define BLINK_0P5_HZ_PRESCALE (0x0FFul) #define BLINK_1_HZ_DUTY_CYCLE (0x020ul) #define BLINK_1_HZ_PRESCALE (0x07Ful) uint8_t led_get_gpio_num(uint8_t led_id); void led_init(uint8_t led_id); void led_sleep_en(uint8_t led_id, uint8_t sleep_en); void led_reset(uint8_t led_id); void led_mode_blink(uint8_t led_id, uint8_t duty_cycle, uint16_t prescale); void led_out_high(uint8_t led_id); void led_out_low(uint8_t led_id); void led_out_toggle(uint8_t led_id); #ifdef __cplusplus } #endif #endif // #ifndef _MEC14XX_BBLED_H /* end hw_led.h */ /** @} */