209 wiersze
10 KiB
C
209 wiersze
10 KiB
C
/**
|
|
* Generated Pins header File
|
|
*
|
|
* @file pins.h
|
|
*
|
|
* @defgroup pinsdriver Pins Driver
|
|
*
|
|
* @brief This is generated driver header for pins.
|
|
* This header file provides APIs for all pins selected in the GUI.
|
|
*
|
|
* @version Driver Version 1.1.0
|
|
*/
|
|
|
|
/*
|
|
© [2023] Microchip Technology Inc. and its subsidiaries.
|
|
|
|
Subject to your compliance with these terms, you may use Microchip
|
|
software and any derivatives exclusively with Microchip products.
|
|
You are responsible for complying with 3rd party license terms
|
|
applicable to your use of 3rd party software (including open source
|
|
software) that may accompany Microchip software. SOFTWARE IS ?AS IS.?
|
|
NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS
|
|
SOFTWARE, INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT,
|
|
MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. 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 RELATED TO THE SOFTWARE WILL NOT
|
|
EXCEED AMOUNT OF FEES, IF ANY, YOU PAID DIRECTLY TO MICROCHIP FOR
|
|
THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef PINS_H_INCLUDED
|
|
#define PINS_H_INCLUDED
|
|
|
|
#include <avr/io.h>
|
|
#include "./port.h"
|
|
|
|
//get/set IO_PB1 aliases
|
|
#define IO_PB1_SetHigh() do { PORTB_OUTSET = 0x2; } while(0)
|
|
#define IO_PB1_SetLow() do { PORTB_OUTCLR = 0x2; } while(0)
|
|
#define IO_PB1_Toggle() do { PORTB_OUTTGL = 0x2; } while(0)
|
|
#define IO_PB1_GetValue() (VPORTB.IN & (0x1 << 1))
|
|
#define IO_PB1_SetDigitalInput() do { PORTB_DIRCLR = 0x2; } while(0)
|
|
#define IO_PB1_SetDigitalOutput() do { PORTB_DIRSET = 0x2; } while(0)
|
|
#define IO_PB1_SetPullUp() do { PORTB_PIN1CTRL |= PORT_PULLUPEN_bm; } while(0)
|
|
#define IO_PB1_ResetPullUp() do { PORTB_PIN1CTRL &= ~PORT_PULLUPEN_bm; } while(0)
|
|
#define IO_PB1_SetInverted() do { PORTB_PIN1CTRL |= PORT_INVEN_bm; } while(0)
|
|
#define IO_PB1_ResetInverted() do { PORTB_PIN1CTRL &= ~PORT_INVEN_bm; } while(0)
|
|
#define IO_PB1_DisableInterruptOnChange() do { PORTB.PIN1CTRL = (PORTB.PIN1CTRL & ~PORT_ISC_gm) | 0x0 ; } while(0)
|
|
#define IO_PB1_EnableInterruptForBothEdges() do { PORTB.PIN1CTRL = (PORTB.PIN1CTRL & ~PORT_ISC_gm) | 0x1 ; } while(0)
|
|
#define IO_PB1_EnableInterruptForRisingEdge() do { PORTB.PIN1CTRL = (PORTB.PIN1CTRL & ~PORT_ISC_gm) | 0x2 ; } while(0)
|
|
#define IO_PB1_EnableInterruptForFallingEdge() do { PORTB.PIN1CTRL = (PORTB.PIN1CTRL & ~PORT_ISC_gm) | 0x3 ; } while(0)
|
|
#define IO_PB1_DisableDigitalInputBuffer() do { PORTB.PIN1CTRL = (PORTB.PIN1CTRL & ~PORT_ISC_gm) | 0x4 ; } while(0)
|
|
#define IO_PB1_EnableInterruptForLowLevelSensing() do { PORTB.PIN1CTRL = (PORTB.PIN1CTRL & ~PORT_ISC_gm) | 0x5 ; } while(0)
|
|
#define PB1_SetInterruptHandler IO_PB1_SetInterruptHandler
|
|
|
|
//get/set IO_PB0 aliases
|
|
#define IO_PB0_SetHigh() do { PORTB_OUTSET = 0x1; } while(0)
|
|
#define IO_PB0_SetLow() do { PORTB_OUTCLR = 0x1; } while(0)
|
|
#define IO_PB0_Toggle() do { PORTB_OUTTGL = 0x1; } while(0)
|
|
#define IO_PB0_GetValue() (VPORTB.IN & (0x1 << 0))
|
|
#define IO_PB0_SetDigitalInput() do { PORTB_DIRCLR = 0x1; } while(0)
|
|
#define IO_PB0_SetDigitalOutput() do { PORTB_DIRSET = 0x1; } while(0)
|
|
#define IO_PB0_SetPullUp() do { PORTB_PIN0CTRL |= PORT_PULLUPEN_bm; } while(0)
|
|
#define IO_PB0_ResetPullUp() do { PORTB_PIN0CTRL &= ~PORT_PULLUPEN_bm; } while(0)
|
|
#define IO_PB0_SetInverted() do { PORTB_PIN0CTRL |= PORT_INVEN_bm; } while(0)
|
|
#define IO_PB0_ResetInverted() do { PORTB_PIN0CTRL &= ~PORT_INVEN_bm; } while(0)
|
|
#define IO_PB0_DisableInterruptOnChange() do { PORTB.PIN0CTRL = (PORTB.PIN0CTRL & ~PORT_ISC_gm) | 0x0 ; } while(0)
|
|
#define IO_PB0_EnableInterruptForBothEdges() do { PORTB.PIN0CTRL = (PORTB.PIN0CTRL & ~PORT_ISC_gm) | 0x1 ; } while(0)
|
|
#define IO_PB0_EnableInterruptForRisingEdge() do { PORTB.PIN0CTRL = (PORTB.PIN0CTRL & ~PORT_ISC_gm) | 0x2 ; } while(0)
|
|
#define IO_PB0_EnableInterruptForFallingEdge() do { PORTB.PIN0CTRL = (PORTB.PIN0CTRL & ~PORT_ISC_gm) | 0x3 ; } while(0)
|
|
#define IO_PB0_DisableDigitalInputBuffer() do { PORTB.PIN0CTRL = (PORTB.PIN0CTRL & ~PORT_ISC_gm) | 0x4 ; } while(0)
|
|
#define IO_PB0_EnableInterruptForLowLevelSensing() do { PORTB.PIN0CTRL = (PORTB.PIN0CTRL & ~PORT_ISC_gm) | 0x5 ; } while(0)
|
|
#define PB0_SetInterruptHandler IO_PB0_SetInterruptHandler
|
|
|
|
//get/set SW0 aliases
|
|
#define SW0_SetHigh() do { PORTB_OUTSET = 0x4; } while(0)
|
|
#define SW0_SetLow() do { PORTB_OUTCLR = 0x4; } while(0)
|
|
#define SW0_Toggle() do { PORTB_OUTTGL = 0x4; } while(0)
|
|
#define SW0_GetValue() (VPORTB.IN & (0x1 << 2))
|
|
#define SW0_SetDigitalInput() do { PORTB_DIRCLR = 0x4; } while(0)
|
|
#define SW0_SetDigitalOutput() do { PORTB_DIRSET = 0x4; } while(0)
|
|
#define SW0_SetPullUp() do { PORTB_PIN2CTRL |= PORT_PULLUPEN_bm; } while(0)
|
|
#define SW0_ResetPullUp() do { PORTB_PIN2CTRL &= ~PORT_PULLUPEN_bm; } while(0)
|
|
#define SW0_SetInverted() do { PORTB_PIN2CTRL |= PORT_INVEN_bm; } while(0)
|
|
#define SW0_ResetInverted() do { PORTB_PIN2CTRL &= ~PORT_INVEN_bm; } while(0)
|
|
#define SW0_DisableInterruptOnChange() do { PORTB.PIN2CTRL = (PORTB.PIN2CTRL & ~PORT_ISC_gm) | 0x0 ; } while(0)
|
|
#define SW0_EnableInterruptForBothEdges() do { PORTB.PIN2CTRL = (PORTB.PIN2CTRL & ~PORT_ISC_gm) | 0x1 ; } while(0)
|
|
#define SW0_EnableInterruptForRisingEdge() do { PORTB.PIN2CTRL = (PORTB.PIN2CTRL & ~PORT_ISC_gm) | 0x2 ; } while(0)
|
|
#define SW0_EnableInterruptForFallingEdge() do { PORTB.PIN2CTRL = (PORTB.PIN2CTRL & ~PORT_ISC_gm) | 0x3 ; } while(0)
|
|
#define SW0_DisableDigitalInputBuffer() do { PORTB.PIN2CTRL = (PORTB.PIN2CTRL & ~PORT_ISC_gm) | 0x4 ; } while(0)
|
|
#define SW0_EnableInterruptForLowLevelSensing() do { PORTB.PIN2CTRL = (PORTB.PIN2CTRL & ~PORT_ISC_gm) | 0x5 ; } while(0)
|
|
#define PB2_SetInterruptHandler SW0_SetInterruptHandler
|
|
|
|
//get/set LED aliases
|
|
#define LED_SetHigh() do { PORTB_OUTSET = 0x8; } while(0)
|
|
#define LED_SetLow() do { PORTB_OUTCLR = 0x8; } while(0)
|
|
#define LED_Toggle() do { PORTB_OUTTGL = 0x8; } while(0)
|
|
#define LED_GetValue() (VPORTB.IN & (0x1 << 3))
|
|
#define LED_SetDigitalInput() do { PORTB_DIRCLR = 0x8; } while(0)
|
|
#define LED_SetDigitalOutput() do { PORTB_DIRSET = 0x8; } while(0)
|
|
#define LED_SetPullUp() do { PORTB_PIN3CTRL |= PORT_PULLUPEN_bm; } while(0)
|
|
#define LED_ResetPullUp() do { PORTB_PIN3CTRL &= ~PORT_PULLUPEN_bm; } while(0)
|
|
#define LED_SetInverted() do { PORTB_PIN3CTRL |= PORT_INVEN_bm; } while(0)
|
|
#define LED_ResetInverted() do { PORTB_PIN3CTRL &= ~PORT_INVEN_bm; } while(0)
|
|
#define LED_DisableInterruptOnChange() do { PORTB.PIN3CTRL = (PORTB.PIN3CTRL & ~PORT_ISC_gm) | 0x0 ; } while(0)
|
|
#define LED_EnableInterruptForBothEdges() do { PORTB.PIN3CTRL = (PORTB.PIN3CTRL & ~PORT_ISC_gm) | 0x1 ; } while(0)
|
|
#define LED_EnableInterruptForRisingEdge() do { PORTB.PIN3CTRL = (PORTB.PIN3CTRL & ~PORT_ISC_gm) | 0x2 ; } while(0)
|
|
#define LED_EnableInterruptForFallingEdge() do { PORTB.PIN3CTRL = (PORTB.PIN3CTRL & ~PORT_ISC_gm) | 0x3 ; } while(0)
|
|
#define LED_DisableDigitalInputBuffer() do { PORTB.PIN3CTRL = (PORTB.PIN3CTRL & ~PORT_ISC_gm) | 0x4 ; } while(0)
|
|
#define LED_EnableInterruptForLowLevelSensing() do { PORTB.PIN3CTRL = (PORTB.PIN3CTRL & ~PORT_ISC_gm) | 0x5 ; } while(0)
|
|
#define PB3_SetInterruptHandler LED_SetInterruptHandler
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief GPIO and peripheral I/O initialization
|
|
* @param none
|
|
* @return none
|
|
*/
|
|
void PIN_MANAGER_Initialize();
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Default Interrupt Handler for IO_PB1 pin.
|
|
* This is a predefined interrupt handler to be used together with the IO_PB1_SetInterruptHandler() method.
|
|
* This handler is called every time the IO_PB1 ISR is executed.
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param none
|
|
* @return none
|
|
*/
|
|
void IO_PB1_DefaultInterruptHandler(void);
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Interrupt Handler Setter for IO_PB1 pin input-sense-config functionality.
|
|
* Allows selecting an interrupt handler for IO_PB1 at application runtime
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param InterruptHandler function pointer.
|
|
* @return none
|
|
*/
|
|
void IO_PB1_SetInterruptHandler(void (* interruptHandler)(void)) ;
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Default Interrupt Handler for IO_PB0 pin.
|
|
* This is a predefined interrupt handler to be used together with the IO_PB0_SetInterruptHandler() method.
|
|
* This handler is called every time the IO_PB0 ISR is executed.
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param none
|
|
* @return none
|
|
*/
|
|
void IO_PB0_DefaultInterruptHandler(void);
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Interrupt Handler Setter for IO_PB0 pin input-sense-config functionality.
|
|
* Allows selecting an interrupt handler for IO_PB0 at application runtime
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param InterruptHandler function pointer.
|
|
* @return none
|
|
*/
|
|
void IO_PB0_SetInterruptHandler(void (* interruptHandler)(void)) ;
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Default Interrupt Handler for SW0 pin.
|
|
* This is a predefined interrupt handler to be used together with the SW0_SetInterruptHandler() method.
|
|
* This handler is called every time the SW0 ISR is executed.
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param none
|
|
* @return none
|
|
*/
|
|
void SW0_DefaultInterruptHandler(void);
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Interrupt Handler Setter for SW0 pin input-sense-config functionality.
|
|
* Allows selecting an interrupt handler for SW0 at application runtime
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param InterruptHandler function pointer.
|
|
* @return none
|
|
*/
|
|
void SW0_SetInterruptHandler(void (* interruptHandler)(void)) ;
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Default Interrupt Handler for LED pin.
|
|
* This is a predefined interrupt handler to be used together with the LED_SetInterruptHandler() method.
|
|
* This handler is called every time the LED ISR is executed.
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param none
|
|
* @return none
|
|
*/
|
|
void LED_DefaultInterruptHandler(void);
|
|
|
|
/**
|
|
* @ingroup pinsdriver
|
|
* @brief Interrupt Handler Setter for LED pin input-sense-config functionality.
|
|
* Allows selecting an interrupt handler for LED at application runtime
|
|
* @pre PIN_MANAGER_Initialize() has been called at least once
|
|
* @param InterruptHandler function pointer.
|
|
* @return none
|
|
*/
|
|
void LED_SetInterruptHandler(void (* interruptHandler)(void)) ;
|
|
#endif /* PINS_H_INCLUDED */
|