NiboRoboLib 3.6 - NIBO burger Library
iodefs.h-Dateireferenz

Zuordnung der physikalischen Pins zu symbolischen Namen. Mehr ...

#include <avr/io.h>
#include <avr/interrupt.h>

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define LOBYTE(x)   (uint8_t)((uint16_t)x)
 
#define HIBYTE(x)   (uint8_t)(((uint16_t)x)>>8)
 
#define MAKE_WORD(hi, lo)   ((hi*0x100)+lo)
 
#define enable_interrupts()   sei()
 
#define disable_interrupts()   cli()
 
#define _PPCAT(a, b)   a##b
 
#define _PPCAT3(a, b, c)   a##b##c
 
#define activate_output_bit(NAME)   _PPCAT(NAME,_DDR)|=_BV(_PPCAT(NAME,_BIT))
 
#define deactivate_output_bit(NAME)   _PPCAT(NAME,_DDR)&=~(unsigned char)_BV(_PPCAT(NAME,_BIT))
 
#define set_output_bit(NAME)   _PPCAT(NAME,_PORT)|=_BV(_PPCAT(NAME,_BIT))
 
#define clear_output_bit(NAME)   _PPCAT(NAME,_PORT)&=~(unsigned char)_BV(_PPCAT(NAME,_BIT))
 
#define toggle_output_bit(NAME)   _PPCAT(NAME,_PORT)^=_BV(_PPCAT(NAME,_BIT))
 
#define set_output_bitval(NAME, VAL)   _PPCAT(NAME,_PORT)=(_PPCAT(NAME,_PORT)&~(unsigned char)_BV(_PPCAT(NAME,_BIT)))|((VAL)?_BV(_PPCAT(NAME,_BIT)):0)
 
#define get_input_bit(NAME)   (_PPCAT(NAME,_PIN)&_BV(_PPCAT(NAME,_BIT)))
 
#define get_output_bit(NAME)   (_PPCAT(NAME,_PORT)&_BV(_PPCAT(NAME,_BIT)))
 
#define activate_output_groupbit(NAME, BIT)   _PPCAT(NAME,_DDR)|=_BV(_PPCAT3(NAME,_BIT_,BIT))
 
#define deactivate_output_groupbit(NAME, BIT)   _PPCAT(NAME,_DDR)&=~(unsigned char)_BV(_PPCAT3(NAME,_BIT_,BIT))
 
#define set_output_groupbit(NAME, BIT)   _PPCAT(NAME,_PORT)|=_BV(_PPCAT3(NAME,_BIT_,BIT))
 
#define clear_output_groupbit(NAME, BIT)   _PPCAT(NAME,_PORT)&=~(unsigned char)_BV(_PPCAT3(NAME,_BIT_,BIT))
 
#define toggle_output_groupbit(NAME, BIT)   _PPCAT(NAME,_PORT)^=_BV(_PPCAT3(NAME,_BIT_,BIT))
 
#define set_output_groupbitval(NAME, BIT, VAL)   _PPCAT(NAME,_PORT)=(_PPCAT(NAME,_PORT)&~(unsigned char)_BV(_PPCAT3(NAME,_BIT_,BIT)))|((VAL)?_BV(_PPCAT3(NAME,_BIT_,BIT)):0)
 
#define get_input_groupbit(NAME, BIT)   (_PPCAT(NAME,_PIN)&_BV(_PPCAT3(NAME,_BIT_,BIT)))
 
#define get_output_groupbit(NAME, BIT)   (_PPCAT(NAME,_PORT)&_BV(_PPCAT3(NAME,_BIT_,BIT)))
 
#define activate_output_group(NAME)   _PPCAT(NAME,_DDR)|=_PPCAT(NAME,_MASK)
 
#define deactivate_output_group(NAME)   _PPCAT(NAME,_DDR)&=~(unsigned char)_PPCAT(NAME,_MASK)
 
#define set_output_group(NAME)   _PPCAT(NAME,_PORT)|=_PPCAT(NAME,_MASK)
 
#define clear_output_group(NAME)   _PPCAT(NAME,_PORT)&=~(unsigned char)_PPCAT(NAME,_MASK)
 
#define ATOMIC_C90_BEGIN()   {uint8_t _sreg_bak__ = SREG; cli(); {
 
#define ATOMIC_C90_END()   } SREG = _sreg_bak__;}
 

Ausführliche Beschreibung

Zuordnung der physikalischen Pins zu symbolischen Namen.