Table of Contents

Antons minnesanteckningar

Mall

#include <avr/io.h>
 
int main(void)
{
     // Initiera funktioner o dyl.
     for(;;)
     {
          // Programkörning
     }
}

Includes

#include <avr/io.h>        //AVR device-specific IO definitions
#include <util/delay.h>    //Convenience functions for busy-wait delay loops

Pins

Input/Output

Sätta pinnar som output/input, hanteras med register DDRx och PORTx.

DDRx PORTx I/O Pull-up Comment
0 0 Input Nej Tri-state
0 1 Input Ja
1 0 Output Nej Sink
1 1 Output Nej Source

Ex:

// Sätta pinne PB0 som utgång.
DDRB |= (1<<PB0);
// Sätta pinne PB0 som ingång med pullup.
PORTB |= (1<<PB0);

Set Pin

Ex: Sätta pinne PD2 som utgång och hög.

DDRD |= (1<<PD2);   // Sätt pinne som utgång.
PORTD |= (1<<PD2);  // Sätt pinne som source/hög.

Clr Pin

Ex: Sätta pinne PD2 låg.

PORTD &= ~(1<<PD2);

Toggle Pin

Ex: Toggla pinne PD0

PORTD ^= (1<<PD0);

Read Pin

Ex: Läsa pinne PB2

state = PINB & (1<<PB2);
 
// Jämföra
if( PINB & (1<<PB2) ) {
     // Gör något om pinnen är hög.
} else {
     // Annars, gör något annat.
}