Hanna
Sourcecode Batteriemanagementsystem
Funktionen
port_driver.c-Dateireferenz

XMEGA I/O Port driver source file. Mehr ...

#include "port_driver.h"
Include-Abhängigkeitsdiagramm für port_driver.c:

gehe zum Quellcode dieser Datei

Funktionen

void IO_ConfigureInterrupt0 (PORT_t *port, PORT_INT0LVL_t intLevel, uint8_t pinMask)
 Configures interrupt 0. Mehr ...
 
void IO_ConfigureInterrupt1 (PORT_t *port, PORT_INT1LVL_t intLevel, uint8_t pinMask)
 Configures interrupt 1. Mehr ...
 
void IO_ConfigurePin (PORT_t *port, uint8_t pinMask, uint8_t slewRateEnable, uint8_t invertEnable, PORT_OPC_t opc, PORT_ISC_t isc)
 This function changes the configuration of a set of pins. Mehr ...
 
bool IO_GetPinLevel (PORT_t *port, uint8_t pinMask)
 
void IO_MapVirtualPort0 (PORTCFG_VP02MAP_t realPort)
 Maps a real port to virtual port 0. Mehr ...
 
void IO_MapVirtualPort1 (PORTCFG_VP13MAP_t realPort)
 Maps a real port to virtual port 1. Mehr ...
 
void IO_MapVirtualPort2 (PORTCFG_VP02MAP_t realPort)
 Maps a real port to virtual port 2. Mehr ...
 
void IO_MapVirtualPort3 (PORTCFG_VP13MAP_t realPort)
 Maps a real port to virtual port 3. Mehr ...
 
void IO_SetPinAsInput (PORT_t *port, uint8_t pinMask)
 This function configures a pin in an I/O port or virtual port as an input. Mehr ...
 
void IO_SetPinAsOutput (PORT_t *port, uint8_t pinMask)
 This function configures a pin in an I/O port or virtual port as an output. Mehr ...
 
void IO_SetPinAsOutput_InitHigh (PORT_t *port, uint8_t pinMask)
 This function configures a pin in an I/O port or virtual port as an output and sets the pin to high as initial value. Mehr ...
 
void IO_SetPinHigh (PORT_t *port, uint8_t pinMask)
 This function sets a bit in the OUT register of an I/O port or virtual port. Mehr ...
 
void IO_SetPinLow (PORT_t *port, uint8_t pinMask)
 This function clears a bit in the OUT register of an I/O port or virtual port. Mehr ...
 
void IO_TogglePin (PORT_t *port, uint8_t pinMask)
 Toggle the value of an IOPORT pin, which has previously been configured as an output. Mehr ...
 

Ausführliche Beschreibung

XMEGA I/O Port driver source file.

This file contains the function implementations the XMEGA I/O Port driver.

The driver is not intended for size and/or speed critical code, since most functions are just a few lines of code, and the function call overhead would decrease code performance. The driver is intended for rapid prototyping and documentation purposes for getting started with the XMEGA I/O Port module.

For size and/or speed critical code, it is recommended to copy the function contents directly into your application instead of making a function call.

Several functions use the following construct: "some_register = ... | (some_parameter ? SOME_BIT_bm : 0) | ..." Although the use of the ternary operator ( if ? then : else ) is discouraged, in some occasions the operator makes it possible to write pretty clean and neat code. In this driver, the construct is used to set or not set a configuration bit based on a boolean input parameter, such as the "some_parameter" in the example above.

Application note:
AVR1313: Using the XMEGA I/O Pins and External Interrupts
Documentation
For comprehensive code documentation, supported compilers, compiler settings and supported devices see readme.html
Autor
Atmel Corporation: http://www.atmel.com
Support email: avr@a.nosp@m.tmel.nosp@m..com
Revision
396
Date
2016-03-28 15:29:47 +0200 (Mon, 28 Mar 2016)


Copyright (c) 2008, Atmel Corporation All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. The name of ATMEL may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definiert in Datei port_driver.c.

Dokumentation der Funktionen

void IO_ConfigureInterrupt0 ( PORT_t *  port,
PORT_INT0LVL_t  intLevel,
uint8_t  pinMask 
)

Configures interrupt 0.

This function configures interrupt 0 to be associated with a set of pins and sets the desired interrupt level.

Parameter
portThe port to configure.
intLevelThe desired interrupt level for port interrupt 0.
pinMaskA mask that selects the pins to associate with port interrupt 0.

Definiert in Zeile 189 der Datei port_driver.c.

void IO_ConfigureInterrupt1 ( PORT_t *  port,
PORT_INT1LVL_t  intLevel,
uint8_t  pinMask 
)

Configures interrupt 1.

