Differences

This shows you the differences between two versions of the page.

Link to this comparison view

de:examples:define [2009/04/08 17:21] – angelegt nierhoffde:examples:define [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Nützliche Definitionen ======
  
 +
 +===== Bit Manipulationen =====
 +
 +<code c>
 +
 +
 +#define BIT(x) (1 << (x)) // Bit index to bit mask
 +#define SET(x) |=  BIT(x) // Bit setting
 +#define CLR(x) &= ~BIT(x) // Bit clearing
 +#define INV(x) ^=  BIT(x) // Bit inversion
 +
 +// Setzen oder loeschen des angegebenen Bits im angegebenen Byte
 +#define SETTO(value, bit, to) value = ((to) ? value | BIT(bit) : value & ~BIT(bit)) 
 +
 +// Ueberpruefen ob angegebenes Bit im angegebenen Byte gesetzt ist
 +#define ISSET(value, bit) ((value) & (BIT(bit)))
 +
 +// avrlibc deprecated macros
 +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |=  _BV(bit)) // Setze Bit in Byte
 +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) // Lösche Bit in Byte
 +
 +#define MAX(a, b) ((a) > (b)) ? (a):(b) //Ermittlung Maximalwert von a und b
 +</code>
 +
 +Digi i/o board (Study Board)
 +
 +<code c>
 +#define LED1 PORTC, 3
 +#define LED2 PORTC, 4
 +#define LED3 PORTC, 5
 +
 +#define S1 PORTC, 0
 +#define S2 PORTC, 1
 +#define S3 PORTC, 2
 +</code>
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0