AVR-Befehlsübersicht

Ausgang ausschalten
PORTD &= ~( 1 << PD5 ); AND-Verknüpfung mit Bitmaske
PORTD &= ~( ( 1 << PD5 ) | ( 1 << PD6 ) ); mehrere LEDs
Ausgang einschalten
PORTD |= ( 1 << PD5 ); OR-Verknüpfung mit Bitmaske
PORTD |= ( 1 << PD5 ) | ( 1 << PD6 ); mehrere LEDs
Ausgang umschalten
PORTD ^= ( 1 << PD5 ); XOR-Verknüpfung mit Bitmaske
PORTD ^= ( 1 << PD5 ) | ( 1 << PD6 ); mehrere LEDs
Ausgang setzen
DDRD |= ( 1 << PD5 ); setzt Port D - Pin 5 als Ausgang
DDRD |= ( 1 << PD5 ) | ( 1 << PD6 ); mehrere Ausgänge
Bedingung
eine Frage, die immer eindeutig mit ja oder nein beantwortet werden kann:
i < 5 (kleiner), i == 5 (gleich), i != 5 (ungleich), i >= 5 (größer gleich) oder Vergleich mit einer Bitmaske PIND & ( 1 << 2 ) (AND)
Display initialisieren
lcd_init();
Display löschen
lcd_clear();
Display Position setzen
lcd_setcursor( 0, 1 ); (Anfang der ersten Zeile)
Display Text ausgegeben
lcd_string("Ausgabe");
Eingang aktivieren
PORTD |= ( 1 << 2 ); aktiviert Port D - Pin 2 den Pull-Up-Widerstand
Funktion deklarieren
void funktion( void ); void funktion( void ){ ... }
void funktion( int iZ ); void funktion( int iZ ){ ... } (mit Wertübergabe)
int funktion( int iZ ); int funktion( int iZ ){ ...; return iZ; } (mit Rückgabewert)
Funktion aufrufen
void main( void ){ funktion( ); }
void main( void ){ funktion( 5 ); } (mit Wertübergabe)
void main( void ){ iZahl = funktion( 5 ); } (mit Rückgabewert)
Pull-Up-Widerstand (intern) aktivieren
PORTD |= ( 1 << PD2 );
Schleife (kopfgesteuert)
while( [Bedingung] ){ [Befehle;] }
Schleife (fußgesteuert)
do { [Befehle;] } while( [Bedingung] );
Schleife (zählergesteuert)
for( i=[Anfangswert] ; i<[Endewert] ; i++ ) { [Befehle;] }
Taster abfragen
if( !( PIND & ( 1 << PD2 ) ) ){ [wenn Taster gedrückt] } else { [wenn Taster nicht gedrückt] }
if( !( PIND & ( 1 << PD2 ) ) && !( PIND & ( 1 << PD3 ) ) ){ ... } else { .. } zwei Taster abfragen
Variablen deklarieren
int i; (Integer)
char Buffer[16]; (Character-Array mit 16 Feldern)
Verzögerung
_delay_ms( n ); wartet n Millisekunden (#include <util/delay.h> darf nicht fehlen.)
Verzweigung (mehrfach)
switch(i){ case 1: ...; break; case n: ...; break; default: ...; break; }
Wert zuweisen
i = 0; Zuweisungsoperator
Zahl in Text umwandeln
und als Dezimalzahl ausgeben itoa( iZahl, Buffer, 10 );