This function configures interrupt 1 to be associated with a set of pins and sets the desired interrupt level.

Parameter
portThe port to configure.
intLevelThe desired interrupt level for port interrupt 1.
pinMaskA mask that selects the pins to associate with port interrupt 1.

Definiert in Zeile 207 der Datei port_driver.c.

void IO_ConfigurePin ( PORT_t *  port,
uint8_t  pinMask,
uint8_t  slewRateEnable,
uint8_t  invertEnable,
PORT_OPC_t  opc,
PORT_ISC_t  isc 
)

This function changes the configuration of a set of pins.

Parameter
portThe port.
pinMaskA bit mask that selects the pins to configure.
slewRateEnableEnable/disable slew rate control.
invertEnableEnable/disable I/O inversion.
opcOutput/Pull Configuration.
iscInput/Sense Configuration.

Definiert in Zeile 77 der Datei port_driver.c.

void IO_MapVirtualPort0 ( PORTCFG_VP02MAP_t  realPort)

Maps a real port to virtual port 0.

This function maps a real port to virtual port 0 to make some of the registers available in I/O space.

Parameter
realPortSelects the real port to map to virtual port 0.

Definiert in Zeile 223 der Datei port_driver.c.

void IO_MapVirtualPort1 ( PORTCFG_VP13MAP_t  realPort)

Maps a real port to virtual port 1.

This function maps a real port to virtual port 1 to make some of the registers available in I/O space.

Parameter
realPortSelects the real port to map to virtual port 1.

Definiert in Zeile 236 der Datei port_driver.c.

void IO_MapVirtualPort2 ( PORTCFG_VP02MAP_t  realPort)

Maps a real port to virtual port 2.

This function maps a real port to virtual port 2 to make some of the registers available in I/O space.

Parameter
realPortSelects the real port to map to virtual port 2.

Definiert in Zeile 249 der Datei port_driver.c.

void IO_MapVirtualPort3 ( PORTCFG_VP13MAP_t  realPort)

Maps a real port to virtual port 3.

This function maps a real port to virtual port 3 to make some of the registers available in I/O space.

Parameter
realPortSelects the real port to map to virtual port 3.

Definiert in Zeile 262 der Datei port_driver.c.

void IO_SetPinAsInput ( PORT_t *  port,
uint8_t  pinMask 
)

This function configures a pin in an I/O port or virtual port as an input.

Zu beachten
This function is especially efficient with virtual ports, since only one CBI instruction is invoked.
Parameter
*portPointer to the PORT_t or VPORT_t instance.
pinMaskpin to toggle as bitmask

Definiert in Zeile 159 der Datei port_driver.c.

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void IO_SetPinAsOutput ( PORT_t *  port,
uint8_t  pinMask 
)

This function configures a pin in an I/O port or virtual port as an output.

Zu beachten
This function is especially efficient with virtual ports, since only one SBI instruction is invoked.
Parameter
*portPointer to the PORT_t or VPORT_t instance.
pinMaskpin to toggle as bitmask

Definiert in Zeile 133 der Datei port_driver.c.

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void IO_SetPinAsOutput_InitHigh ( PORT_t *  port,
uint8_t  pinMask 
)

This function configures a pin in an I/O port or virtual port as an output and sets the pin to high as initial value.

Zu beachten
This function is especially efficient with virtual ports, since only one SBI instruction is invoked.
Parameter
*portPointer to the PORT_t or VPORT_t instance.
pinMaskpin to toggle as bitmask

Definiert in Zeile 145 der Datei port_driver.c.

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void IO_SetPinHigh ( PORT_t *  port,
uint8_t  pinMask 
)

This function sets a bit in the OUT register of an I/O port or virtual port.

Zu beachten
This function is especially efficient with virtual ports, since only one SBI instruction is invoked.
Parameter
*portPointer to the PORT_t or VPORT_t instance.
pinMaskpin to toggle as bitmask

Definiert in Zeile 108 der Datei port_driver.c.

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void IO_SetPinLow ( PORT_t *  port,
uint8_t  pinMask 
)

This function clears a bit in the OUT register of an I/O port or virtual port.

Zu beachten
This function is especially efficient with virtual ports, since only one CBI instruction is invoked.
Parameter
*portPointer to the PORT_t or VPORT_t instance.
pinMaskpin to toggle as bitmask

Definiert in Zeile 121 der Datei port_driver.c.

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

void IO_TogglePin ( PORT_t *  port,
uint8_t  pinMask 
)

Toggle the value of an IOPORT pin, which has previously been configured as an output.

Parameter
*portPointer to the PORT_t or VPORT_t instance.
pinMaskpin to toggle as bitmask

Definiert in Zeile 174 der Datei port_driver.c.